【问题标题】:How can i override a default variable from CMakeLists.txt on CMake command line?如何在 CMake 命令行上覆盖 CMakeLists.txt 中的默认变量?
【发布时间】:2019-05-17 17:31:27
【问题描述】:

我有一个包含变量默认值的 .cmake 文件。使用“include”从 CMakeLists.txt 调用 .cmake 文件。 变量之一是版本号。 从 CMake 命令行否决该变量版本号的最佳做法或设置是什么?

在 gnu make 你可以使用 var ?= 值 您可以在 make 命令行上设置 var 值。我在 C-Make 中没有看到类似的东西。

【问题讨论】:

    标签: cmake


    【解决方案1】:

    对于布尔值,您可以使用option

    option(CUSTOMIZABLE_VAR "This variable do stuff" "default-value")
    

    还有 GUI 应用程序公开选项,例如 CMake GUI 或 QtCreator,您将获得描述和编辑它的字段。

    对于字符串类型的值,可以通过帮助字符串设置缓存值:

    set(CUSTOMIZABLE_VAR "8" CACHE STRING "This option is a string")
    

    【讨论】:

    • 通过在选项行中指定 ..."5" 默认值,然后调用 CMake -DCUSTOMIZABLE_VAR=6,变量得到值 6。没关系。在 CMake 命令行中未指定 -DCUSTOMIZABLE_VAR 时,变量的值为“OFF”,而不是“5”。
    • @BaudewijnVermeire 很抱歉,我误读了文档。选项用于布尔值。否则,您可以使用缓存变量。我更新了答案
    猜你喜欢
    • 2020-01-11
    • 2011-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-14
    • 2018-05-22
    • 1970-01-01
    相关资源
    最近更新 更多