Старый вопрос, но все же стоит дать актуальный ответ. Сегодня обычным делом является то, что делает Qt Creator, когда используются теневые сборки (они включены по умолчанию при открытии нового проекта).
Для каждой отдельной цели и типа сборки право qmakeзапускается с правильными аргументами в другом каталоге сборки. Тогда это просто построено с помощью simple 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в каталоге сборки запускается a :
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