バックグラウンド
2 つのサブプロジェクトを持つ基本的な C++ サンプル プロジェクトをセットアップして、Scons を試しています。
- Prj1 は Prj2 に依存する EXE です。
- Prj2 は、一部の関数をエクスポートする DLL です。
SConstruct および SConscript ファイルのディレクトリ構造と内容は、こちらで確認できます。
問題
私が直面している問題は、コマンド ラインからこれらのターゲットをビルドするには、ビルド ディレクトリへの相対パスとプラットフォーム固有のファイル拡張子の両方を指定する必要があることです。
たとえば、Prj1 をビルドするには、次のことを行う必要があります。
build> scons ../bin/project1.exe
同様に、Prj2 をビルドするには、次のことを行う必要があります。
build> scons ../bin/project2.dll
質問
相対パスとプラットフォーム固有のファイル拡張子を指定せずに、SCons にこれらのプロジェクトをビルドさせるにはどうすればよいですか?
希望:
build> scons project1
build> scons project2
考えられる解決策
- エイリアスを使用 - これは私が望んでいるものだと確信していますが、明らかに何かを台無しにしています。私は成功せずに次のことを試しました:
prj1_env.Alias( 'project1', PROG)
prj1_env.Alias( 'project1', os.path.join( BIN_DIR, PROG) )