本文档翻译自:https://docs.conan.io/en/latest/using_packages/using_profiles.html
到目前为止,我们已经使用了 ~/.conan/profiles/default
中存储的默认设置,并在命令行上加入了自定义参数。
然而,在大型项目中,配置可能会变得复杂,设置可能会非常不同,我们需要一种简单的方法来切换不同配置的不同设置,选项等。在配置之间切换的一种简单方法是使用配置文件。
配置文件包含预定义的setting
、options
、environment variables
和 build_requires
,在以下结构中指定:
[settings]
setting=value
[options]
MyLib:shared=True
[env]
env_var=value
[build_requires]
tool1/0.1@user/channel
tool2/0.1@user/channel, t
options 允许使用通配符,使您可以将相同的选项值应用于许多包。例如:
[options]
*:shared=True
下面是配置文件可能包含的配置示例:
clang_3.5
[settings]
os=Macos
arch=x86_64
compiler=clang
compiler.version=3.5
compiler.libcxx=libstdc++11
build_type=Release
[env]
CC=/usr/bin/clang
CXX=/usr/bin/clang++
配置文件可以存储在默认配置文件文件夹中(~/.conan/profiles/),也可以存储在项目文件结构中的其他任何位置。要使用配置文件中指定的配置,在文件中传递命令行参数,如下例所示:
$ conan create . demo/testing -pr=clang_3.5
继续使用Poco的例子,我们可以定义一个简便的配置文件,它定义所有的命令行参数,并在安装项目依赖项时将其传递给命令行。而不是传递一长串命令行参数。
将一个依赖包作为 shared 和 debug 模式是这样的:
debug_shared
include(default)
[settings]
build_type=Debug
[options]
poco:shared=True
poco:enable_apacheconnector=False
openssl:shared=True
要使用配置文件安装依赖关系,我们将使用:
$ conan install .. -pr=debug_shared
我们还可以创建一个新的配置文件来使用不同的编译器版本,并将其存储在我们的项目目录中。例如:
poco_clang_3.5
include(clang_3.5)
[options]
poco:shared=True
poco:enable_apacheconnector=False
openssl:shared=True
要使用这个新的配置文件安装依赖包,我们将使用:
$ conan install .. -pr=../poco_clang_3.5
您可以在命令行中指定多个配置文件。应用的配置将是所有配置文件的组成,按照它们被指定的顺序决定优先级(最后指定的重合部分会覆盖前面的):
$ conan install .. -pr=../poco_clang_3.5 -pr=my_build_tool1 -pr=my_build_tool2
:::info
See alse
阅读更多关于配置文件的完整参考。有一个Conan命令,conan profile
,可以帮助检查和管理配置文件。配置文件也可以通过 conan config install
命令来共享和安装。
:::