CMake中是否有任何工具可以创建一个目标,并在构建时由用户手动提供显式参数?
我想要的是像正常一样运行CMake,然后能够在调用make时提供一个参数,如下所示:
make mytarget MYPARAMETER=123
MYPARAMETER的值将成为gcc调用中的预处理器定义,如gcc -DMYPARAMETER=123
中所示。
目标“mytarget”应该以这样的方式设置,即如果MYPARAMETER的值发生更改,则将重新构建目标。
我想用环境变量来做这件事,但实际上任何构建时参数的方案都适用于我的用例。我想避免的是每次更改MYPARAMETER的值时都必须重新配置整个项目,因为它几乎在每次构建时都会更改。
1条答案
按热度按时间6kkfgxo01#
CMake中是否有任何工具可以创建一个目标,并在构建时由用户手动提供显式参数?
不能。您必须重新运行CMake配置阶段。
您可以创建自己的编译器。使用可执行权限编写以下shell脚本/tmp/cc:
使用
cmake -DCMAKE_C_COMPILER=/tmp/cc ...
配置cmake,并通过首先将变量导出到envMYPARAMTER=123 cmake --build ...
进行编译。这样,您就可以将MYPARAMETER的值“注入”到编译器调用中。