1
我想定义一个自定义函数,它可以与include
函数一起使用。是否有一些位置可以添加可以包含在全局范围内的其他cmake源代码?定义全球化的CMake功能?
我想定义一个自定义函数,它可以与include
函数一起使用。是否有一些位置可以添加可以包含在全局范围内的其他cmake源代码?定义全球化的CMake功能?
除了将它作为文件添加到CMake自己的安装目录(不推荐)之外,您可以在CMakeLists.txt的开头定义CMAKE_MODULE_PATH
(或通过命令行使用-D
)来提供目录的位置搜索CMake模块。
你可以使用的 find_file和 CMAKE_MODULE_PATH
find_file(common_file File.cmake path1 path2 path3)
if(common_file STREQUAL "common_file-NOTFOUND")
message(FATAL_ERROR "Missing common cmake file")
else()
LIST(APPEND CMAKE_MODULE_PATH common_file)
endif()
我想它是全球性的原因的组合是,“全球”包括将由另一CMake的项目,该项目的子项目取决于安装无论如何。我所有的“孩子”项目都需要使用相同的文件,所以我宁愿有一种方法来使用共享模块。这真的是我正在寻找的。 –
除了安装到CMake自己的模块路径(例如C:\ Program Files(x86)\ CMake 2.8 \ share \ cmake-2.8 \ Modules)之外,我不知道这样做的方法。如果你自己开发,那可能是好的,但我认为这通常是一个坏主意,因为你的模块似乎是官方的CMake。当CMake升级时它可能也会被删除。 – Fraser