VariantDir()関数を使用して、または SConscript() 呼び出しの一部として、ビルド ディレクトリを指定できます。ここでは、さまざまなオプションについてすべて説明します。複数の SConstruct ファイルを使用したくない場合は、ここで詳細に説明されているように、VariantDir() 関数を使用する必要があります。
簡単な例を次に示します。
env = 環境()
# It may be as simple as setting src_dir='.', but set accordingly
# duplicate=0 tells SCons NOT to copy source files to variantDir, set accordingly
# VariantDir() can be called multiple times so as to change dirs per builder call
VariantDir(variant_dir = 'pathToBuildDir', src_dir = 'pathToSource', duplicate=0)
# Now call the builders here
json と SCons を混在させたい理由はまだ明らかではありません。やむを得ない理由がない限り、すべてを Python である SCons に保持することをお勧めします。
編集: ファイルではなく SConscript オブジェクトの作成について質問されたことに気付きました。
SCons プログラミング API を調べましたが、SConscript オブジェクトを作成できるものは見つかりませんでした。実際には、SConscript() 関数の呼び出しを、開いて処理する必要のあるファイルとして扱うだけで、ほとんど SConstruct の拡張として扱われるため、SConscript オブジェクトの概念が存在するとは思いません。
要約すると、補助的な SConscript ファイルを作成するか、VariantDir() の呼び出しを処理する必要があります。プロジェクトのディレクトリ構造によっては、SConscript ファイルを作成する必要がない場合があります。ルート SConstruct からすべてを行うことができます。SConscript ファイルは必要ありません。ビルド スクリプトをより適切に整理するのに役立ちます。