gpt4 book ai didi

cmake - 如何使多配置生成器在使用 ExternalProjects 的项目中表现得像单配置生成器?

转载 作者:行者123 更新时间:2023-12-05 07:42:04 26 4
gpt4 key购买 nike

我正在使用 CMake 构建跨平台(例如 Linux/Windows)应用程序,该应用程序还使用第三方库作为外部项目。

我知道 MSVC 是一个多配置环境,因此不使用 CMAKE_BUILD_TYPE,而是使用 CMAKE_CONFIGURATION_TYPES 集来构建所有可能的配置。

我也知道这样一个事实,我需要提供构建类型的配置(cmake --build . --config Release),而不是提供配置类型的配置(例如 cmake -DCMAKE_BUILD_TYPE ..)

参见 https://stackoverflow.com/questions/24460486/cmake-build-type-not-being-used-in-cmakelists-txt]

我完全不明白的是:

我不想要多配置构建。我想构建或者调试或者发布-但在生成的构建系统中只有其中之一。我可以使用 CMake + 多配置生成器(如 MSVC 或 Ninja Multi-Config)+ ExternalProject 项目来实现吗?如果是,如何?

最佳答案

您应该能够通过在命令行 (with the -D argument format) 中将 CMAKE_CONFIGURATION_TYPES 设置为单个条目列表来实现此目的,例如“-DCMAKE_CONFIGURATION_TYPES=Debug "或 "-DCMAKE_CONFIGURATION_TYPES=Release"当您配置构建系统,并配置对 ExternalProject_Add 的调用时使用 CMake 的外部项目也将 CMAKE_CONFIGURATION_TYPES 的值传递给外部项目,例如:

ExternalProject_Add(
# ...
CMAKE_CACHE_ARGS
"-DCMAKE_CONFIGURATION_TYPES:STRING=${CMAKE_CONFIGURATION_TYPES}"
# ...
)

关于cmake - 如何使多配置生成器在使用 ExternalProjects 的项目中表现得像单配置生成器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44857958/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com