Я надеюсь, что заголовок разъясняет то, что я хочу спросить, потому что это немного сложно.
У меня есть SConscript SCONS для каждого подкаталога следующим образом (делаю это в linux, если это важно):
- src_dir
- компилятор
- скриптов
- data
- SConscript
- файлов данных для yacc
Я использую Option_Dir без копирования, например:
SConscript('src_dir/compiler/SConscript', variant_dir = 'obj_dir', duplicate = 0)
В результате obj_dir после построения yacc будет:
Теперь вот сделка.
У меня есть еще один SConscript в каталоге данных, который нужно сделать2 вещи: 1. скомпилировать данные с помощью компилятора yacc
2. взять выходные данные компилятора и запустить их с помощью legacy_script, который я не могу изменить
(legacy_script, занимаетВывод скомпилированных данных и сборка некоторых h-файлов для работы другого программного обеспечения)
номер 1 легко получить:
linux_env.Command('[output1, output2]', 'data/data_files','compiler_compiler.exe data_files output1 output2')
Моя проблема - номер 2: КакЯ устанавливаю, что исполнитель сценариев зависит от выходных данных другой цели
. И чтобы прояснить это, мне нужно запустить SCONS (и только в случае изменения compiler_output):
src_dir/script/legacy_script obj_dir/data/compiler_output obj_dir/some_dir/script_output
(использование сценария:legacy_script input_file output_file)
Надеюсь, я дал понять, не стесняйтесь задавать еще несколько вопросов ...