Изменение макросов (DEFINES) не приводит к перекомпиляции проекта с «чистого листа»

… и это является одной из самых неприятных багофич qmake. Я решил пофиксить этот казус. Ошибки билда — это не то, на что я хочу тратить свою жизнь.

Поскольку изменение макросов есть изменение переменной DEFINES, то при их изменении qmake всегда будет вызван. Так что можно в qmake эту ситуацию и обрабатывать, самым простым образом — удалив все файлы в OUT_PWD при изменении переменной DEFINES.

Макросы от предыдущего запуска qmake получить не проблема, их можно сохранять в файл, откуда потом считывать при следующем запуске. А вот что проблема, так это узнать значения макросов. Любая фича может их поменять, так что нужно запускать нашу затычку после всех фич. Так что я извратился с помощью QMAKE_EXTRA_COMPILERS:

Цикл: qmake

  2 comments for “Изменение макросов (DEFINES) не приводит к перекомпиляции проекта с «чистого листа»

  1. lex
    02.11.2013 at 10:51

    просто нужно придерживаться правила: изменил .pro — перегенерируй Makefile(make distclean && qmake)

Добавить комментарий