Jul 232012
Описалово ниже.
Microsoft Visual Studio 2010, git, strawberry perl, python 2.7 (или выше, но с третьей версией у меня не заработало) и jom (для многоядерной сборки) уже должны быть установлены, библиотеки pthreads, icu и openssl собраны.
Путь к Qt5 — G:\git\qt5\.
Переменные окружения (кстати, Rapid Environment Editor очень удобная прога, рекомендую):
- CL = /MP
- INCLUDE = G:\git\qt5\qtbase\include;G:\git\qt5\qtwebkit\WebKitBuild\Release\include;G:\include;G:\programs\GnuWin32\include;G:\libs\pthreads\include;G:\git\qt5\qtbase\include;G:\libs\icu\include;G:\libs\openssl\include
- LIB = G:\git\qt5\qtwebkit\WebKitBuild\Release\lib;G:\programs\GnuWin32\lib;G:\git\qt5\qtbase\lib;G:\libs\pthreads\lib\x86;G:\libs\icu\lib;G:\libs\openssl\lib\VC
- Path = G:\git\qt5\qtwebkit\WebKitBuild\Release\bin;G:\libs\pthreads\dll\x86;G:\programs\Python27;G:\git\qt5\qtbase\bin;G:\programs\GnuWin32\bin;G:\programs\jom;G:\libs\icu\bin;G:\libs\openssl\bin;G:\Programs\Git\cmd;G:\programs\strawberry\c\bin;G:\programs\strawberry\perl\site\bin;G:\programs\strawberry\perl\bin;…
- QTDIR = G:\git\qt5\qtbase
Сборка Qt5.
- Запускаем студийную консоль, переходим в G:\git.
- Пишем: git clone git://gitorious.org/qt/qt5.git qt5.
- Затем переходим в G:\git\qt5, пишем там: perl init-repository и ждем.
- Конфигурируем через configure.
- Пишем: perl build -j 4 и долго ждем.
Сборка QtWebKit.
- В G:\git\qt5 пишем: perl build -j 4 qtwebkit и ждем.
- Если будет ругаться в самом конце на ненайденный внешний символ, то в G:\git\qt5\qtwebkit\WebKitBuild\Release\Source\Makefile.api.* в переменную LIBS в самое начало списка добавляем: advapi32.lib.
- Опять пишем: perl build -j 4 qtwebkit и ждем.
- Если нужна debug версия, которая из-за криворуких разработчиков не собралась (то есть предыдущая компиляция собрала QtWebKit5.dll и вылетела с ошибкой), то открываем powershell и переходим в G:\git\qt5\qtwebkit\.
- Пишем там последовательно три команды:
- get-childItem -recurse -include ‘*makefile*release*’ | rename-item -newname { $_.name -replace ‘release’,’release_bak’ }
- get-childItem -recurse -include ‘*makefile*debug*’ | rename-item -newname { $_.name -replace ‘debug’,’release’ }
- get-childItem -recurse -include ‘*makefile*release_bak*’ | rename-item -newname { $_.name -replace ‘release_bak’,’debug’ }
- Затем возвращаемся в студийную консоль и опять пишем: perl build -j 4 qtwebkit.
- Если будет ошибка: “g:\git\qt5\qtwebkit\Tools\DumpRenderTree\WorkQueue.cpp(33) : fatal error C1083: Cannot open include file: ‘WorkQueueItemQt.h’: No such file or directory“, то делаем такой симлинк: G:\git\qt5\qtwebkit\Tools\DumpRenderTree\qt\WorkQueueItemQt.h (src) -> G:\git\qt5\qtwebkit\Tools\DumpRenderTree\WorkQueueItemQt.h (dst).
- Опять запускаем perl build -j 4 qtwebkit.
- Возвращаем все как было тремя командами в powershell:
- get-childItem -recurse -include ‘*makefile*debug*’ | rename-item -newname { $_.name -replace ‘debug’,’debug_bak’ }
- get-childItem -recurse -include ‘*makefile*release*’ | rename-item -newname { $_.name -replace ‘release’,’debug’ }
- get-childItem -recurse -include ‘*makefile*debug_bak*’ | rename-item -newname { $_.name -replace ‘debug_bak’,’release’ }
Qt5 и QtWebKit собраны.
При сборке проектов не забывать линковаться с qtmain.lib и не забывать про дефайн QT_DLL.
На сегодняшний день достаточно сделать так:
…\qt5\qtwebkit>perl Tools\Scripts\build-webkit –qt