SCONS запускает цель

Я искал и искал, но не могу найти ответа на свой вопрос. Я только начал учить бра сегодня вечером, и это выглядит потрясающе! Однако я немного запутался.

Для простоты разработки мне часто нравится, когда мой make-файл создает мою цель, а затем запускает ее, чтобы я мог протестировать изменение одним нажатием клавиши. Это очень просто сделать в файле make:

run: $(exe)
    chmod a+x $(exe)
    $(exe)

Я понял, что могу сделать это с помощью подпроцесса следующим образом:

import subprocess import os.path

env = Environment();
result = env.Program(target = "FOO", source = "BAR");
location = os.path.abspath(result[0].name)
subprocess.call([location])

Но есть проблема с этим решением. Насколько я экспериментировал, scons не будут ждать, пока ваша программа завершит сборку, прежде чем запускать вызов подпроцесса, поэтому вы в конечном итоге запускаете старый исполняемый файл или получаете ошибку, если это сборка после очистки.

10
задан Uli Köhler 17 June 2014 в 13:23
поделиться