Инструкция по сборке Psi (Qt4)

Linux Gentoo

layman -o http://rion-overlay.googlecode.com/files/rion-overlay.xml -f -a rion && echo "app-crypt/qca **
app-crypt/qca-ossl **
app-crypt/qca-gnupg **">/etc/portage/package.keywords && emerge psi-git

Примечание: исходники будут скачены из git-репозитория.

MS Windows (MinGW)

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

(инсталлятор также предложит скачать и установить компилятор MinGW - рекомендуется)

Подготовка к сборке. Настройка переменных окружения и необходимых библиотек

  • После установки перечисленных выше продуктов необходимо в свойствах компьютера (Advanced → Environment Variables) прописать пути (переменная Path) к C:\Qt\4.4.3\bin и к C:\MinGW\bin, а также переменные окружения QTDIR=C:\Qt\4.4.3 и QMAKESPEC=win32-g++ (опционально)

Примечание: переменные обновятся только для вновь запущенных процессов, т.е. требуется перезапустить cmd.exe.

  • Выбираем директорию C:\OpenSSL\include\openssl и копируем всю директорию openssl в C:\MinGW\include. В результате должно получиться так C:\MinGW\include\openssl.
  • В директории C:\OpenSSL\lib\MinGW создаём копии файлов ssleay32.a и libeay32.a с именами ssleay32.lib и libeay32.lib соответственно.
  • Копируем содержимое директории C:\OpenSSL\lib\MinGW (libeay32.a, libeay32.def, ssleay32.a, ssleay32.def) в директорию C:\MinGW\lib и переименовываем ssleay32.a в libssleay32.a и ssleay32.def в libssleay32.def.
  • Создаём файл winlocal.prf в директории C:\Qt\4.4.2\mkspecs\features со следующим содержимым:
WINLOCAL_PREFIX = C:/OpenSSL
  • В директории psi-svn/iris переименовываем файлы conf_win.pri.example в conf_win.pri. В файле conf_win.pri дописываем следующую строку:
include(../src/conf_iris.pri)
  • В файле psi-svn/third-party/qca/qca-ossl.pri переименовываем ключ -llibeay32 в -leay32.
  • Для включения поддержки плагинов в файле psi-svn/src/src.pro необходимо расскоментировать следующую строку:

было

#CONFIG += psi_plugins

стало

CONFIG += psi_plugins
  • В файле psi-svn/conf_windows.pri раскомментируем третью строку:

было

#CONFIG += qca-static

стало

CONFIG += qca-static
  • Для переключения конфигурации (Release/Debug) в файле psi-svn/conf_windows.pri необходимо изменить вторую строку c
CONFIG += release

на

CONFIG += debug

Проверка правильной установки и работоспособности Qt на примере сборки тестовой программы

  • запускаем командную строку cmd.exe (Start → Run → cmd)
  • меняем рабочую директорию на C:\Qt\4.4.3\examples\tutorials\tutorial\t1
  • в командной строке cmd.exe выполняем команду qmake, а затем команду make
C:\Qt\4.4.3\examples\tutorials\tutorial\t1>qmake
C:\Qt\4.4.3\examples\tutorials\tutorial\t1>make
mingw32-make -f Makefile.Debug all
mingw32-make[1]: Entering directory `C:/Qt/4.4.3/examples/tutorials/tutorial/t1'
g++ -c -g -Wall -frtti -fexceptions -mthreads -DUNICODE -DQT_LARGEFILE_SUPPORT -
DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I"..\..
\..\..\include\QtCore" -I"..\..\..\..\include\QtCore" -I"..\..\..\..\include\QtG
ui" -I"..\..\..\..\include\QtGui" -I"..\..\..\..\include" -I"c:\Qt\4.4.3\include
\ActiveQt" -I"tmp\moc\debug_shared" -I"." -I"..\..\..\..\mkspecs\win32-g++" -o t
mp\obj\debug_shared\main.o main.cpp
g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-rel
oc -mthreads -Wl -Wl,-subsystem,windows -o debug\t1.exe tmp/obj/debug_shared/mai
n.o  -L"c:\Qt\4.4.3\lib" -L"c:\Qt\4.4.3\lib" -lmingw32 -lqtmaind -lQtGuid4 -lQtC
ored4
mingw32-make[1]: Leaving directory `C:/Qt/4.4.3/examples/tutorials/tutorial/t1'
mingw32-make -f Makefile.Release all
mingw32-make[1]: Entering directory `C:/Qt/4.4.3/examples/tutorials/tutorial/t1'
g++ -c -O2 -Wall -frtti -fexceptions -mthreads -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\QtCore" -I"..\..\..
\..\include\QtGui" -I"..\..\..\..\include\QtGui" -I"..\..\..\..\include" -I"c:\Q
t\4.4.3\include\ActiveQt" -I"tmp\moc\release_shared" -I"." -I"..\..\..\..\mkspec
s\win32-g++" -o tmp\obj\release_shared\main.o main.cpp
g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-rel
oc -Wl,-s -mthreads -Wl -Wl,-subsystem,windows -o release\t1.exe tmp/obj/release
_shared/main.o  -L"c:\Qt\4.4.3\lib" -L"c:\Qt\4.4.3\lib" -lmingw32 -lqtmain -lQtG
ui4 -lQtCore4
mingw32-make[1]: Leaving directory `C:/Qt/4.4.3/examples/tutorials/tutorial/t1'

Результат сборки release-версии наблюдаем в директории C:\Qt\4.4.3\examples\tutorials\tutorial\t1\release\t1.exe

Это означает, что Qt правильно установлена и работоспособна.

Процесс сборки Psi

  • Заходим в локальную директорию psi-svn, где расположены скачанные исходные файлы Psi
  • В данной директории выполняем команду qmake и make (или make clean и make)

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

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

  • для release-конфигурации размер может составлять от 5Mb до 10Mb
  • для debug-конфигурации - от 50Mb до 80Mb

Компиляция плагинов

Рассмотрим компиляцию плагинов на примере:

  • Заходим в директорию src/plugins/generic/urlwatcher
  • Выполняем команду qmake
  • Выполняем команду make -f makefile.release
  • скомпилированный плагин urlwatcherplugin.dll наблюдаем в src/plugins/generic/urlwatcher/release

Microsoft Visual Studio 2005 (не рекомендуется)

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

Скачиваем исходный код Psi из SVN по адресу http://svn.psi-im.org/psi/trunk и следующие инструменты:

Установка Qt source

Скачанный архив qt-win-opensource-src-4.3.2 распаковываем в директорию C:\Qt\4.3.2-msvc2005

Установка патча

Распаковываем содержимое архива acs-4.3.x-patch3.zip в директорию с исходным кодом Qt C:\Qt\4.3.2-msvc2005

Настройка переменных окружения и необходимых библиотек

В Path прописываем следующие пути:

  • C:\Qt\4.3.2-msvc2005\bin
  • C:\Program Files\Microsoft Visual Studio 8\VC\bin

Добавляем следующие системные переменные:

  • QMAKESPEC=win32-msvc2005
  • QTDIR=C:\Qt\4.3.2-msvc2005

Копируем содержимое директории C:\OpenSSL\lib\VC в директорию C:\Program Files\Microsoft Visual Studio 8\VC\lib и переименовываем следующие файлы:

  • libeay32MD.liblibeay32.lib
  • libeay32MDd.liblibeay32d.lib
  • ssleay32MD.libssleay32.lib
  • ssleay32MDd.libssleay32d.lib

Выбираем директорию C:\OpenSSL\include\openssl и копируем всю директорию openssl в C:\Program Files\Microsoft Visual Studio 8\VC\include

В результате должно получиться так C:\Program Files\Microsoft Visual Studio 8\VC\include\openssl

Запуск командой строки Visual Studio 2005 Command Prompt

Открываем командную строку Visual Studio 2005 Command Prompt:

StartProgramsMicrosoft Visual Studio 2005Visual Studio ToolsVisual Studio 2005 Command Prompt

Для проверки правильности прописанного пути к nmake.exe пишем в cmd:

C:\Qt\4.3.2-msvc2005>nmake /?

Microsoft (R) Program Maintenance Utility Version 8.00.50727.42
Copyright (C) Microsoft Corporation.  All rights reserved.

Usage:  NMAKE @commandfile
        NMAKE [options] [/f makefile] [/x stderrfile] [macrodefs] [targets]

Options:

........

Применения патча к файлам исходного кода Qt

Накладываем патч из архива acs-4.3.x-patch3.zip:

C:\Qt\4.3.2-msvc2005>installpatch42.bat
patching file src/corelib/global/qglobal.cpp
patching file src/corelib/global/qglobal.h
patching file src/corelib/kernel/qabstractitemmodel.cpp
patching file src/corelib/kernel/qvariant.h
patching file src/corelib/tools/qshareddata.h
patching file src/corelib/tools/qlist.h
patching file src/corelib/io/qtextstream.h
patching file src/corelib/io/qdir.cpp
patching file src/corelib/io/qsettings.cpp
patching file src/corelib/io/qtextstream.cpp
patching file src/corelib/corelib.pro
patching file src/qbase.pri
patching file src/opengl/opengl.pro

.............

patching file mkspecs/win32-msvc2005/qmake.conf
patching file mkspecs/win32-msvc.net/qplatformdefs.h
patching file qconfigure.bat
patching file examples/threads/waitconditions/waitconditions.pro
Press any key to continue . . .

Конфигурирование Qt и сборка qmake

Для вывода справки по команде configure.exe пишем в cmd:

C:\Qt\4.3.2-msvc2005>configure.exe  -help

Для начала процесса сборки qmake пишем:

C:\Qt\4.3.2-msvc2005>qconfigure.bat msvc2005 -debug-and-release

This is the Qt/Windows Open Source Edition.

You are licensed to use this software under the terms of
the GNU General Public License.

Type '?' to view the GNU General Public License.
Type 'y' to accept this license offer.
Type 'n' to decline this license offer.

Do you accept the terms of the license?
y

Далее:

Going to compile qmake now
Continue? (Y/N):Y

Затем:

Going to generate Makefiles for Qt now
Continue? (Y/N):Y

По окончании сборки qmake будет выведено следующее сообщение:

====================================================

You are now ready to build Qt (msvc2005)

If you specified -static or only want to build the
Qt library, type 'nmake sub-src'
 otherwise, type 'nmake'

To start over, type 'nmake distclean'
and then re-run qconfigure.bat

====================================================

Сборка Qt

C:\Qt\4.3.2-msvc2005>nmake

Процесс сборки Qt может занять некоторое время (20-60 минут)

Создание проекта psi.vcproj для Visual Studio 2005

Переходим в директорию psi-svn с файлами исходного кода Psi и проверяем правильность путей и переменных:

D:\Psi\psi-svn>qmake -v
QMake version 2.01a
Using Qt version 4.3.2 in C:\Qt\4.3.2-msvc2005\lib
D:\Psi\psi-svn>echo %QMAKESPEC%
win32-msvc2005

Открываем файл D:\Psi\psi-svn\psi.pro и комментируем следующие строки: <code> # SUBDIRS += \ # src </code>

Далее выполняем:

D:\Psi\psi-svn>qmake

Затем:

D:\Psi\psi-svn>nmake

Переходим в директорию psi-svn/src и запускаем команду для создание проекта psi для Visual Studio 2005:

D:\Psi\psi-svn\src>qmake -t vcapp src.pro

После выполнения данной команды в этой же директории видим файл psi.vcproj

Открываем файл psi.vcproj в Visual Studio 2005

Переключаемся на конфигурацию Release и выполняем команду Build

Примечания

  1. QCA: при возникновении проблем с компиляцией qca-файлов необходимо в директории psi-svn/third-party/qca сделать qmake и затем nmake

Как пропатчить исходный код Psi под MS 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.

Полезные ссылки

 
howto/psi_qt4.txt · Последние изменения: 11/11/2008 11:03 rion
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki