4

システムにインストールされているソースで利用可能なライブラリに依存するソフトウェアを構築するためにSConsを使用しようとしています。たとえば/usr/share/somewhere/src*.cppそのディレクトリにあるものを静的ライブラリに組み込み、自分のコードにリンクする必要があります。図書館の情報源にはそのSConscript中にはありません。

ライブラリはシステムディレクトリにあるので、私には権限がなく、ビルドアーティファクトをのどこかに置きたくありません/usr/tmpまたは.build現在の作業ディレクトリでOKです。これは簡単にできると思いますが、これらすべてに巻き込まれていSConscriptsますVariantDirs

env = Environment()
my_things = env.SConscript('src/SConsctipt', variant_dir='.build/my_things')
sys_lib = env.SConscript(????)
result = env.Program('result', [my_things, sys_lib])

SConsの問題を解決するための意図された方法は何ですか?

4

1 に答える 1

3

これを行うには、リポジトリを使用できます。たとえば、SConstruct で次のように記述できます。

sys_lib = env.SConscript("external.scons", variant_dir=".build/external")

次に、external.scons(ソース ツリーにある) ファイルに、外部ソース ツリーへのパスと、そこにライブラリをビルドする方法を追加します。

env = Environment()
env.Repository("/usr/share/somewhere/src")
lib = env.Library("library_name", Glob("*.cpp"))
Return("lib")
于 2010-04-07T18:18:26.053 に答える