如何在 CMake GUI 中显示 FooConfig.cmake 文件中的 CMake 变量?

Posted

技术标签:

【中文标题】如何在 CMake GUI 中显示 FooConfig.cmake 文件中的 CMake 变量?【英文标题】:How to display CMake variables from FooConfig.cmake file in CMake GUI? 【发布时间】:2020-02-16 21:45:14 【问题描述】:

我最近开始使用现代 CMake 原则并在我的项目中包含配置文件。

尽管我可以使用我的一个项目,比如说 Foo,作为另一个项目的依赖项,比如说 Bar,但在构建项目 Bar 时,我看不到工具中的 foo 项目变量作为 CMake GUI。

但是,可以正确找到路径并且正确构建依赖项目。有人知道我想念什么吗?

这是 FooConfig.cmake.in 文件的示例:

# - Config file for the foo package
# It defines the following variables
#  Foo_INCLUDE_DIRS - include directories for Foo
#  Foo_LIBRARY_DIRS - library directories for Foo (normally not used!)
#  Foo_LIBRARIES    - libraries to link against

@PACKAGE_INIT@

# Tell the user project where to find our headers and libraries
set_and_check(Foo_INCLUDE_DIRS "@Foo_INSTALL_INCLUDEDIR@")
set_and_check(Foo_LIBRARY_DIRS "@Foo_INSTALL_LIBDIR@")

include_directories ($Foo_INCLUDE_DIRS)

include("$CMAKE_CURRENT_LIST_DIR/FooTargets.cmake")

check_required_components("Foo")

set(foo_LIBRARIES Foo)

提前致谢。

【问题讨论】:

【参考方案1】:

CMake GUI 仅显示使用 CACHE 选项定义的缓存变量。由于您的 FooConfig.cmake 没有将变量设置为缓存,因此它们不会出现在 GUI 中。

实际上,将这些变量定义为 CACHE 变量有点意义:CACHE 变量旨在用户可以修改,而这不是你的情况。

【讨论】:

谢谢 Tsyvarev!这正是我想要的。干杯!

以上是关于如何在 CMake GUI 中显示 FooConfig.cmake 文件中的 CMake 变量?的主要内容,如果未能解决你的问题,请参考以下文章

cmake-gui出现关于Qt问题,怎么解决

将CMake变量从GUI导出到命令行

centos6.5安装cmake-gui

在 macOS 上使用 Ninja 进行 CMake GUI

vscode cmake gcc wx win32 gui application or console

windows上通过cmake-gui生成pytorch工程