Qt5 static с драйвером PostgreSQL

В данной статье я опишу как собрать статический Qt5 с драйвером PostgreSQL.

Скажу сразу, что с Qt5.8 у меня собрать статическую сборку с поддержкой PostgreSQL не получилось. Поэтому взял предыдущую версию Qt 5.7.1 с официального сайта.
Для сборки Qt также понадобится Perl.

Сборка PostgreSQL

Чтобы драйвер PostgreSQL собрался, нам понадобятся библиотеки libpq и h-файлы (использовал эту статью), поэтому:
1. Качаем исходные коды PostgreSQL.
2. Собираем их компилятором mingw32, для чего:
2.1. Ставим утилиту msys, которая входит в состав MinGW.
2.2. В папке с msys заходим в папку etc/ и открываем файл fstab. В этом файле вы увидите строчку формата: C:/mingw /mingw
Первую часть необходимо заменить на ваш путь до MinGW, в моём случае эта строка стала выглядеть следующим образом: C:/QtDyn58/Tools/mingw530_32 /mingw
Сохраняем изменения и запускаем MSYS (файл msys.bat).
2.3. Переходим в папку с postgreSQL, в моём случае это выглядит так:
cd /с/PG963dev
2.4. Запускаем конфигурирование postgreSQL, в моем случае:
configure --without-zlib --prefix=/c/PG963inst (руководствовался этим)
2.5. Далее make && make install

В результате должны появиться папки:
C:\PG963inst\include
C:\PG963inst\lib

В папке lib появятся библиотеки libpq.a и libpq.dll, которые нам понадобятся дальше.

Сборка Qt
Для сборки Qt рекомендую создать bat файл.
Подключить собранный postgresq строчками -I C:\PG963inst\include -L C:\PG963inst\lib у меня не получилось.
Поэтому в файле (руководствовался этим этим)
C:\qt-everywhere-opensource-src-5.7.1\qtbase\src\sql\drivers\psql\qsql_psql.pri
я добавил следующие строчки:
INCLUDEPATH += "C:\PG963inst\include"
LIBS += -L"C:\PG963inst\lib" -llibpq

Bat-файл взял здесь) .
Важно не забыть прописать пути к Perl и использовать ключ -qt-sql-psql при конфигурировании.
У меня он получился такой:

После успешной сборки в статическом проекте добавляем строчку в .pro файл
QMAKE_LFLAGS_RELEASE += -static -static-libgcc и кладем файл libpq.dll в папку с исполняемым файлом.