如何将变量从命令行传递到CMake Toolhain文件?

时间:2018-08-29 07:31:35

标签: cmake

调用cmake时是否可以将变量传递给工具链文件?

例如,我有以下工具链文件:

message("FOO = ${FOO}")

我尝试了以下方法,但是没有用。该变量未在工具链文件中设置。

cmake <src-dir> -DCMAKE_TOOLCHAIN_FILE=<toolchain-file> -DFOO="bar" -B <build-dir>

我实际上想要实现的是将路径传递到工具链文件。而且我无法在。

中修改主要的CMakeLists.txt。

1 个答案:

答案 0 :(得分:4)

您必须使用-DCMAKE_TOOLCHAIN_FILE设置工具链文件的路径。以下对我有用(cmake3版本3.12.0):

ToolChain.cmake:

message("Toolchain file loaded with path: ${FOO}")

CMakeLists.txt为空

cmake -DCMAKE_TOOLCHAIN_FILE=./ToolChain.cmake . -DFOO=/path

输出为:

Toolchain file loaded with path: /path

<src-path>-DCMAKE_TOOLCHAIN_FILE=./ToolChain.cmake的顺序很重要。

cmake . -DCMAKE_TOOLCHAIN_FILE=./ToolChain.cmake -DFOO=/path

不起作用。