将CMake变量从GUI导出到命令行
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将CMake变量从GUI导出到命令行相关的知识,希望对你有一定的参考价值。
是否可以将在CMake-GUI中设置的所有变量值导出到单个命令行字符串,以便可以快速从外部工具中使用它?
所以输出将是这样的:
cmake -DVar1=ON -DVar2="foo" ...
答案
你可以从中获取它们
Tools->"Show My Changes"
另一答案
没有cmake-gui
集成方式可以通过多个configure / generate运行导出或记录更改的变量。
但是对缓存变量的每次更改都会再次运行配置步骤,因此我想出了以下代码,您可以将其添加到主CMakeLists.txt
中以保留原始变量并对未来的变量列表进行区分:
if (EXISTS "${CMAKE_BINARY_DIR}/CMakeCache.txt")
file(
STRINGS
"${CMAKE_BINARY_DIR}/CMakeCache.txt"
_vars
REGEX "^[^#/]"
)
if (NOT EXISTS "${CMAKE_BINARY_DIR}/CMakeCacheVars.txt")
file(
WRITE "${CMAKE_BINARY_DIR}/CMakeCacheVars.txt"
"${_vars}"
)
else()
file(
READ "${CMAKE_BINARY_DIR}/CMakeCacheVars.txt"
_vars_ori
)
list(REMOVE_ITEM _vars ${_vars_ori})
message("Changed values: ${_vars}")
endif()
endif()
以上是关于将CMake变量从GUI导出到命令行的主要内容,如果未能解决你的问题,请参考以下文章
将 CMake 选项从命令行移动到*** CMakeLists.txt