|
mingw32
Psi+ on MS Windows: Patching & Building Instructions (win32-g++)
MS Windows (MinGW)Необходимый инструментарий (Required tools)
Подготовка к сборке, настройка переменных окружения и необходимых библиотек (Preparations for the building, setting the environment variables and the necessary libraries)
C:\Qt\2010.02\qt\bin;C:\Qt\2010.02\mingw\bin;C:\OpenSSL\bin;C:\Program Files\SlikSvn\bin;C:\Program Files\Git\bin;C:\Qt\QConf а также создаём новые переменные окружения (так же, при необходимости, заменив пути на свои): QMAKESPEC=win32-g++ QTDIR=C:\Qt\2010.02\qt OPENSSLDir=C:\OpenSSL Примечание: переменные обновятся только для вновь запущенных процессов, т.е. требуется перезапустить cmd с правами администратора (в крайнем случае - перезагрузить систему). Проверка правильной установки и работоспособности Qt на примере сборки тестовой программы
C:\>qmake -v QMake version 2.01a Using Qt version 4.6.2 in C:/Qt/2010.02/qt/lib C:\>echo %QMAKESPEC% win32-g++ C:\Qt\2010.02\qt\examples\tutorials>qmake C:\Qt\2010.02\qt\examples\tutorials>mingw32-make ................... g++ -c -O2 -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS _QMAIN -I'../../../../include/QtCore' -I'../../../../include/QtGui' -I'../../../ ../include' -I'../../../../include/ActiveQt' -I'tmp/moc/release_shared' -I'../.. /../../mkspecs/win32-g++' -o tmp/obj/release_shared/moc_finddialog.o tmp/moc/rel ease_shared/moc_finddialog.cpp g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-rel oc -Wl,-s -mthreads -Wl -Wl,-subsystem,windows -o release/part7.exe tmp/obj/rele ase_shared/addressbook.o tmp/obj/release_shared/finddialog.o tmp/obj/release_sha red/main.o tmp/obj/release_shared/moc_addressbook.o tmp/obj/release_shared/moc_f inddialog.o -L'c:/Qt/2010.02/qt/lib' -L'c:/Qt/2010.02/qt/lib' -lmingw32 -lqtmai n -lQtGui4 -lQtCore4 mingw32-make[3]: Leaving directory `c:/Qt/2010.02/qt/examples/tutorials/addressb ook/part7' mingw32-make[2]: Leaving directory `c:/Qt/2010.02/qt/examples/tutorials/addressb ook/part7' mingw32-make[1]: Leaving directory `c:/Qt/2010.02/qt/examples/tutorials/addressb ook' Результат сборки release-версии тестового приложения наблюдаем в папке C:\Qt\2010.02\qt\examples\tutorials\addressbook\part7\release Успешная сборка тестового приложения означает, что Qt правильно установлена и работоспособна. Сборка Psi+ в автоматическом режиме (Psi+ build in automatic mode) -- рекомендуется (recommended)
Если скрипт отработал успешно, то в рабочей папке C:\psi-plus\build появится скомпилированный и готовый к работе бинарный файл psi.exe Сборка Psi+ в ручном режиме (Psi+ build in manual mode) -- не рекомендуется (not recommended)Получение исходных кодов Psi (Getting Psi source code)
git clone git://git.psi-im.org/psi.git cd psi git submodule init git submodule update Подготовка исходных кодов Psi к сборке (Preparation Psi source code for building)
было #CONFIG += qca-static стало CONFIG += qca-static
было #DEFINES += HAVE_ASPELL стало DEFINES += HAVE_ASPELL
было #CONFIG += psi_plugins стало CONFIG += psi_plugins
CONFIG += release на CONFIG += debug
CONFIG += console
CONFIG += webkit Применение патчей к исходному коду Psi (Applying patches to Psi source code)Перед использованием GNU/Patch for Windows необходимо учесть следующее: On MS-Windows, the patchfile must be a text file, i.e. CR-LF must be used as line endings. A file with LF may give the error: “Assertion failed, hunk, file patch.c, line 343,” unless the option ‘–binary’ is given.
patch -p1 < 0000-psiplus-aboutdlg.diff patch -p1 < 005-less-includes.diff patch -p1 < 010-psi-additional-system-iconset.diff patch -p1 < 040-psi-webkit.diff patch -p1 < 050-psi-muc-topic.diff patch -p1 < 060-psi-receipts.diff patch -p1 < 080-psi-popup-avatar.diff patch -p1 < 090-psi-entity-time.diff patch -p1 < 100-psi-mood-icons.diff patch -p1 < 110-psi-muc-change-affiliation.diff ..................... Примечание: Перед скачиванием и применением патчей, настоятельно рекомендуется проверить соответствие имён файлов с их текущим списком. Процесс сборки Psi+ (Psi+ build process)
Через некоторое время (10 - 40 минут) ищем результат компиляции в виде psi.exe в psi-git/src/release. Примечание: размер файла psi.exe может быть различным (зависит от выбранной конфигурации debug/release):
Компиляция плагинов (Compiling plugins)Conference Logger Plugin
C:\psi-plus\build\psi\src\plugins\generic\conferenceloggerplugin>qmake conferenceloggerplugin.pro C:\psi-plus\build\psi\src\plugins\generic\conferenceloggerplugin>mingw32-make -f makefile.release ................... C:/Qt/2010.02/qt/bin/moc.exe -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_D EBUG -DQT_PLUGIN -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I' c:/Qt/2010.02/qt/include/QtCore' -I'c:/Qt/2010.02/qt/include/QtGui' -I'c:/Qt/201 0.02/qt/include/QtXml' -I'c:/Qt/2010.02/qt/include' -I'../../include' -I'c:/Qt/2 010.02/qt/include/ActiveQt' -I'release' -I'c:/Qt/2010.02/qt/mkspecs/win32-g++' - D__GNUC__ -DWIN32 typeaheadfind.h -o release/moc_typeaheadfind.cpp g++ -c -O2 -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_PLUGIN -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_ THREAD_SUPPORT -I'c:/Qt/2010.02/qt/include/QtCore' -I'c:/Qt/2010.02/qt/include/Q tGui' -I'c:/Qt/2010.02/qt/include/QtXml' -I'c:/Qt/2010.02/qt/include' -I'../../i nclude' -I'c:/Qt/2010.02/qt/include/ActiveQt' -I'release' -I'c:/Qt/2010.02/qt/mk specs/win32-g++' -o release/moc_typeaheadfind.o release/moc_typeaheadfind.cpp g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-rel oc -Wl,-s -mthreads -Wl -shared -Wl,--out-implib,release/libconferenceloggerplug in.a -o release/conferenceloggerplugin.dll release/conferenceloggerplugin.o rele ase/typeaheadfind.o release/moc_typeaheadfind.o -L'c:/Qt/2010.02/qt/lib' -lQtXm l4 -lQtGui4 -lQtCore4 Creating library file: release/libconferenceloggerplugin.a
Полезные ссылки (Links) |
Many thanks!!!
такс, то что выше DONE
щас аспелл. я тут нашел интересную пагу.. http://lists.gnu.org/archive/html/aspell-devel/2008-05/msg00010.html
sh.exe из C:\Program Files\Git\bin мешает сборке. пришлось руками переименовать его в sh-.exe
не мешает. просто в path путь в бинарям мингвы должен быть ПЕРЕД путями к бинарям гита. проверено и одобрено.
чтобы не потерять. потом оформлю в отдельную статью.
1. патчим исходники qt 4.6.0 патчем http://qt.gitorious.org/qt/qt/commit/ddf34f39efcbe679f1a8216df58da0c61e98ec79.diff
2. при конфигурации qt 4.6.0 юзаем ключи: configure -debug-and-release -qt-zlib
3. компилим qt 4.6.0 (часа 2-3)
updated mingw32.wiki (Qt 4.6.2, qt-sdk-win-opensource-2010.02)