My favorites | Sign in
Logo
                
Search
for
Updated Yesterday (26 hours ago) by maksim.maj
Labels: Phase-Deploy, Phase-Implementation, MS_Windows
mingw32  
Psi+ on MS Windows: Patching & Building Instructions (win32-g++)

MS Windows (MinGW)


Необходимый инструментарий (Required tools)

  1. Qt SDK for Open Source C++ development on Windows . В дистрибутив входит Qt, MinGW, Qt Creator. /~ 270 MB/
  2. Win32 OpenSSL Libs - библиотеки шифрования /~ 7 MB/
  3. Win32 Git - утилиты для работы с Git /~ 12 MB/
  4. Microsoft Visual C++ 2008 SP1 Redistributable Package (x86 - for 32-bit systems) / (x64 - for 64-bit systems) /~ 5 MB/
  5. Slik SVN - утилиты для работы с SVN /~ 5 MB/
  6. TortoiseSVN - надстройка для проводника MS Windows, опционально (extension for MS Windows Explorer, optional) /~ 20 MB/
  7. QConf - необходимый архив с бинарником здесь (necessary archive with qconf.exe here) /~ 0.1 MB/
  8. Aspell Libs for msvc2008 - библиотеки для включения поддержки проверки орфографии (libraries for enable spell checking) /~ 65 MB/


Подготовка к сборке, настройка переменных окружения и необходимых библиотек (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 на примере сборки тестовой программы

Результат сборки release-версии тестового приложения наблюдаем в папке C:\Qt\2010.02\qt\examples\tutorials\addressbook\part7\release

Успешная сборка тестового приложения означает, что Qt правильно установлена и работоспособна.


Сборка Psi+ в автоматическом режиме (Psi+ build in automatic mode) -- рекомендуется (recommended)

  • Запускаем скрипт make-psiplus.cmd из папки C:\psi-plus\build и ждём окончания его выполнения

Если скрипт отработал успешно, то в рабочей папке 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.

Примечание: Перед скачиванием и применением патчей, настоятельно рекомендуется проверить соответствие имён файлов с их текущим списком.

Процесс сборки Psi+ (Psi+ build process)

Через некоторое время (10 - 40 минут) ищем результат компиляции в виде psi.exe в psi-git/src/release.

Примечание: размер файла psi.exe может быть различным (зависит от выбранной конфигурации debug/release):


Компиляция плагинов (Compiling plugins)

Conference Logger Plugin

  • Копируем файлы исходного кода плагина в папку psi-git/src/plugins/generic/conferenceloggerplugin
  • Выполняем команду qmake conferenceloggerplugin.pro
  • Выполняем команду mingw32-make -f makefile.release
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
  • Скомпилированный плагин conferenceloggerplugin.dll наблюдаем в psi-git/src/plugins/generic/conferenceloggerplugin/release


Полезные ссылки (Links)



Comment by daglex, Jan 12, 2009

Many thanks!!!

Comment by rion...@gmail.com, Nov 02, 2009

такс, то что выше DONE

щас аспелл. я тут нашел интересную пагу.. http://lists.gnu.org/archive/html/aspell-devel/2008-05/msg00010.html

Comment by givan101, Nov 09, 2009

sh.exe из C:\Program Files\Git\bin мешает сборке. пришлось руками переименовать его в sh-.exe

Comment by vladimir.shelukhin, Nov 09, 2009

не мешает. просто в path путь в бинарям мингвы должен быть ПЕРЕД путями к бинарям гита. проверено и одобрено.

Comment by vladimir.shelukhin, Dec 23, 2009

чтобы не потерять. потом оформлю в отдельную статью.

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)

Comment by vladimir.shelukhin, Feb 15, 2010

updated mingw32.wiki (Qt 4.6.2, qt-sdk-win-opensource-2010.02)


Sign in to add a comment
Powered by Google Project Hosting