На сканированиях, как я могу ввести цель, которая будет создана?

Я бы не советовал, но если вам это так нужно, вы можете создать проверку регулярных выражений в Checkstyle и заставить людей реализовать статическую переменную

5
задан Ross Rogers 1 April 2009 в 22:05
поделиться

2 ответа

В версии 1.1.0.d20081104 SCons можно использовать частный внутренний метод SCons:

SCons.Script._Add_Targets( [ 'MY_INJECTED_TARGET' ] )

Если пользователь вводит:

% scons foo bar 

Вышеупомянутый фрагмент кода заставит SCons вести себя, как будто пользователь ввел:

% scons foo bar MY_INJECTED_TARGET
1
ответ дан 18 December 2019 в 12:02
поделиться

Один путь состоит в том, чтобы иметь gzip инструмент, зависят от вывода файлов журнала. Например, если у нас есть этот файл C, 'hello.c':

#include <stdio.h>
int main()
{
    printf("hello world\n");
    return 0;
}

И этот файл SConstruct:

#!/usr/bin/python
env = Environment()
hello = env.Program('hello', 'hello.c')
env.Default(hello)
env.Append(BUILDERS={'CreateLog':
    Builder(action='$SOURCE.abspath > $TARGET', suffix='.log')})
log = env.CreateLog('hello', hello)
zipped_log = env.Zip('logs.zip', log)
env.Alias('cleanup', zipped_log)

Затем выполнение "очистки сканирований" выполнит необходимые шаги в правильном порядке:

gcc -o hello.o -c hello.c
gcc -o hello hello.o
./hello > hello.log
zip(["logs.zip"], ["hello.log"])

Это не совсем, что Вы указали, но единственная разница между этим примером и Вашим требованием - то, что "очистка" является шагом, который на самом деле создает zip-файл, так, чтобы был шаг, который необходимо выполнить. Ее зависимости (запускающий программу, которая генерирует журнал, создавая ту программу) автоматически вычисляются. Можно теперь добавить псевдоним "нечто" следующим образом для получения желаемого вывода:

env.Alias('foo', zipped_log)
2
ответ дан 18 December 2019 в 12:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: