AutotoolsDeps

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

可以在 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

这些启动器将定义聚合变量 CPPFLAGS, LIBS, LDFLAGS, CXXFLAGS, CFLAGS,它们会累积所有依赖项信息(包括传递性依赖项),以及诸如 -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 对象。