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

问题描述 投票:0回答:1

我正在使用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())。

parallel-processing scons build-system
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.