将 `conan.cmake` 与 `conan_multi` 生成器一起使用,缺少 build_type 参数?
Using `conan.cmake` with `conan_multi` generator, missing build_type argument?
我正在尝试使用 conan.cmake
. I am also following along with the cmake_multi
文档使多配置 cmake 构建工作。
似乎在 cmake_multi
的文档中,他们要求您同时通过 -g cmake_multi
和 -s build_type={type}
({type} being Release/Debug/...
)。
但是,在 conan.cmake
中,调用 conan install -g cmake_multi ...
时似乎没有传递当前的 build_type
。
我现在遇到这样一种情况,如果我 运行 配置 "Release;Debug"
conan 报告丢失了一堆包
Requirements
boost/1.71.0@conan/stable from 'my_repo' - Cache
libconfig/1.6@internal/custom from 'my_repo' - Cache
...
Packages
boost/1.71.0@conan/stable:5b939a5d59f5432d9263459d17f2acb1535629bd - Missing
libconfig/1.6@internal/custom:ef44119b64b51a15f7b334090b2ff53fddcc38df - Missing
...
但是,如果我编辑 conan.cmake
以在末尾也传递 "-sbuild_type=${CMAKE_BUILD_TYPE}"
conan_args
,它能够找到我的 Release 和 Debug 包。
谁能看出我在这里做错了什么?我没有在我的柯南个人资料中指定 build_type
,我的设置中也没有设置。
在多读了几次 conan.cmake
的源代码后,我发现可以让它传播构建类型,你只需要使用 PROFILE_AUTO
参数到 conan_cmake_run
.
conan_cmake_run(
PROFILE ${CONAN_PROFILE}
CONFIGURATION_TYPES ${CONFIGURATION_TYPES}
PROFILE_AUTO build_type # Use build_type as detected by CMake, override any values in the profile
BUILD outdated
)
我正在尝试使用 conan.cmake
. I am also following along with the cmake_multi
文档使多配置 cmake 构建工作。
似乎在 cmake_multi
的文档中,他们要求您同时通过 -g cmake_multi
和 -s build_type={type}
({type} being Release/Debug/...
)。
但是,在 conan.cmake
中,调用 conan install -g cmake_multi ...
时似乎没有传递当前的 build_type
。
我现在遇到这样一种情况,如果我 运行 配置 "Release;Debug"
conan 报告丢失了一堆包
Requirements
boost/1.71.0@conan/stable from 'my_repo' - Cache
libconfig/1.6@internal/custom from 'my_repo' - Cache
...
Packages
boost/1.71.0@conan/stable:5b939a5d59f5432d9263459d17f2acb1535629bd - Missing
libconfig/1.6@internal/custom:ef44119b64b51a15f7b334090b2ff53fddcc38df - Missing
...
但是,如果我编辑 conan.cmake
以在末尾也传递 "-sbuild_type=${CMAKE_BUILD_TYPE}"
conan_args
,它能够找到我的 Release 和 Debug 包。
谁能看出我在这里做错了什么?我没有在我的柯南个人资料中指定 build_type
,我的设置中也没有设置。
在多读了几次 conan.cmake
的源代码后,我发现可以让它传播构建类型,你只需要使用 PROFILE_AUTO
参数到 conan_cmake_run
.
conan_cmake_run(
PROFILE ${CONAN_PROFILE}
CONFIGURATION_TYPES ${CONFIGURATION_TYPES}
PROFILE_AUTO build_type # Use build_type as detected by CMake, override any values in the profile
BUILD outdated
)