【问题标题】:How to pull a dependency with specific setting in a conanfile.py?如何在 conanfile.py 中提取具有特定设置的依赖项?
【发布时间】:2022-01-09 08:03:00
【问题描述】:

我正在为我的项目创建一个配方。该项目依赖于一个包,例如“pcapplusplus/18.08”。很简单,我这样做:

class MyProject(ConanFile):
    name = "myproject"
    version = "0.1"
    settings = "os", "compiler", "build_type", "arch"

    # ...simplified...

    requires = "pcapplusplus/18.08"

    # ... configure, build etc

除了 pcapplusplus 依赖项必须使用设置compiler.version=15 拉取。类似于配置文件中的这种语法:

[settings]
pcapplusplus:compiler.version=15

或来自conan install

conan install . -s pcapplusplus:compiler.version=15

这是如何在conanfile.py 中完成的?

【问题讨论】:

    标签: conan


    【解决方案1】:

    您描述的[settings] 不是conanfile.txt。它是一个配置文件,必须用作:

    $ conan install <path-to-conanfile> --profile=<path-to-profile>
    

    配置文件可用于conanfile.txtconanfile.py 文件。

    【讨论】:

    • 你说得对,我的例子很糟糕。我将为未来的读者编辑问题。但是你明白我的意思,这个问题仍然没有答案,柯南安装有一种方法可以“调整”关节依赖的设置,你如何从 conanfile.py 中获得相同的效果?
    • 是的,这在 conanfiles 中是不可能的,只能在配置文件/命令行中完成。之所以没有这样做,是因为它引入了另一组问题,例如具有菱形结构的图中的依赖项配置冲突,类似于版本和选项冲突已经发生的情况(这是一个具有挑战性和令人困惑的事情,最好不要在设置中复制相同的问题),或者对默认值和优先级的混淆误解。
    猜你喜欢
    • 2017-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-01
    • 1970-01-01
    • 2013-10-06
    • 2013-04-27
    相关资源
    最近更新 更多