在 CMakeLists.txt 中包含来自其他文件的说明

Include instructions from other file in CMakeLists.txt

我想创建第二个文件,例如 Instructions.txt,并能够将其 CMake 指令包含到主 CMakeLists.txt,例如:

// Instructions.txt
set(MY_VARIABLE value)
set(MY_SECOND_VARIABLE 1234)
// CMakeLists.txt
<HERE INCLUDE INSTRUCTIONS.TXT>

// And be able to use those variables, for example
project(MY_VARIABLE)

您通常只需使用另一个 cmake 即可做到这一点。

与您可能认为的相反,其他文件的文件扩展名不同于构建文件。

我们称这个文件为instructions.cmake:

set(MY_VARIABLE value)
set(MY_SECOND_VARIABLE 1234)

然后你可以像这样把它包含在你的 CMakeLists.txt:

include(instructions.cmake)

如果文件在模块路径中,您可以像这样包含它:

include(instructions)

还有一些其他文件名对 CMake 很重要。

例如,任何以 Find 开头然后以 .cmake 结尾的文件,如 FindXYZ.cmakeXYZ 部分被假定为包名称,并且在该文件中如果你应该使用 find_package(XYZ REQUIRED).