Я нашел решение, которое я считаю надежным и общим, которое основано на qmake
создании GNU Makefile.
Скажем, у нас есть все дополнительные SOURCES
и HEADERS
назначения в файле с именем Makefile.pri
, который генерируется путем выполнения скрипта generate_Makefile.pri.sh
, который также генерирует источники и / или заголовки, упомянутые в Makefile.pri
.
Мы хотим, чтобы этот файл автоматически и надежно создавался самой системой сборки, чтобы он был включен в файл .pro
, чтобы qmake
мог учитывать его содержимое и генерировать Makefile с надлежащими зависимостями.
Это то, что мы должны поместить в наш файл .pro
.
Makefile_pri.target = Makefile.pri
Makefile_pri.commands = generate_Makefile.pri.sh
Makefile_pri.depends = FORCE
Makefile.target = $$MAKEFILE
Makefile.depends = Makefile_pri
include($$Makefile_pri.target)
QMAKE_EXTRA_TARGETS = Makefile Makefile_pri
Таким образом:
- если нет
Makefile.pri
, то он создается;
- Если
Makefile.pri
создается или обновляется, то qmake
запускается снова и учитывает его содержимое, восстанавливая Makefile
Как уже говорилось, зависит от qmake
генерации Makefile GNU, но тот же подход, который я считаю, может быть адаптирован для работы и с другими целевыми системами сборки.