Как предотвратить запуск qmake на make clean? - PullRequest
0 голосов
/ 25 мая 2018

Проблема в том, что если pro-файл был изменен, qmake пытается сгенерировать новый make-файл во время 'make clean'.

Шаги для воспроизведения этой ситуации:

  1. qmake test.pro
  2. touch test.pro && make clean

Вот минимальный пример pro:

TARGET = qmake-runs-on-make-clean  
TEMPLATE = app

warning(qmake runs even if it's make clean)

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

Как мне этого добиться?

Ответы [ 2 ]

0 голосов
/ 31 мая 2018

После некоторых исследований я нашел не очень привлекательное, но работающее решение.qmake имеет недокументированную опцию с именем no_autoqmake.Поэтому я передал его в CONFIG, а затем написал свою собственную цель Makefile.

CONFIG += no_autoqmake
for(arg, QMAKE_ARGS){
    tmp = $$section(arg, =, 0, 0)
    !equals(tmp, MAKE_ARGS){
        QMAKE_ARGUMENTS += $$arg
    }
}

promod.name      = on_pro_modified
promod.target    = Makefile
promod.commands  = $$QMAKE_QMAKE $$_PRO_FILE_ $$QMAKE_ARGUMENTS MAKE_ARGS='$(MAKECMDGOALS)'
promod.depends   = $$_PRO_FILE_ $$QMAKE_INTERNAL_INCLUDED_FILES

PRE_TARGETDEPS += $$_PRO_FILE_
QMAKE_EXTRA_TARGETS += promod

contains(MAKE_ARGS, clean) : CLEAN_MODE_ACTIVATED=1

Если кто-нибудь найдет лучшее решение, пожалуйста, поделитесь.

0 голосов
/ 26 мая 2018

Отредактируйте сгенерированный Makefile и удалите часть, где вызывается qmake.

Но правило существует по причине.Может быть, вы пытаетесь решить другую проблему?

...