无法了解cmake中set(var val $ {var})的用法

时间:2018-08-18 03:51:33

标签: cmake

我已经学会了一段时间。我对这段代码感到困惑:

set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH})

有人可以帮我找出这段代码结尾的$ {CMAKE_MODULE_PATH}是什么意思。

谢谢

3 个答案:

答案 0 :(得分:0)

在此,您要在当前${CMAKE_SOURCE_DIR}/cmake之前的$CMAKE_MODULE_PATH之前

答案 1 :(得分:0)

这是一个串联。您正在将新值插入列表CMAKE_MODULE_PATH的开头。

答案 2 :(得分:0)

这样做 set(CMAKE_MODULE_PATH my/path ${CMAKE_MODULE_PATH})

您在列表CMAKE_MODULE_PATH之前添加了CMake用来查找Find.cmake或module-config.cmake的路径(实际上,提交的路径是your_source_directory + / cmake

您也可以这样写: set(CMAKE_MODULE_PATH my/path;${CMAKE_MODULE_PATH})

就像在CMake中一样,所有内容都是一个字符串,列表只是用';'分隔的字符串。

var本身(https://cmake.org/cmake/help/v3.12/variable/CMAKE_MODULE_PATH.html?highlight=cmake_module_path)的引用

CMake在查找软件包时(使用find_package宏)在内部使用此变量

您可以在find_package宏的引用中找到cmake搜索的路径列表(此处为https://cmake.org/cmake/help/v3.12/command/find_package.html?highlight=cmake_module_path

希望此答案正确回答您的问题。