cmake - 通过命令提示符将参数传递给 CMAKE

标签 cmake

我的项目有一个 makefile,我可以用它传递一个控制某些构建标志的参数。现在我想使用 CMake 做同样的事情。我已经创建了 CMakeLists.txt,但我不知道如何传递参数并检查 CMakeLists.txt 中的参数值。

我的 Makefile 示例:

ifeq "$(MY_VARIABLE)" "option_value"
      //setting some flags
else
      //setting some other flag
endif

然后,我使用 make MY_VARIABLE=option_value 调用 make。 CMake 中从命令提示符获取参数并据此设置标志的方法是什么?

最佳答案

在 CMakeLists.txt 文件中,创建一个缓存变量,如下所述:

SET(MY_VARIABLE "option_value" CACHE STRING "Some user-specified option")

来源:https://cmake.org/cmake/help/latest/command/set.html#set-cache-entry

然后,使用 GUI(ccmake 或 cmake-gui)设置缓存变量,或者指定变量的值 on the cmake command line with -D :

cmake -DMY_VARIABLE:STRING=option_value2

如果您的选项实际上是 bool 值,请将您的缓存变量修改为 bool 值。

关于cmake - 通过命令提示符将参数传递给 CMAKE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12896988/

相关文章:

cmake - 如何在 CMake 中为 Windows 设置默认库前缀

c++ - Qt4/C++/CMake - 没有合适的默认构造函数可用

c++ - 如何将使用 ExternalProject_Add 安装的库添加到目标包括

makefile - debuild使用的cmake构建目录是什么?

c++ - 在Windows上使用MinGW构建mysql-connector-c++-8.0.17-src

c++ - cmake:外部项目更新和离线工作

makefile - 在 cmake 之后不使用 makefile 进行制作

c++ - 在交叉编译时我必须如何处理 C++ 库?

cmake - 如何在CMAKE中指定相对路径?

cmake - 有什么方法可以将 libtool ".la"文件与 cmake "target_link_libraries"一起使用