如何在 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 变量?的主要内容,如果未能解决你的问题,请参考以下文章
在 macOS 上使用 Ninja 进行 CMake GUI