下位レベルで静的オブジェクトまたは共有オブジェクトを構築できるように、構築環境を調整できる必要があります。現在、私は次のアプローチを思いつきました:
トップレベルの 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)
ただし、このソリューションがどれほど健全かはわかりません。同じ機能を実現するためのより簡単で適切な方法はありますか?
前もって感謝します。