一些构建系统,如Visual Studio (MSBuild),使用 “多配置” 环境。也就是说,即使项目只配置了一次,您也可以直接在集成开发环境中切换不同的配置 (如调试/发布) 并在那里构建。
    上面的示例使用Conan cmake生成器,该生成器创建单个conanbuildinfo.cmake文件。如果我们在不同的文件夹中内置配置,这不是问题。每个都将包含自己的conanbuildinfo.cmake。对于Visual Studio而言,这意味着如果要从调试 <-> 版本切换,则应使用右键-s build_type发出新的conan工作区安装命令并进行干净的构建,为了获得正确的依赖关系。
    柯南有cmake_multi生成器,它允许在集成开发环境中直接切换调试/发布配置。Conanfile.py配方他们已经定义了cmake生成器,所以第一步是在我们的conanws_vs.yml文件中覆盖它:

    1. editables:
    2. say/0.1@user/testing:
    3. path: say
    4. hello/0.1@user/testing:
    5. path: hello
    6. chat/0.1@user/testing:
    7. path: chat
    8. layout: layout_vs
    9. generators: cmake_multi
    10. workspace_generator: cmake
    11. root: chat/0.1@user/testing

    请注意生成器: cmake_multiline,它将定义要由我们的工作区包使用的生成器。另外,我们的CMakeLists.txt应该考虑到,现在我们将没有conanbuildinfo.cmake文件,而是conanbuildinfo_multi.cmake文件。例如,请参阅hello/src/CMakeLists.txt文件:

    1. project(Hello)
    2. if(EXISTS ${CMAKE_CURRENT_BINARY_DIR}/conanbuildinfo_multi.cmake)
    3. include(${CMAKE_CURRENT_BINARY_DIR}/conanbuildinfo_multi.cmake)
    4. else()
    5. include(${CMAKE_CURRENT_BINARY_DIR}/conanbuildinfo.cmake)
    6. endif()
    7. conan_basic_setup(NO_OUTPUT_DIRS)
    8. add_library(hello hello.cpp)
    9. conan_target_link_libraries(hello)

    最后一个conan_target_link_libraries(hello) 是一个帮助程序,它与调试/发布库进行正确的链接 (在使用cmake目标时也有效)。
    如果以后要在IDE中切换它们,请确保直接安装调试和发布配置:

    1. $ mkdir build && cd build
    2. $ conan workspace install ../conanws_vs.yml
    3. $ conan workspace install ../conanws_vs.yml -s build_type=Debug
    4. $ cmake .. -G "Visual Studio 15 Win64"

    您可以在项目文件夹中检查以下文件是如何生成的:

    1. hello
    2. |- build
    3. | - conanbuildinfo_multi.cmake
    4. | - conanbuildinfo_release.cmake
    5. | - conanbuildinfo_debug.cmake

    请注意,它们不在构建/发布和构建/调试子文件夹中; 这是因为多配置环境。为了说明布局vs将 [build_文件夹] 定义为不是build/{settings.build_type},而是如下所示:

    1. [build_folder]
    2. build