我正在尝试使用conan.cmake实现一个多配置cmake构建。我还与cmake_multi文档一起进行跟踪。
在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以在conan_args的末尾传递"-sbuild_type=${CMAKE_BUILD_TYPE}",它就能够找到我的包,用于发布和调试。
有人能看到我可能做错了什么吗?我没有在conan中指定build_type,也没有将其设置为我的设置的一部分。
发布于 2020-12-30 15:31:44
在多次阅读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
)https://stackoverflow.com/questions/65500310
复制相似问题