有没有办法在调用 cmake 时将变量传递给工具链文件?
例如,我有以下工具链文件:
message("FOO = ${FOO}")
Run Code Online (Sandbox Code Playgroud)
我尝试了以下方法,但没有奏效。该变量未在工具链文件中设置。
cmake <src-dir> -DCMAKE_TOOLCHAIN_FILE=<toolchain-file> -DFOO="bar" -B <build-dir>
Run Code Online (Sandbox Code Playgroud)
我真正想要实现的是将路径传递给工具链文件。而且我无法修改 .txt 中的主 CMakeLists.txt。
您必须使用 .zip 文件设置工具链文件的路径-DCMAKE_TOOLCHAIN_FILE。以下对我有用(cmake3 版本 3.12.0):
工具链.cmake:
message("Toolchain file loaded with path: ${FOO}")
Run Code Online (Sandbox Code Playgroud)
CMakeLists.txt 为空
cmake -DCMAKE_TOOLCHAIN_FILE=./ToolChain.cmake . -DFOO=/path
Run Code Online (Sandbox Code Playgroud)
输出是:
Toolchain file loaded with path: /path
Run Code Online (Sandbox Code Playgroud)
的顺序<src-path>和-DCMAKE_TOOLCHAIN_FILE=./ToolChain.cmake是很重要的。
cmake . -DCMAKE_TOOLCHAIN_FILE=./ToolChain.cmake -DFOO=/path
Run Code Online (Sandbox Code Playgroud)
不起作用。
| 归档时间: |
|
| 查看次数: |
5444 次 |
| 最近记录: |