【问题标题】:Compile a third-party library also using SCons from SCons build script使用 SCons 构建脚本中的 SCons 编译第三方库
【发布时间】:2019-04-27 13:45:34
【问题描述】:

我正在使用 SCons 来构建我的项目。

我集成的第三方库也使用 SCons,但它可以随时从 Git 更新,我无法控制其 SConstruct 文件的内容。

当自行编译时,库的SConstruct 文件接受参数bits=32/64target=debug/release

我尝试使用env.SConscript() 构建它,但这不会以目标SConstruct 文件接受的形式传递参数(不使用SCons 的Import() 函数):

# Compile Godot-CPP, a wrapper library we depend on
if nuclex._is_debug_build(environment):
    compile_godot_cpp = environment.SConscript(
        'addons/godot-cpp/SConstruct', export='bits=64 target=debug'
    )
else:
    compile_godot_cpp = environment.SConscript(
        'addons/godot-cpp/SConstruct', export='bits=64 target=release'
    )

我是否可以编译另一个SConstruct 文件并将参数传递给它,就像从命令行单独调用 SCons 一样?

我知道我可以只使用env.Command() 来启动另一个 SCons 进程,但随后 SCons 无法像在 env.SConscript() 的情况下那样并行化构建(即scons -j16)。

【问题讨论】:

    标签: parallel-processing scons build-system


    【解决方案1】:

    除了 Command() 之外,没有什么好方法可以做到这一点。 您可能会问 godot 项目,他们是否可以将大部分逻辑移动到顶层的 SConscript 中,然后您可以导入并以某种方式将所需的参数传递给。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多