Как добавить существующий флаг в scons - PullRequest
0 голосов
/ 28 декабря 2011

Я использую Hi-Tech C компилятор и хочу использовать Scons для создания своих проектов.Исполняемый файл компилятора picc.exe.Он имеет семантику, аналогичную GCC, но не все.

Я также установил значение по умолчанию как GCC и постараюсь изменить его оттуда.Вывод из выполнения env.Program('main.c'):

picc -o main.o -c 

Однако в Hi-Tech C флаг -o означает выходной файл, например, -Oc:\project\output\first

Как добавить -o, чтобы он вывел:

picc -omain.o -c 

1 Ответ

2 голосов
/ 29 декабря 2011

Итак, поиск в каталоге «Инструменты» установки SCons находит следующие определения:

cc.py:    env['CCCOM']     = '$CC -o $TARGET -c $CFLAGS $CCFLAGS $_CCCOMCOM $SOURCES'
cc.py:    env['SHCCCOM']   = '$SHCC -o $TARGET -c $SHCFLAGS $SHCCFLAGS $_CCCOMCOM $SOURCES'
c++.py:    env['CXXCOM']     = '$CXX -o $TARGET -c $CXXFLAGS $CCFLAGS $_CCCOMCOM $SOURCES'
c++.py:    env['SHCXXCOM']   = '$SHCXX -o $TARGET -c $SHCXXFLAGS $SHCCFLAGS $_CCCOMCOM $SOURCES'
link.py:    env['SHLINKCOM']   = '$SHLINK -o $TARGET $SHLINKFLAGS $SOURCES $_LIBDIRFLAGS $_LIBFLAGS'
link.py:    env['LINKCOM']     = '$LINK -o $TARGET $LINKFLAGS $SOURCES $_LIBDIRFLAGS $_LIBFLAGS'

Так что, возможно, все, что вам нужно сделать, это переопределить эти элементы в вашем env версиями, которые примыкают к -o и $ TARGET. Я думаю, что вам может понадобиться поместить фигурные скобки вокруг переменных, что-то вроде:

env['CCCOM'] = '$CC -o${TARGET} -c $CFLAGS $CCFLAGS $_CCCOMCOM $SOURCES'
...