向 CMake 添加命令行选项
Posted
技术标签:
【中文标题】向 CMake 添加命令行选项【英文标题】:Adding command line options to CMake 【发布时间】:2021-12-27 09:53:06 【问题描述】:我正在使用 CMake 构建一个大型库,我希望用户能够选择性地启用/禁用我的构建过程的某些部分。
如何在我的 CMake 构建中添加命令行选项,例如这样用户就可以输入类似cmake --build-partone --nobuild-parttwo --dothis=true --dothat=false ..
?
显然 OPTION 关键字将创建可以从 CMake GUI 设置的变量,但我不知道如何从命令行执行此操作。
【问题讨论】:
感谢您的提问,因为它回答了我关于 cmake 选项用途的问题。所以,我现在看到它是用于 GUI 的 【参考方案1】:是的,您应该使用option
命令。您可以通过这种方式从命令行设置选项:
//CMakeLists.txt
option(MyOption "MyOption" OFF)
//Command line
cmake -DMyOption=ON MyProjectFolder
注意-DMyOption
必须在路径之前。
【讨论】:
... 和cmake MyProjectFolder -DMyOption
不会打开(或关闭)该选项
把 -DMyOption 放在 MyProjectFolder 之前试试看?
使用-DMyOption=ON
或-DMyOption=OFF
开启或关闭。
我刚刚注意到,当我试图构建一个第三方模块时,在 CMakeLists.txt 中使用“set(NAME blahblah)”设置的项目可以用 cmake 命令行上的 -DNAME=overridingValue 覆盖,
【参考方案2】:
稍微修正一下:
如果还有其他变量要传递,建议指明这些的类型:
//CMakeLists.txt
option(MyOption "MyOption" OFF)
//Command line
cmake -DMyOption:BOOL=ON MyProjectFolder -D...
【讨论】:
以上是关于向 CMake 添加命令行选项的主要内容,如果未能解决你的问题,请参考以下文章