【问题标题】:How to disable a CMAKE option如何禁用 CMAKE 选项
【发布时间】:2021-07-30 03:45:41
【问题描述】:

${CMAKE_CURRENT_SOURCE_DIR}/JUCE,有:

option(JUCE_BUILD_EXTRAS "Add build targets for the Projucer and other tools" OFF)

if(JUCE_BUILD_EXTRAS)
    add_subdirectory(extras)
endif()

链接:https://github.com/juce-framework/JUCE/blob/master/CMakeLists.txt#L57

这就是我所做的:

set(JUCE_BUILD_EXTRAS OFF)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/JUCE)

但它仍然尝试构建附加功能。我在 Android Studio 上。

我该怎么办?

我也试过set(JUCE_BUILD_EXTRAS OFF)

默认值为OFF,即使这样它也会尝试构建。

我在尝试禁用 Android CMAKE 上的某些功能时总是遇到这些错误,但它总是失败

【问题讨论】:

    标签: android c++ cmake android-ndk


    【解决方案1】:

    保证这会被父 CMakeLists.txt 正确覆盖的最简单方法是将其设置为具有 FORCEd 值的 CACHE 变量:

    set(JUCE_BUILD_EXTRAS OFF CACHE BOOL "" FORCE)
    add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/JUCE)
    

    这将确保定义option的项目先前配置中可能已经存在的任何状态将被覆盖并首先被拾取。


    从技术上讲,option 的文档指出:

    ...如果已经设置为普通或缓存变量,那么该命令什么也不做。

    但是,这仅在没有先前配置的情况下才是正确的——所以这仅在变量被设置时才有效在第一次配置之前

    在实践中我发现FORCE-方法更可靠。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-15
      • 2013-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-03
      • 2020-11-15
      相关资源
      最近更新 更多