Метод установки для MinGW (в README о нем ничего):
Распаковываем архив с исходниками QtDeclarative в любое место.
Запускаем консоль с подготовленным окружением и затем заходим в папку с распакованными исходниками, находим файл declarative.pro и редактируем его в текстовом редакторе, добавляем в конец файла следующую строчку:
*-g++*: CONFIG += create_prl
Если этого не сделать, то не будут сгенерены .prl файлы и будет невозможным собрать утилиту qmlviewer или вообще любую другую программу, которая будет использовать QtDeclarative модуль.
после чего заходим в подпапку src/declarative :
cd src\declarative
Формируем Makefile'ы:
qmake
Собираем:
mingw32-make all
Вместо all можно собирать declarative 2 раза, по умолчанию он собирается в debug сборке, если указать mingw32-make release, то еще и в релизе.
Устанавливаем QtDeclarative в исходники Qt.
mingw32-make install
Директивой install ставится только
debug версия поэтому, чтобы установить еще и release версии .dll'ок надо скопировать следующие файлы вручную:
qt-4.6.0-declarative\src\declarative\.obj\QtDeclarative4.dll -> qt-everywhere-opensource-src-4.6.0\bin\
qt-4.6.0-declarative\src\declarative\.obj\libQtDeclarative4.a -> qt-everywhere-opensource-src-4.6.0\lib\
qt-4.6.0-declarative\src\declarative\.obj\QtDeclarative.prl -> qt-everywhere-opensource-src-4.6.0\lib\
qt-4.6.0-declarative\src\declarative\.obj\QtDeclaratived.prl -> qt-everywhere-opensource-src-4.6.0\lib\
Затем копируем хедеры QtDeclarative в папку с исходниками Qt:
xcopy /E /Y ..\..\include\QtDeclarative %QTDIR%\include\QtDeclarative
Собираем qmlviewer:
cd ..\..\tools\qmlviewer
qmake
mingw32-make release
Далее возвращаемся на 2 директории назад, ищем папку bin и копируем утилиту:
qt-4.6.0-declarative\bin\qmlviewer.exe -> qt-everywhere-opensource-src-4.6.0\bin\
Затем можно запустить утилиту, зайти, скажем, в папку qt-4.6.0-declarative/demos/declarative/calculator и выбрать calculator.qml. Лично я при выходе из утилиты qmlviewer получил краш.
Затем попробуем собрать демку minehunt, в ней используется и C++ тоже:
cd /demos/declarative/minehunt
qmake
mingw32-make release
release\minehunt.exe
Запускается, работает и даже не упала.
К сожалению мне так и не удалось заставить работать QtDeclarative в связке с QtCreator'ом. А именно запускать на выполнение .qml проекты, всегда получаю:
Starting ...
The process could not be started!
Я не знаю какой процесс он пытается запустить и что ему для этого нужно. Вижу, что в исходниках QtDeclarative многое подготовлено для внедрения в Qt, вроде бы есть генератор документации, но это всего лишь .pri файл, который нигде не используется, вроде бы есть qml дебаггер как плагин к QtCreator'у.
К сожалению, после мучений со сборкой у меня отпало всякое желание разбираться с QML до тех пор, пока его официально не внедрят в следующую версию Qt, пока он не начнет собираться без проблем наряду с другими модулями Qt.