如何在已有CMake项目中集成Conan且仅使用conan_toolchain.cmake
解决方案
1. 修改Conan命令,禁用预设文件生成
原命令默认会生成CMakePresets相关文件,添加--cmake-presets=none参数即可阻止这一行为,仅保留conan_toolchain.cmake:
conan install . --output-folder=dependencies --deployer=full_deploy --generator=CMakeToolchain --cmake-presets=none
2. 在CMake中引用Conan工具链文件
有两种方式让CMake识别并使用生成的工具链文件:
- 命令行指定:执行CMake时通过参数直接指向工具链文件:
cmake -S . -B build -DCMAKE_TOOLCHAIN_FILE=dependencies/conan_toolchain.cmake - CMakeLists.txt中配置:将以下代码放在
project()命令之前(推荐方式):set(CMAKE_TOOLCHAIN_FILE ${CMAKE_CURRENT_SOURCE_DIR}/dependencies/conan_toolchain.cmake)
这样既能让CMake通过Conan工具链找到依赖,又不会覆盖你项目中已有的CMakePresets.json和CMakeUserPresets.json。
内容的提问来源于stack exchange,提问作者Loop
相关产品推荐
相关产品推荐

