如何设置CMAKE_MODULE_PATH以在CMake中进行常规和源外构建?

Kri*_*ves 3 cmake

我有这样一条线 CMakeLists.txt

set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "cmake")
Run Code Online (Sandbox Code Playgroud)

这样一来,可以使用目录树找到一些自定义库,如下所示:

CMakeLists.txt
cmake/
|-- FindSomeLibrary.cmake
|-- FindAnotherLibrary.cmake
Run Code Online (Sandbox Code Playgroud)

通常我会像这样构建:

cmake .
Run Code Online (Sandbox Code Playgroud)

哪个工作正常。但是,我想使用以下脚本提供调试和发布版本:

mkdir release
cd release
cmake -DCMAKE_BUILD_TYPE=Release ../
Run Code Online (Sandbox Code Playgroud)

但是,现在找不到cmake模块。

有没有一种设置方法使其CMAKE_MODULE_PATH既适用于源内版本又适用于源外版本?

Kam*_*Cuk 5

如评论中所建议:

set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
Run Code Online (Sandbox Code Playgroud)

并始终尝试设置相对于某些CMAKE_ *目录的所有路径。这样,您将错过许多错误。; )