2016-05-29 3 views
0

Я использую препроцессор c для простой замены #include в соответствии с link. Ниже приводится отрывок из моей preprocessor.priQt Creator qmake intergrate HTML-препроцессор

HEADERS += $$PWD/include/header.htm 


PREPROCESS_FILES = $$PWD/staff/courses.htm 
preprocess.name = preprocess-htm-includes 
preprocess.CONFIG += no_link no_clean 

for(htm, PREPROCESS_FILES):preprocess.commands = cpp -E -x c -P $${htm} > $${htm}l 

first.depends = $(first) preprocess 
export(first.depends) 

Во-первых, я использую для цикла как $ {} QMAKE_FILE_NAME всегда пусто? Поскольку я не могу использовать $ {QMAKE_FILE_BASE}, я не уверен, как направить вывод препроцессора на $$ shadowed ($$ PWD) /.

Во-вторых, обработка комментариев и специальных символов CPP (C Pre Processor) не идеальна для HTML (в частности, бездомных), а также для -C для игнорирования префиксов комментариев длинного комментария GNU к выходному html) есть ли какие-либо Общие Предпраздничные Процессоры, хорошо интегрируются с Qt Creator Я хотел бы, чтобы все мои отладки внутри IDE.

(бонусные очки, если он сделал HTML/CSS/JS минификация и или проверка)

ответ

0

для тех, кто еще пытается сделать то же самое проще всего, если вы разместите custom-compiler.pri (пример ниже) в каждой папке, содержащей source.htm, таким образом, поддерживается вся иерархия сборки. NB * имя и SOURCES varaible пользовательского c ompiler должен быть уникальным!

INCLUDEPATH += $$PWD 
DEPENDPATH += $$PWD 

HEADERS += $$top_srcdir/docroot/include/*.htm 

SOURCES_HTM_STAFF += $$PWD/*.htm 
htm_staff.name = htm 
htm_staff.input = SOURCES_HTM_STAFF 
htm_staff.dependency_type = TYPE_C 
htm_staff.variable_out = JUNK 
htm_staff.output = $$shadowed($$PWD)/${QMAKE_FILE_IN_BASE}.html 
htm_staff.CONFIG = no_link target_predeps 
htm_staff.commands = cpp -E -x c -P ${QMAKE_FILE_NAME} > ${QMAKE_FILE_OUT} 
QMAKE_EXTRA_COMPILERS += htm_staff 

В результате переменный ток, как среда для предварительной обработки HTML исходных файлов, содержащих «header.htm директива #includes»

Вопросы:

  • касты будут игнорировать комментарии C, которые могут содержать данные, которые должны быть отображены , Флаг -C исправляет это, но cpp затем ударяет по уведомлению gpl во все файлы, к которым я не уверен, как подавить?
  • unterminated character constant like 'or "будет выдавать критическую ошибку Например, если исходный документ содержит слово Do not
Смежные вопросы