本文档翻译自:https://docs.conan.io/en/latest/using_packages/workflows.html
本节总结了作为终端用户使用Conan和其他工具安装和使用现有包时可能出现的一些布局和工作流。要创建自己的包,请参阅创建包。
无论您处理的是单个配置还是多配置项目,在这两种情况下,推荐的方法都是在项目的根目录中有一个conanfile (.py或.txt)。
单个配置
当使用单个配置时,conanfile将非常简单,正如我们在本用户指南中使用的示例和教程中所示。例如,在开始时,我们展示了如何运行 conan install ..
命令在构建文件夹中生成 conaninfo.txt 和 conanbuildinfo.cmake 文件。请注意,构建文件夹是临时的,因此应该将其从版本控制中排除。
还支持源外构建。让我们看一个简单的例子:
$ git clone git@github.com:conan-io/examples
$ cd libraries/poco
$ conan install ./md5 --install-folder=md5_build
这将导致以下文件布局:
md5_build
conaninfo.txt
conanbuildinfo.txt
conanbuildinfo.cmake
md5
CMakeLists.txt # If using cmake, but can be Makefile, sln...
README.md
conanfile.txt
md5.cpp
现在您已经准备好构建:
$ cd md5_build
$ cmake ../md5 -G "Visual Studio 15 Win64" # or other generator
$ cmake --build . --config Release
$ ./bin/md5
> c3fcd3d76192e4007dfb496cca67e13b
我们已经创建了项目的单独构建配置,而不会以任何方式影响原始的源目录。好处是我们可以自由地试验配置:我们可以清除构建文件夹并构建另一个。例如,将构建类型更改为Debug:
$ rm -rf *
$ conan install ../md5 -s build_type=Debug
$ cmake ../md5 -G "Visual Studio 15 Win64"
$ cmake --build . --config Debug
$ ./bin/md5
> c3fcd3d76192e4007dfb496cca67e13b
多个配置
你也可以管理不同的配置,是否将其包含在源代码中,并在它们之间切换。而无需重新 **conan install**
安装命令(注意 当你运行 conan install
会很快, 因为之前使用相同参数并在本地产生了缓存)
$ git clone git@github.com:conan-io/examples
$ cd libraries/poco
$ conan install md5 -s build_type=Debug -if md5_build_debug
$ conan install md5 -s build_type=Release -if md5_build_release
$ cd md5_build_debug && cmake ../md5 -G "Visual Studio 15 Win64" && cd ../..
$ cd md5_build_release && cmake ../md5 -G "Visual Studio 15 Win64" && cd ../..
:::info
Note
您可以使用 --install-folder
或 -if
标志来指定生成输出文件的位置,也可以手动创建输出目录并在执行 conan install
命令之前导航到该目录。
:::
所以文件布局是:
md5_build_debug
conaninfo.txt
conanbuildinfo.txt
conanbuildinfo.cmake
CMakeCache.txt # and other cmake files
md5_build_release
conaninfo.txt
conanbuildinfo.txt
conanbuildinfo.cmake
CMakeCache.txt # and other cmake files
example-poco-timer
CMakeLists.txt # If using cmake, but can be Makefile, sln...
README.md
conanfile.txt
md5.cpp
现在您可以在构建配置之间进行切换,就像您在CMake或其他构建系统中所做的那样,通过移动到构建配置所在的文件夹,来改变 conan 配置文件。
$ cd md5_build_debug && cmake --build . --config Debug && cd ../..
$ cd md5_build_release && cmake --build . --config Release && cd ../..
注意,你的项目的CMake include()必须以当前的CMake二进制目录为前缀,否则它将找不到必要的文件:
include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
conan_basic_setup()
:::info
See alse
有两个生成器cmake_multi和visual_studio_multi,它们可以帮助避免上下文切换,同时使用调试和发布配置。在cmake_multi和visual_studio_multi中阅读更多关于它们的信息
:::