AutotoolsDeps

AutotoolsDeps 是 Autotools 的依赖生成器。它将生成包含环境变量定义的 shell 脚本,Autotools 构建系统可以理解这些脚本。

它可以在 conanfile 中按名称使用

conanfile.py
class Pkg(ConanFile):
    generators = "AutotoolsDeps"
conanfile.txt
[generators]
AutotoolsDeps

它也可以在 conanfile 的 generate() 方法中完全实例化

from conan import ConanFile
from conan.tools.gnu import AutotoolsDeps

class App(ConanFile):
    settings = "os", "arch", "compiler", "build_type"

    def generate(self):
        tc = AutotoolsDeps(self)
        tc.generate()

生成的文件

它将生成文件 conanautotoolsdeps.shconanautotoolsdeps.bat

$ conan install conanfile.py # default is Release
$ source conanautotoolsdeps.sh
# or in Windows
$ conanautotoolsdeps.bat

这些启动器将定义聚合变量 CPPFLAGSLIBSLDFLAGSCXXFLAGSCFLAGS,这些变量累积所有依赖信息,包括传递依赖,以及 -I<path>-L<path> 等标志。

目前,仅生成 requires 信息,tool_requires 信息尚未由该生成器管理。

自定义

要修改计算出的值,您可以访问返回 Environment 类的 .environment 属性。

from conan import ConanFile
from conan.tools.gnu import AutotoolsDeps

class App(ConanFile):
    settings = "os", "arch", "compiler", "build_type"

    def generate(self):
        tc = AutotoolsDeps(self)
        tc.environment.remove("CPPFLAGS", "undesired_value")
        tc.environment.append("CPPFLAGS", "var")
        tc.environment.define("OTHER", "cat")
        tc.environment.unset("LDFLAGS")
        tc.generate()

参考

class AutotoolsDeps(conanfile)
property environment
返回值:

包含计算变量的 Environment 对象。如果您需要修改某些计算值,您可以访问 environment 对象。