以相同的方式,我们添加了新的发行版子设置,可以将新值添加到现有设置和子设置中。 例如,如果某些可接受的值范围内没有编译器版本,则可以添加这些新值。
    您还可以添加一个全新的编译器:

    1. os:
    2. Windows:
    3. subsystem: [None, cygwin, msys, msys2, wsl]
    4. ...
    5. compiler:
    6. gcc:
    7. ...
    8. mycompiler:
    9. version: [1.1, 1.2]
    10. Visual Studio:

    这与上面有关配置文件以及从配方中访问它们的方式一样。 自定义编译器的主要问题是内置的构建帮助器(例如CMake,MSBuild等)内部包含将检查这些值的代码。 例如,MSBuild生成帮助器将仅知道如何管理Visual Studio设置和子设置,而不会管理新的编译器。 对于这些情况,可以在配方中实现自定义逻辑:

    1. class Pkg(ConanFile):
    2. settings = "os", "compiler", "build_type", "arch"
    3. def build(self):
    4. if self.settings.compiler == "mycompiler":
    5. my_custom_compile = ["some", "--flags", "for", "--my=compiler"]
    6. self.run(["mycompiler", "."] + my_custom_compile)

    :::info Note
    您也可以从settings.yml文件中删除项目。 您可以删除编译器,OS,体系结构等。仅在您确实要防止为主要支持平台以外的其他平台创建二进制文件的情况下,才可以这样做。 在一般情况下,您可以保留它们,在配置文件中管理二进制配置,并且要在配置文件中定义受支持的配置,而不是通过限制settings.yml来实现。 :::

    :::info Note
    如果自定义settings.yml,则可以使用conan config install命令与团队和CI计算机共享,分发和同步此配置。 :::