У нас довольно большая база кода. Подавляющее большинство кода скомпилировано с помощью qmake для создания make файлов. Тем не менее, есть некоторые подпроекты, которые создаются путем запуска пакетных файлов или запуска других программ.
Я хотел бы иметь все, скомпилированные с помощью qmake, но я не могу понять, как заставить qmake просто запустить script.
Одна вещь, которую я пробовал, - это использование QMAKE_EXTRA_TARGETS в моем файле pro, например:
TEMPLATE = lib
SOURCES = placeholder.cpp
CONFIG += no_link staticlib
batch_runner.target = placeholder.cpp
batch_runner.commands = my_batch_file.bat
QMAKE_EXTRA_TARGETS = batch_runner
Затем мне нужно, чтобы пакетный файл создавал placeholder.cpp следующим образом:
# do the real work here
# ...
# create placeholder.cpp so qmake and nmake are happy
echo // dummy >> placeholder.cpp
Кажется, это работает нормально. Беда в том, что он несколько хоккей. Если я не укажу batch_runner.target(т.е. Я оставлю его пустым) или не помещаю placeholder.cpp в SOURCES, тогда пакетный файл никогда не запускается. Это связано с тем, что qmake не делает batch_runner.commands действие для любой другой зависимости в Makefile.
Есть ли лучший способ заставить QMake построить Makefile таким образом, чтобы выполнялся script при выполнении Makefile?