如何禁用 CMAKE 选项
How to disable a CMAKE option
在 ${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()
link: https://github.com/juce-framework/JUCE/blob/master/CMakeLists.txt#L57
所以这就是我所做的:
set(JUCE_BUILD_EXTRAS OFF)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/JUCE)
但是它仍然试图构建附加功能。我在 Android 工作室。
我该怎么办?
我也试过了set(JUCE_BUILD_EXTRAS OFF)
默认值为 OFF,即使这样它也会尝试构建。
尝试在 Android CMAKE 上禁用某些内容时,我总是遇到这些错误,但总是失败
保证这将被父 CMakeLists.txt
正确覆盖的最简单方法是将其设置为具有 FORCE
d 值的 CACHE
变量:
set(JUCE_BUILD_EXTRAS OFF CACHE BOOL "" FORCE)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/JUCE)
这将确保定义 option
的项目的先前配置中可能已经存在的任何状态将被覆盖并首先被拾取。
从技术上讲,option
的文档指出:
... If is already set as a normal or cache variable, then the command does nothing.
但是,这仅在没有先前配置的情况下才成立——因此这仅在变量设置为 第一次配置
之前有效
在实践中,我发现 FORCE
方法更可靠。
在 ${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()
link: https://github.com/juce-framework/JUCE/blob/master/CMakeLists.txt#L57
所以这就是我所做的:
set(JUCE_BUILD_EXTRAS OFF)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/JUCE)
但是它仍然试图构建附加功能。我在 Android 工作室。
我该怎么办?
我也试过了set(JUCE_BUILD_EXTRAS OFF)
默认值为 OFF,即使这样它也会尝试构建。
尝试在 Android CMAKE 上禁用某些内容时,我总是遇到这些错误,但总是失败
保证这将被父 CMakeLists.txt
正确覆盖的最简单方法是将其设置为具有 FORCE
d 值的 CACHE
变量:
set(JUCE_BUILD_EXTRAS OFF CACHE BOOL "" FORCE)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/JUCE)
这将确保定义 option
的项目的先前配置中可能已经存在的任何状态将被覆盖并首先被拾取。
从技术上讲,option
的文档指出:
... If is already set as a normal or cache variable, then the command does nothing.
但是,这仅在没有先前配置的情况下才成立——因此这仅在变量设置为 第一次配置
之前有效在实践中,我发现 FORCE
方法更可靠。