我需要能够调整构建环境,以便可以在较低级别构建静态或共享对象。目前,我想出了以下方法:
顶级 SConstruct:
if build_shared:
env.Replace(ObjectBuilder = env.SharedObject)
env.Replace(LibraryBuilder = env.SharedLibrary)
else:
env.Replace(ObjectBuilder = env.StaticObject)
env.Replace(LibraryBuilder = env.StaticLibrary)
在较低级别的 SConstructs 中,我按名称调用它们:
env['ObjectBuilder']('foo.c')
env['LibraryBuilder']('lib', objects)
但是,我不确定这个解决方案有多合理。是否有更直接/正确的方法来实现相同的功能?
提前致谢。