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

    到目前为止,我们已经使用了 ~/.conan/profiles/default 中存储的默认设置,并在命令行上加入了自定义参数。

    然而,在大型项目中,配置可能会变得复杂,设置可能会非常不同,我们需要一种简单的方法来切换不同配置的不同设置,选项等。在配置之间切换的一种简单方法是使用配置文件。

    配置文件包含预定义的settingoptionsenvironment variablesbuild_requires,在以下结构中指定:

    1. [settings]
    2. setting=value
    3. [options]
    4. MyLib:shared=True
    5. [env]
    6. env_var=value
    7. [build_requires]
    8. tool1/0.1@user/channel
    9. tool2/0.1@user/channel, t

    options 允许使用通配符,使您可以将相同的选项值应用于许多包。例如:

    1. [options]
    2. *:shared=True

    下面是配置文件可能包含的配置示例:

    clang_3.5

    1. [settings]
    2. os=Macos
    3. arch=x86_64
    4. compiler=clang
    5. compiler.version=3.5
    6. compiler.libcxx=libstdc++11
    7. build_type=Release
    8. [env]
    9. CC=/usr/bin/clang
    10. CXX=/usr/bin/clang++

    配置文件可以存储在默认配置文件文件夹中(~/.conan/profiles/),也可以存储在项目文件结构中的其他任何位置。要使用配置文件中指定的配置,在文件中传递命令行参数,如下例所示:

    1. $ conan create . demo/testing -pr=clang_3.5

    继续使用Poco的例子,我们可以定义一个简便的配置文件,它定义所有的命令行参数,并在安装项目依赖项时将其传递给命令行。而不是传递一长串命令行参数。
    将一个依赖包作为 shareddebug 模式是这样的:

    debug_shared

    1. include(default)
    2. [settings]
    3. build_type=Debug
    4. [options]
    5. poco:shared=True
    6. poco:enable_apacheconnector=False
    7. openssl:shared=True

    要使用配置文件安装依赖关系,我们将使用:

    1. $ conan install .. -pr=debug_shared

    我们还可以创建一个新的配置文件来使用不同的编译器版本,并将其存储在我们的项目目录中。例如:

    poco_clang_3.5

    1. include(clang_3.5)
    2. [options]
    3. poco:shared=True
    4. poco:enable_apacheconnector=False
    5. openssl:shared=True

    要使用这个新的配置文件安装依赖包,我们将使用:

    1. $ conan install .. -pr=../poco_clang_3.5

    您可以在命令行中指定多个配置文件。应用的配置将是所有配置文件的组成,按照它们被指定的顺序决定优先级(最后指定的重合部分会覆盖前面的):

    1. $ conan install .. -pr=../poco_clang_3.5 -pr=my_build_tool1 -pr=my_build_tool2


    :::info See alse
    阅读更多关于配置文件的完整参考。有一个Conan命令,conan profile,可以帮助检查和管理配置文件。配置文件也可以通过 conan config install 命令来共享和安装。 :::