【问题标题】:Building external code trees with SCons使用 SCons 构建外部代码树
【发布时间】:2010-04-07 13:34:43
【问题描述】:

我正在尝试使用 SCons 构建一个依赖于库的软件,该库在系统中安装的源中可用。例如/usr/share/somewhere/src。该目录中的*.cpp 应内置到静态库中并与我自己的代码链接。库源中没有SConscript

由于库位于系统目录中,我没有权限,也不想将构建工件放在/usr 下的某个位置。当前工作目录中的/tmp.build 可以。我怀疑这很容易做到,但我已经被所有这些SConscriptsVariantDirs 纠缠了。

env = Environment()
my_things = env.SConscript('src/SConsctipt', variant_dir='.build/my_things')
sys_lib = env.SConscript(????)
result = env.Program('result', [my_things, sys_lib])

解决 SCons 问题的预期方法是什么?

【问题讨论】:

    标签: c++ c build scons


    【解决方案1】:

    您可以使用Repository 来执行此操作。例如,在您的 SConstruct 中,您可以编写:

    sys_lib = env.SConscript("external.scons", variant_dir=".build/external")
    

    然后在external.scons 文件(位于您的源代码树中)中,添加外部源代码树的路径以及如何在其中构建库。

    env = Environment()
    env.Repository("/usr/share/somewhere/src")
    lib = env.Library("library_name", Glob("*.cpp"))
    Return("lib")
    

    【讨论】:

    • 看起来存储库正是我所需要的。我认为它们以某种方式与 VCS 有关。坏名字:)
    猜你喜欢
    • 2017-05-07
    • 1970-01-01
    • 1970-01-01
    • 2018-02-05
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 2011-05-17
    相关资源
    最近更新 更多