编译第三方库,也使用 SCons 构建脚本中的 SCon



我正在使用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 无法并行化构建(即 scons -j16 (就像在env.SConscript()的情况下一样。

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

最新更新