本文档翻译自:https://docs.conan.io/en/latest/using_packages/workflows.html

本节总结了作为终端用户使用Conan和其他工具安装和使用现有包时可能出现的一些布局和工作流。要创建自己的包,请参阅创建包。
无论您处理的是单个配置还是多配置项目,在这两种情况下,推荐的方法都是在项目的根目录中有一个conanfile (.py或.txt)。

单个配置

当使用单个配置时,conanfile将非常简单,正如我们在本用户指南中使用的示例和教程中所示。例如,在开始时,我们展示了如何运行 conan install .. 命令在构建文件夹中生成 conaninfo.txtconanbuildinfo.cmake 文件。请注意,构建文件夹是临时的,因此应该将其从版本控制中排除。

还支持源外构建。让我们看一个简单的例子:

  1. $ git clone git@github.com:conan-io/examples
  2. $ cd libraries/poco
  3. $ conan install ./md5 --install-folder=md5_build

这将导致以下文件布局:

  1. md5_build
  2. conaninfo.txt
  3. conanbuildinfo.txt
  4. conanbuildinfo.cmake
  5. md5
  6. CMakeLists.txt # If using cmake, but can be Makefile, sln...
  7. README.md
  8. conanfile.txt
  9. md5.cpp

现在您已经准备好构建:

  1. $ cd md5_build
  2. $ cmake ../md5 -G "Visual Studio 15 Win64" # or other generator
  3. $ cmake --build . --config Release
  4. $ ./bin/md5
  5. > c3fcd3d76192e4007dfb496cca67e13b

我们已经创建了项目的单独构建配置,而不会以任何方式影响原始的源目录。好处是我们可以自由地试验配置:我们可以清除构建文件夹并构建另一个。例如,将构建类型更改为Debug:

  1. $ rm -rf *
  2. $ conan install ../md5 -s build_type=Debug
  3. $ cmake ../md5 -G "Visual Studio 15 Win64"
  4. $ cmake --build . --config Debug
  5. $ ./bin/md5
  6. > c3fcd3d76192e4007dfb496cca67e13b

多个配置

你也可以管理不同的配置,是否将其包含在源代码中,并在它们之间切换。而无需重新 **conan install** 安装命令(注意 当你运行 conan install 会很快, 因为之前使用相同参数并在本地产生了缓存)

  1. $ git clone git@github.com:conan-io/examples
  2. $ cd libraries/poco
  3. $ conan install md5 -s build_type=Debug -if md5_build_debug
  4. $ conan install md5 -s build_type=Release -if md5_build_release
  5. $ cd md5_build_debug && cmake ../md5 -G "Visual Studio 15 Win64" && cd ../..
  6. $ cd md5_build_release && cmake ../md5 -G "Visual Studio 15 Win64" && cd ../..


:::info Note
您可以使用 --install-folder-if 标志来指定生成输出文件的位置,也可以手动创建输出目录并在执行 conan install 命令之前导航到该目录。 :::

所以文件布局是:

  1. md5_build_debug
  2. conaninfo.txt
  3. conanbuildinfo.txt
  4. conanbuildinfo.cmake
  5. CMakeCache.txt # and other cmake files
  6. md5_build_release
  7. conaninfo.txt
  8. conanbuildinfo.txt
  9. conanbuildinfo.cmake
  10. CMakeCache.txt # and other cmake files
  11. example-poco-timer
  12. CMakeLists.txt # If using cmake, but can be Makefile, sln...
  13. README.md
  14. conanfile.txt
  15. md5.cpp

现在您可以在构建配置之间进行切换,就像您在CMake或其他构建系统中所做的那样,通过移动到构建配置所在的文件夹,来改变 conan 配置文件。

  1. $ cd md5_build_debug && cmake --build . --config Debug && cd ../..
  2. $ cd md5_build_release && cmake --build . --config Release && cd ../..

注意,你的项目的CMake include()必须以当前的CMake二进制目录为前缀,否则它将找不到必要的文件:

  1. include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
  2. conan_basic_setup()

:::info See alse
有两个生成器cmake_multi和visual_studio_multi,它们可以帮助避免上下文切换,同时使用调试和发布配置。在cmake_multi和visual_studio_multi中阅读更多关于它们的信息 :::