Старый вопрос, но все еще стоит актуальный ответ. Сегодня принято делать то, что делает Qt Creator, когда используются теневые сборки (они включены по умолчанию при открытии нового проекта).
Для каждой отдельной цели и типа сборки правильный qmake
запускается с правильными аргументами в другом каталоге сборки. Тогда это просто строится с помощью простого make
.
Итак, воображаемая структура каталогов может выглядеть следующим образом.
/
|_/build-mylib-qt5-mingw32-debug
|_/build-mylib-qt5-mingw32-release
|_/build-mylib-qt4-msvc2010-debug
|_/build-mylib-qt4-msvc2010-release
|_/build-mylib-qt5-arm-debug
|_/build-mylib-qt5-arm-release
|_/mylib
|_/include
|_/src
|_/resources
И самое важное, qmake
запускается в каталоге сборки:
cd build-mylib-XXXX
/path/to/right/qmake ../mylib/mylib.pro CONFIG+=buildtype ...
Затем он генерирует make-файлы в директории сборки, а затем make
также генерирует файлы под ним. Нет риска перепутать разные версии, если qmake никогда не запускается в исходном каталоге (если он есть, лучше очистите его!).
И когда все сделано так, файл .pro
из принятого в настоящее время ответа еще проще:
HEADERS += src/dialogs.h
SOURCES += src/main.cpp \
src/dialogs.cpp