conan.tools.scons

SConsDeps

SConsDepsSCons 的依赖生成器。它将生成一个 SConscript_conandeps 文件,其中包含 SCons 构建所需依赖项的信息。

在 conanfiles 中可以使用名称来调用 SConsDeps 生成器

conanfile.py
from conan import ConanFile

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

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

from conan import ConanFile
from conan.tools.scons import SConsDeps

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

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

执行 conan install 命令后,SConsDeps 生成器将创建 SConscript_conandeps 文件。该文件将为 SCons 提供以下信息: CPPPATHLIBPATHBINPATHLIBSFRAMEWORKSFRAMEWORKPATHCPPDEFINESCXXFLAGSCCFLAGSSHLINKFLAGSLINKFLAGS。此信息是为所有依赖项的累积列表以及每个需求生成的。您可以在消费者的 SConscript 中这样加载它

消费者 SConscript
...
info = SConscript('./SConscript_conandeps')
# You can use conandeps to get the information
# for all the dependencies.
flags = info["conandeps"]

# Or use the name of the requirement if
# you only want the information about that one.
flags = info["zlib"]

env.MergeFlags(flags)
...