如何在CMake中加载其他参数?

时间:2013-10-11 04:27:25

标签: makefile cmake

我想建立一个项目@local词典。

在'CMakeLists.txt'中,项目A希望使用'FIND_PACKAGE'命令找到另一个库B.

问题是当我在本地目录中重建它时,可以在系统目录中找到库B,那么在键入'cmake'时如何通过输入附加参数来控制该情况?

2 个答案:

答案 0 :(得分:1)

您可以使用CMake的-D command line option指定变量值。

请注意,有问题的变量必须存储在缓存中才能生效,因为命令行只是设置一个缓存条目,而本地变量隐藏了同名的缓存变量。

cmake -DMY_AWESOME_VARIABLE=Foo <path_to_source>

的CMakeLists.txt

 [...]
# set a default value that will be used if no option is given on the command line
set(MY_AWESOME_VARIABLE "Default value" CACHE STRING "")
# this line will output the current value from cache; so either the default
# value or whatever was given last on the command line
message(${MY_AWESOME_VARIABLE})
# local variables hide cache entry, so the next message will always print "Local"
set(MY_AWESOME_VARIABLE "Local")
message(${MY_AWESOME_VARIABLE})

答案 1 :(得分:0)

您可以暂时将PATH环境变量更改为仅本地bin aud或usr ...通过运行cmake:

PATH=~/bin:~/usr:~/usr/bin cmake

但是你必须将所有必需的可执行文件放在那个/那些文件夹中。