【问题标题】:Overriding profile settings in Conan覆盖柯南中的配置文件设置
【发布时间】:2021-09-14 11:06:52
【问题描述】:

我有一个特殊的问题。 我正在为 Windows 配置文件创建一个柯南包。 但是,我需要一些使用 Linux 配置文件上传到 Artifactory 的包。 这是相当少见的,因为通常必须为同一个配置文件安装所有组件。但是,我无法更改这一点,因为 Linux 组件由我的软件加载并传输到执行它们的 Linux 计算机。

那么有没有办法指定我想从柯南文件中的工件下载组件的配置文件?

【问题讨论】:

  • 您说的是“下载”,而不是“安装”,它们是不同的命令,但我了解您要安装一个包。柯南根据您的个人资料安装软件包,因此,您使用的是 Windows 还是 Linux 都没有关系。您可以通过命令参数直接覆盖您的设置:docs.conan.io/en/latest/reference/commands/consumer/…
  • 已修复安装,抱歉,用错词了。我知道我可以通过使用配置文件或命令行来更改它们。但是我想“修复”我的 conanfile.py 中的设置,以免用户更改它们。
  • 你的意思是限制食谱的设置吗?是的,你可以做到:docs.conan.io/en/latest/reference/conanfile/… 但是你需要重建并重新上传你的包。
  • 你做不到。从conanfile.py 内部,无法覆盖将用于需求的设置。正如你所说,你需要通过配置文件或命令行来完成。

标签: python conan


【解决方案1】:

简短回答:你不能从conanfile.py 内部进行。


(如问题中所述)您可以使用配置文件或命令行来完成。例如,如果您的项目依赖于boostzlib,并且您需要混合不同的配置,您可以这样做:

  • 使用配置文件:

    [settings]
    os=Linux  # This will apply by default to all libraries
    boost:os=Windows
    zlib:os=Android
    ...
    
  • 命令行:

    conan install <your/project> -s boost:os=Windows -s zlib:os=Android
    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-24
    • 2018-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-02
    相关资源
    最近更新 更多