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