Python, может быть действием SCons используется в Builder, как описано в SCons user manual. Эта функция будет вызываться SCons всякий раз, когда ЛЮБОЙ из источников меняется. Источники передаются в виде списка SCons файлов объекты Внутри этой функции я хочу знать, если конкретный источник был изменен (и, таким образом, какие исходные файлы вынуждены SCons восстановить цель строителя).Получить какие файлы были изменены файлы внутри Scons строителя действий
так что если «file.target» построен с использованием «file1.src» и «file2.src» с помощью пользовательского построителя, который вызывает в Python функцию «custom_build»:
env.CUSTOM_BUILDER('file.target', ['file1.src', 'file2.src'])
def custom_build(env, source, target):
# Checks if file1.src has been modified
if source[0].has_been_modified: # Does something like this exist??
Я осмотрел этот файл объектов при отладке, но без успеха. Есть ли какое-либо свойство, чтобы знать, что определенный файл изменился внутри построителя SCons?
Это не задача Действия Строителя. Определяя файлы '* .src' как источники для вашей цели, SCons автоматически регистрирует зависимость между этими файлами. Когда изменяется один из ваших исходных файлов (в зависимости от того, какой метод Decider() вы используете), вы вызываете свое действие «custom_build». Его единственная задача - воссоздать цель из данных источников, решение о том, когда этот шаг произойдет, находится на другом уровне. – dirkbaechle
Я понимаю вашу точку зрения. Но предположим, что для воссоздания цели мне нужно знать, какие файлы были изменены. Предположим, что целью является простой файл, в котором перечислены файлы, которые были изменены из всех возможных источников, которые могут использоваться для воссоздания цели. У Сконса есть эта информация, поэтому мой вопрос касался того, как ее получить. –
Я нашел и разместил решение, которое соответствует моим потребностям. В любом случае, спасибо за ваше время и беспокойство. –