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