调用cmake时是否可以将变量传递给工具链文件?
例如,我有以下工具链文件:
message("FOO = ${FOO}")
我尝试了以下方法,但是没有用。该变量未在工具链文件中设置。
cmake <src-dir> -DCMAKE_TOOLCHAIN_FILE=<toolchain-file> -DFOO="bar" -B <build-dir>
我实际上想要实现的是将路径传递到工具链文件。而且我无法在。
中修改主要的CMakeLists.txt。答案 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
不起作用。