Поработав некоторое время с VariantDir (он вообще ничего не делал), я остановился на параметре variant_dir
в вызове верхнего уровня SConscript, который приводит к тому, что все последующие выходные сборки в конечном итоге оказываются в параллельной «сборке».tree: SConscript(['subdirs/SConscript'], variant_dir='build', duplicate=0)
Моя структура сборки представляет собой иерархию SC-сценариев в подкаталогах / под-подкаталогах и т. д. При этом вызове выходные данные заканчиваются в сборке / под-подкаталогах того же уровня, что и в источнике.
Это съедает один уровень, хотя (подкаталоги), и использование "../build" не помогает.Решение состоит в том, чтобы иметь файл SConscript на том же уровне, что и SConstruct, и вызвать SConscript(['SConscript'], variant_dir='build', duplicate=0)
См. Также Принудительно выводить Scons (exe, obj, lib & dll) в определенный каталог сборки -на него есть аналогичный ответ