Как удалить временные файлы в сборке scons, не перестраивая их - PullRequest
0 голосов
/ 02 декабря 2018

В сборке, которую я пытаюсь сделать, есть 2 шага для генерации вывода

a.bin -> ac (преобразовать любой файл в файл C с массивом, хранящим содержимое) ac-> ao

ac может быть массивным и должен быть удален после генерации ao.

Вот что я пробовал до сих пор

  1. Используйте отдельные компоновщики для каждого шага.Для последнего шага используйте target.AddPostAction (Delete ("ac"))

Это удаляет временный файл, но при повторной сборке ac восстанавливается, потому что SCons создает все цели по умолчанию в отличие отmake

Есть ли какая-нибудь команда, чтобы сказать SCons не строить цель, если она не нужна другой цели?Это будет противоположностью AlwaysBuild ()

Создайте пользовательский конструктор, который выполняет оба шага (target = ao, source = a.json), так что SCons даже не знает о ac

Это потребовало от меня создания собственной командыдля компиляции C, которая работает для GCC, но не для компилятора Microsoft.Есть ли способ получить скомпилированную команду SCons C или команда SCons немедленно выполнит эту команду?

1 Ответ

0 голосов
/ 04 декабря 2018

Вы пробовали:

Ignore('a.o','a.c')

не пробовал, но это может сработать.

...