User Tools

Site Tools


mingw32

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

mingw32 [2019/02/25 15:54] – внешнее изменение 127.0.0.1mingw32 [2024/06/16 11:46] (current) – external edit 127.0.0.1
Line 3: Line 3:
 ===== Необходимый инструментарий ===== ===== Необходимый инструментарий =====
  
-1. **[[https://download.qt.io/official_releases/qt/4.8/4.8.7/qt-opensource-windows-x86-mingw482-4.8.7.exe|Qt libraries 4.8.7 for Windows (minGW v4.8.2)]]** или скачать с основной [[http://qt-project.org/downloadsтраницы загрузок]] //~330 MB//+1. **[[http://www.cmake.org/|CMake build system]]** -- версию 3.7.2 можно взять [[https://cmake.org/files/v3.7/cmake-3.7.2-win32-x86.msi|здесь]] //~14 MB//
  
-2. **[[http://sourceforge.net/projects/psiplus/files/MS-Windows/Dev/MinGW-i686-4.8.2-release-posix-dwarf-rt_v3-rev3.7z/download|MinGW v4.8.2]]** //~45 MB//+2. **[[https://github.com/git-for-windows/git/releases|Git for Windows]]** набор утилит для работы с [[http://ru.wikipedia.org/wiki/Git|Git]] //~33 MB//
  
-3. **[[http://www.cmake.org/|CMake build system (win32)]]** -- версию 3.7.2 можно взять [[https://cmake.org/files/v3.7/cmake-3.7.2-win32-x86.msi|здесь]] //~14 MB//+3. **[[http://www.openssl.org/source/|OpenSSL]]** -- архив с исходным кодом пакета программ для поддержки шифрования и криптографии (версия > 1.0.0) //~MB//
  
-4. **[[https://github.com/git-for-windows/git/releases|Git for Windows]]** - набор утилит для работы с [[http://ru.wikipedia.org/wiki/Git|Git]] //~33 MB//+4. **[[http://www.gnu.org/software/libidn/|GNU IDN Library (LibIDN)]]** -- скомпилированную версию (v1.28) можно взять [[http://ftp.gnu.org/gnu/libidn/libidn-1.28-win32.zip|здесь]]
  
-5. **[[http://www.openssl.org/source/|OpenSSL]]** -- архив с исходным кодом пакета программ для поддержки шифрования и криптографии (версия > 1.0.0) //~4 MB// +5. **[[http://www.zlib.net/|Zlib for Windows]]**
- +
-6. **[[http://www.gnu.org/software/libidn/|GNU IDN Library (LibIDN)]]** -- скомпилированную версию (v1.28) можно взять [[http://ftp.gnu.org/gnu/libidn/libidn-1.28-win32.zip|здесь]] или [[http://sourceforge.net/projects/psiplus/files/MS-Windows/Dev/libidn-1.28-win32.zip/download|здесь]] //~0.5 MB// +
- +
-7. **[[http://www.zlib.net/|Zlib for Windows]]** (скомпилированную версию можно взять [[http://sourceforge.net/projects/psiplus/files/MS-Windows/Dev/zlib-1.2.8-win32.7z/download|здесь]]) (v1.2.8) //~0.05 MB//+
  
 8. **[[http://gpg4win.org/|GnuPG (Package for Windows)]]** - свежий win32-инсталлятор можно взять [[http://files.gpg4win.org/gpg4win-2.2.1.exe|здесь]] 8. **[[http://gpg4win.org/|GnuPG (Package for Windows)]]** - свежий win32-инсталлятор можно взять [[http://files.gpg4win.org/gpg4win-2.2.1.exe|здесь]]
  
 **__Опционально__:** **__Опционально__:**
-  * **[[http://download.tortoisegit.org/tgit/|TortoiseGit]]** - надстройка для проводника MS Windows //~20 MB// 
-  * **[[http://aspell.net/|Aspell Libs for MinGW]]** - библиотеки для обеспечения работы функционала проверки орфографии, необходимые для сборки файлы можно взять [[http://sourceforge.net/projects/psiplus/files/MS-Windows/Dev/lyx-windows-deps-mingw-small.zip/download|здесь]] //~0.5 MB// 
   * **[[https://github.com/zdenop/hunspell-mingw|Hunspell for MinGW]]** - библиотека проверки орфографии   * **[[https://github.com/zdenop/hunspell-mingw|Hunspell for MinGW]]** - библиотека проверки орфографии
-  * <del>**[[http://www.python.org/download/|Python]]** -- только версии 2.x.x (x86) //~15 MB//</del> 
-  * <del>**[[http://sourceforge.net/projects/psiplus/files/MS-Windows/Dev/ccache-3.1-win32.7z/download|ccache version 3.1]]** -- [[http://ru.wikipedia.org/wiki/Ccache|утилита]] для ускорения процесса компиляции //~0.2 MB//</del> 
-      * <del>__**Примечание**__: для нормальной работы **ccache** необходимо прописать переменную **CCACHE_DIR** в переменных окружения.</del> 
- 
- 
- 
- 
- 
-===== Подготовка к сборке, настройка переменных окружения и необходимых библиотек ===== 
- 
-  * Устанавливаем необходимый инструментарий, указанный выше. [[https://github.com/msysgit/msysgit/releases|Git]] рекомендуется устанавливать в корень диска, например, в **C:\Git** 
-  * Создаём в папке **C:\MinGW\bin** новый файл **make.exe** путём копирования и переименования из файла **mingw32-make.exe** **(ВРЕМЕННЫЙ КОСТЫЛЬ)** 
-  * Распаковываем содержимое архива **[[http://sourceforge.net/projects/psiplus/files/MS-Windows/Dev/zlib-1.2.8-win32.7z/download|zlib-1.2.8-win32.7z]]** в папку **C:\Qt\zlib** 
-  * Распаковываем содержимое архива **[[http://sourceforge.net/projects/psiplus/files/MS-Windows/Dev/libidn-1.28-win32.zip/download|libidn-1.28-win32.zip]]** в папку **C:\Qt\LibIDN** 
-  * Скачиваем и распаковываем содержимое архива **[[http://sourceforge.net/projects/psiplus/files/MS-Windows/Dev/otrplugin-deps-mingw-win32.7z/download|otrplugin-deps-mingw-win32.7z]]** следующим образом: 
-    * файлы из папки **bin** копируем в папку **Psi+** (например, C:\Program Files (x86)\Psi+) 
-    * папки **include** и **lib** копируем в папку **C:\MinGW\i686-w64-mingw32** 
-  * <del>Распаковываем утилиту **ccache.exe** и библиотеку **zlib1.dll** из архива **[[http://sourceforge.net/projects/psiplus/files/MS-Windows/Dev/ccache-3.1-win32.7z/download|ccache-3.1-win32.7z]]** в папку **C:\MinGW\bin**</del> 
-  * <del>Редактируем строки **QMAKE_CC** и **QMAKE_CXX** в файле **C:\Qt\4.8.7\mkspecs\win32-g++\qmake.conf** (дописываем **//ccache//** в следующих строках)</del> 
-<del><code> 
-........ 
-QMAKE_CC = ccache  $${CROSS_COMPILE}gcc 
-........ 
-QMAKE_CXX = ccache $${CROSS_COMPILE}g++ 
-</code></del> 
-  * В свойствах компьютера (Start → Settings → Control Panel → System Properties → Advanced → Environment Variables) добавляем необходимые пути в системную переменную [[http://ru.wikipedia.org/wiki/%D0%9F%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D1%81%D1%80%D0%B5%D0%B4%D1%8B_Windows|PATH]] __(при необходимости пути следует заменить на свои)__: 
-<code> 
-C:\>path 
-</code> 
- 
-<code> 
-PATH=C:\MinGW\bin;C:\Qt\QConf;C:\cmake\bin;C:\Program Files (x86)\GNU\GnuPG\pub 
-</code> 
-А также создаём новые системные переменные __(при необходимости заменив пути на свои)__: 
-<code> 
-GITDIR=C:\Git 
-LIBIDNDIR=C:\Qt\LibIDN 
-MINGWDIR=C:\MinGW 
-OPENSSLDIR=C:\OpenSSL 
-QCADIR=C:\Qt\QCA 
-QCONFDIR=C:\Qt\QConf 
-QMAKESPEC=win32-g++ 
-QTDIR=C:\Qt\4.8.7 
-ZLIBDIR=C:\Qt\zlib 
-</code> 
- 
-**__Примечание 1:__** Переменные обновятся только для вновь запущенных процессов, т.е. требуется перезапустить **cmd** с правами администратора (в крайнем случае - перезагрузить систему). 
- 
-**__Примечание 2:__** Если у вас закрыт доступ наружу по порту **9418**, то вы **не сможете** скачать исходный код **Psi** и **Psi+** по протоколу **[[git://]]**. В этом случае рекомендуется в глобальном конфиге **Git** добавить следующий параметр: 
-<code> 
-C:\Git\bin\git config --global url."https://".insteadOf git:// 
-</code> 
- 
- 
- 
- 
-===== Проверка правильной установки и работоспособности Qt на примере сборки тестовой программы ===== 
- 
-  * Запускаем командную строку **cmd.exe** с правами администратора (Start → Run → cmd) 
-  * Проверяем правильность установки путей и переменных командой: 
-<code> 
-C:\Qt\4.8.7\bin\qmake -v 
-</code> 
-Видим следующее: 
-<code> 
-C:\>C:\Qt\4.8.7\bin\qmake -v 
-QMake version 2.01a 
-Using Qt version 4.8.7 in C:\Qt\4.8.7\lib 
-</code> 
-А также командой: 
-<code> 
-echo %QMAKESPEC% 
-</code> 
-Видим ответ: 
-<code> 
-C:\>echo %QMAKESPEC% 
-win32-g++ 
-</code> 
-  * Меняем рабочую папку на **C:\Qt\4.8.7\examples\tutorials\addressbook\part1** командой: 
-<code> 
-cd C:\Qt\4.8.7\examples\tutorials\addressbook\part1 
-</code> 
-  * Выполняем команду: 
-<code> 
-C:\Qt\4.8.7\bin\qmake part1.pro 
-</code> 
-  * Затем выполняем команду: 
-<code> 
-mingw32-make -f makefile.release 
-</code> 
-Видим следующее: 
-<code> 
-C:\Qt\4.8.7\examples\tutorials\addressbook\part1>mingw32-make -f makefile.releas 
-e 
-g++ -c -pipe -O2 -frtti -fexceptions -mthreads -Wall -Wextra -DUNICODE -DQT_DLL 
--DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_SSE -DQT_HAVE_M 
-MXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I"..\..\..\..\include 
-\QtCore" -I"..\..\..\..\include\QtGui" -I"..\..\..\..\include" -I"..\..\..\..\in 
-clude\ActiveQt" -I"release" -I"..\..\..\..\mkspecs\win32-g++" -o release\address 
-book.o addressbook.cpp 
-g++ -c -pipe -O2 -frtti -fexceptions -mthreads -Wall -Wextra -DUNICODE -DQT_DLL 
--DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_SSE -DQT_HAVE_M 
-MXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I"..\..\..\..\include 
-\QtCore" -I"..\..\..\..\include\QtGui" -I"..\..\..\..\include" -I"..\..\..\..\in 
-clude\ActiveQt" -I"release" -I"..\..\..\..\mkspecs\win32-g++" -o release\main.o 
-main.cpp 
-C:\Qt\4.8.7\bin\moc.exe -DUNICODE -DQT_DLL -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_ 
-LIB -DQT_HAVE_MMX -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPP 
-ORT -DQT_NEEDS_QMAIN -I"..\..\..\..\include\QtCore" -I"..\..\..\..\include\QtGui 
-" -I"..\..\..\..\include" -I"..\..\..\..\include\ActiveQt" -I"release" -I"..\..\ 
-..\..\mkspecs\win32-g++" -D__GNUC__ -DWIN32 addressbook.h -o release\moc_address 
-book.cpp 
-g++ -c -pipe -O2 -frtti -fexceptions -mthreads -Wall -Wextra -DUNICODE -DQT_DLL 
--DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_SSE -DQT_HAVE_M 
-MXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I"..\..\..\..\include 
-\QtCore" -I"..\..\..\..\include\QtGui" -I"..\..\..\..\include" -I"..\..\..\..\in 
-clude\ActiveQt" -I"release" -I"..\..\..\..\mkspecs\win32-g++" -o release\moc_add 
-ressbook.o release\moc_addressbook.cpp 
-g++ -Wl,-s -mthreads -Wl,-subsystem,windows -o release\part1.exe release/address 
-book.o release/main.o release/moc_addressbook.o  -L"c:\Qt\4.8.7\lib" -lmingw32 - 
-lqtmain -lQtGui4 -lQtCore4 
-</code> 
- 
-Результат сборки release-версии тестового приложения в виде исполняемого файла **part1.exe** наблюдаем в папке **C:\Qt\4.8.7\examples\tutorials\addressbook\part1\release** 
- 
-Успешная сборка тестового приложения означает, что Qt правильно установлена и готова к использованию. 
- 
  
  
Line 167: Line 34:
 MAKE=mingw32-make PERL=perl.exe ./config --prefix=/c/OpenSSL shared MAKE=mingw32-make PERL=perl.exe ./config --prefix=/c/OpenSSL shared
 </code> </code>
-Видим процесс конфигурирования проекта: 
-<code> 
-........................... 
-making links in ssl... 
-mingw32-make[1]: Entering directory `c:/build/openssl/ssl' 
-ssl.h => ../include/openssl/ssl.h 
-ssl2.h => ../include/openssl/ssl2.h 
-ssl3.h => ../include/openssl/ssl3.h 
-ssl23.h => ../include/openssl/ssl23.h 
-tls1.h => ../include/openssl/tls1.h 
-dtls1.h => ../include/openssl/dtls1.h 
-kssl.h => ../include/openssl/kssl.h 
-srtp.h => ../include/openssl/srtp.h 
-ssltest.c => ../test/ssltest.c 
-mingw32-make[1]: Leaving directory `c:/build/openssl/ssl' 
-making links in engines... 
-mingw32-make[1]: Entering directory `c:/build/openssl/engines' 
-making links in engines/ccgost... 
-mingw32-make[2]: Entering directory `c:/build/openssl/engines/ccgost' 
-mingw32-make[2]: Nothing to be done for `links'. 
-mingw32-make[2]: Leaving directory `c:/build/openssl/engines/ccgost' 
-mingw32-make[1]: Leaving directory `c:/build/openssl/engines' 
-making links in apps... 
-mingw32-make[1]: Entering directory `c:/build/openssl/apps' 
-mingw32-make[1]: Nothing to be done for `links'. 
-mingw32-make[1]: Leaving directory `c:/build/openssl/apps' 
-making links in test... 
-mingw32-make[1]: Entering directory `c:/build/openssl/test' 
-mingw32-make[1]: Nothing to be done for `links'. 
-mingw32-make[1]: Leaving directory `c:/build/openssl/test' 
-making links in tools... 
-mingw32-make[1]: Entering directory `c:/build/openssl/tools' 
-mingw32-make[1]: Nothing to be done for `links'. 
-mingw32-make[1]: Leaving directory `c:/build/openssl/tools' 
-generating dummy tests (if needed)... 
-mingw32-make[1]: Entering directory `c:/build/openssl/test' 
-mingw32-make[1]: Nothing to be done for `generate'. 
-mingw32-make[1]: Leaving directory `c:/build/openssl/test' 
  
-Configured for mingw. +По завершении конфигурации выполняем команду:
-</code> +
-Далее запускаем компиляцию:+
 <code> <code>
 mingw32-make mingw32-make
-</code> 
-Видим процесс компиляции: 
-<code> 
-.................................. 
-gcc -I.. -I../include  -D_WINDLL -DOPENSSL_USE_APPLINK -DOPENSSL_PIC -DOPENSSL_T 
-HREADS -D_MT -DDSO_WIN32 -DL_ENDIAN -DWIN32_LEAN_AND_MEAN -fomit-frame-pointer - 
-O3 -march=i486 -Wall -DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_IA32_SSE2 -DOPENSSL_B 
-N_ASM_MONT -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM 
--DRMD160_ASM -DAES_ASM -DVPAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM   -c -o asn1test. 
-o asn1test.c 
-mingw32-make[2]: Entering directory `c:/build/openssl/test' 
-mingw32-make[2]: Leaving directory `c:/build/openssl/test' 
-gcc -I.. -I../include  -D_WINDLL -DOPENSSL_USE_APPLINK -DOPENSSL_PIC -DOPENSSL_T 
-HREADS -D_MT -DDSO_WIN32 -DL_ENDIAN -DWIN32_LEAN_AND_MEAN -fomit-frame-pointer - 
-O3 -march=i486 -Wall -DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_IA32_SSE2 -DOPENSSL_B 
-N_ASM_MONT -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM 
--DRMD160_ASM -DAES_ASM -DVPAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM   -c -o dummytest 
-.o dummytest.c 
-mingw32-make[2]: Entering directory `c:/build/openssl/test' 
-mingw32-make[2]: Leaving directory `c:/build/openssl/test' 
-mingw32-make[1]: Leaving directory `c:/build/openssl/test' 
-making all in tools... 
-mingw32-make[1]: Entering directory `c:/build/openssl/tools' 
-mingw32-make[1]: Nothing to be done for `all'. 
-mingw32-make[1]: Leaving directory `c:/build/openssl/tools' 
-</code> 
-__**Примечание**:__ Если при выполнении команды **mingw32-make** получаем ошибку компиляции тестов, то в папке **C:\build\openssl** открываем файл **Makefile**, находим строку: 
-<code> 
-build_all: build_libs build_apps build_tests build_tools 
-</code> 
-и удаляем из неё параметр //build_tests//. Далее продолжаем компиляцию командой **mingw32-make**. 
- 
-И в завершении выполняем команду: 
-<code> 
 mingw32-make install mingw32-make install
-</code> 
-Видим процесс инсталляции: 
-<code> 
-......................................... 
-making install in tools... 
-mingw32-make[1]: Entering directory `c:/build/openssl/tools' 
-mingw32-make[1]: Leaving directory `c:/build/openssl/tools' 
-installing libcrypto.a 
-installing libssl.a 
-installing libcrypto.dll.a 
-installing libeay32.dll 
-installing libssl.dll.a 
-installing ssleay32.dll 
-mingw32-make[1]: Entering directory `c:/OpenSSL/lib' 
-mingw32-make[2]: Entering directory `c:/OpenSSL/lib' 
-mingw32-make[2]: Nothing to be done for `symlink.cygwin-shared'. 
-mingw32-make[2]: Leaving directory `c:/OpenSSL/lib' 
-mingw32-make[2]: Entering directory `c:/OpenSSL/lib' 
-mingw32-make[2]: Nothing to be done for `symlink.cygwin-shared'. 
-mingw32-make[2]: Leaving directory `c:/OpenSSL/lib' 
-mingw32-make[1]: Leaving directory `c:/OpenSSL/lib' 
-OpenSSL shared libraries have been installed in: 
-  /c/OpenSSL 
- 
-If this directory is not in a standard system path for dynamic/shared 
-libraries, then you will have problems linking and executing 
-applications that use OpenSSL libraries UNLESS: 
- 
-* you link with static (archive) libraries.  If you are truly 
-  paranoid about security, you should use static libraries. 
-* you use the GNU libtool code during linking 
-  (http://www.gnu.org/software/libtool/libtool.html) 
-* you use pkg-config during linking (this requires that 
-  PKG_CONFIG_PATH includes the path to the OpenSSL shared 
-  library directory), and make use of -R or -rpath. 
-  (http://www.freedesktop.org/software/pkgconfig/) 
-* you specify the system-wide link path via a command such 
-  as crle(1) on Solaris systems. 
-* you add the OpenSSL shared library directory to /etc/ld.so.conf 
-  and run ldconfig(8) on Linux systems. 
-* you define the LD_LIBRARY_PATH, LIBPATH, SHLIB_PATH (HP), 
-  DYLD_LIBRARY_PATH (MacOS X) or PATH (Cygwin and DJGPP) 
-  environment variable and add the OpenSSL shared library 
-  directory to it. 
- 
-One common tool to check the dynamic dependencies of an executable 
-or dynamic library is ldd(1) on most UNIX systems. 
- 
-See any operating system documentation and manpages about shared 
-libraries for your version of UNIX.  The following manpages may be 
-helpful: ld(1), ld.so(1), ld.so.1(1) [Solaris], dld.sl(1) [HP], 
-ldd(1), crle(1) [Solaris], pldd(1) [Solaris], ldconfig(8) [Linux], 
-chatr(1) [HP]. 
-cp libcrypto.pc /c/OpenSSL/lib/pkgconfig 
-chmod 644 /c/OpenSSL/lib/pkgconfig/libcrypto.pc 
-cp libssl.pc /c/OpenSSL/lib/pkgconfig 
-chmod 644 /c/OpenSSL/lib/pkgconfig/libssl.pc 
-cp openssl.pc /c/OpenSSL/lib/pkgconfig 
-chmod 644 /c/OpenSSL/lib/pkgconfig/openssl.pc 
 </code> </code>
  
Line 310: Line 44:
  
 Теперь пакет **OpenSSL Toolkit v1.x.x** готов для линковки и сборки Psi+. Временную папку сборки **C:\build\openssl** можно удалить. Теперь пакет **OpenSSL Toolkit v1.x.x** готов для линковки и сборки Psi+. Временную папку сборки **C:\build\openssl** можно удалить.
- 
- 
- 
-===== Компиляция утилиты конфигурирования QConf ===== 
- 
-  * Запускаем __от имени Администратора__ **Git Bash** (идёт в комплекте с **[[https://github.com/msysgit/msysgit/releases|Git]]**) в рабочей папке **C:\build** 
-  * Задаём необходимые пути: 
-<code> 
-PATH=$PATH:/c/qt/4.8.7/bin/ 
-</code> 
-  * Скачиваем исходный код **[[http://delta.affinix.com/qconf/|QConf]]** командой: 
-<code> 
-git clone https://github.com/psi-plus/qconf.git 
-</code> 
-Видим процесс скачивания: 
-<code> 
-$ git clone https://github.com/psi-plus/qconf.git 
-Cloning into 'qconf'... 
-remote: Reusing existing pack: 239, done. 
-Receiving objremote: Total 239 (delta 0), reused 0 (delta 0)ects:  86% (206/239) 
-R 
-Receiving objects: 100% (239/239), 82.14 KiB | 0 bytes/s, done. 
-Resolving deltas: 100% (152/152), done. 
-Checking connectivity... done. 
-</code> 
-  * Далее переходим в папку **C:\build\qconf** и выполняем конфигурирование проекта командой: 
-<code> 
-./configure 
-</code> 
-Видим процесс конфигурирования проекта: 
-<code> 
-$ ./configure 
-Configuring QConf ... 
-Verifying Qt 4 build environment ... ok 
- 
-Good, your configure finished.  Now run make. 
-</code> 
-  * Далее запускаем компиляцию: 
-<code> 
-mingw32-make -f makefile.release 
-</code> 
-Видим процесс компиляции: 
-<code> 
-$ mingw32-make -f makefile.release 
-g++ -c -pipe -O2 -frtti -fexceptions -mthreads -Wall -Wextra -DUNICODE -DQT_DLL 
--DQT_NO_DEBUG -DQT_XML_LIB -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_SSE -DQT_HAVE_M 
-MXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -I'../../Qt/4.8.7/include/QtCore' -I'.. 
-/../Qt/4.8.7/include/QtXml' -I'../../Qt/4.8.7/include' -I'../../Qt/4.8.7/include 
-/ActiveQt' -I'release' -I'../../Qt/4.8.7/mkspecs/win32-g++' -o release/stringhel 
-p.o src/stringhelp.cpp 
-g++ -c -pipe -O2 -frtti -fexceptions -mthreads -Wall -Wextra -DUNICODE -DQT_DLL 
--DQT_NO_DEBUG -DQT_XML_LIB -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_SSE -DQT_HAVE_M 
-MXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -I'../../Qt/4.8.7/include/QtCore' -I'.. 
-/../Qt/4.8.7/include/QtXml' -I'../../Qt/4.8.7/include' -I'../../Qt/4.8.7/include 
-/ActiveQt' -I'release' -I'../../Qt/4.8.7/mkspecs/win32-g++' -o release/qconf.o s 
-rc/qconf.cpp 
-c:/Qt/4.8.7/bin/rcc.exe -name qconf src/qconf.qrc -o release/qrc_qconf.cpp 
-g++ -c -pipe -O2 -frtti -fexceptions -mthreads -Wall -Wextra -DUNICODE -DQT_DLL 
--DQT_NO_DEBUG -DQT_XML_LIB -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_SSE -DQT_HAVE_M 
-MXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -I'../../Qt/4.8.7/include/QtCore' -I'.. 
-/../Qt/4.8.7/include/QtXml' -I'../../Qt/4.8.7/include' -I'../../Qt/4.8.7/include 
-/ActiveQt' -I'release' -I'../../Qt/4.8.7/mkspecs/win32-g++' -o release/qrc_qconf 
-.o release/qrc_qconf.cpp 
-g++ -Wl,-s -Wl,-subsystem,console -mthreads -o qconf.exe release/stringhelp.o re 
-lease/qconf.o release/qrc_qconf.o  -L'c:/Qt/4.8.7/lib' -lQtXml4 -lQtCore4 
-</code> 
-  * Копируем из рабочей папки **C:\build\qconf** вложенные папки **conf** и **modules**, а также файл **qconf.exe** во вновь созданную папку назначения **C:\Qt\QConf** 
- 
-Теперь утилита конфигурирования **QConf** готова для конфигурирования проекта Psi+. 
- 
-Если по каким-либо причинам не получается самостоятельно скомпилировать утилиту **QConf**, то можно воспользоваться уже готовой версией утилиты, распаковав содержимое **[[http://sourceforge.net/projects/psiplus/files/MS-Windows/Dev/qconf1.5-qt4.8.4-win32.7z/download|архива]] программа устарела!!!** в рабочую папку **C:\Qt\QConf**. 
- 
-__**ВАЖНО!**__ 
- 
-Далее для работы с **QConf** в папке **C:\Qt\QConf** необходимо создать файл **qconf.cmd** следующего вида (в кодировке ANSI или UTF-8 (__без BOM__)): 
-<code> 
-@set PATH=%PATH%;%QTDIR%\bin&C:\Qt\QConf\qconf.exe %* 
-</code> 
-и при конфигурировании проекта вызывать именно его. Например: 
-<code> 
-........ 
-call qconf.cmd 
-........ 
-</code> 
- 
-Временную папку сборки **C:\build\qconf** можно удалить. 
- 
- 
- 
- 
- 
- 
  
  
Line 410: Line 52:
  
   * Запускаем __от имени Администратора__ **CMD** в рабочей папке **C:\build**   * Запускаем __от имени Администратора__ **CMD** в рабочей папке **C:\build**
-  * Скачиваем исходный код QCA из официального **[[http://quickgit.kde.org/?p=qca.git|git-репозитория]]**:+  * Скачиваем исходный код QCA из официального **[[https://github.com/KDE/qca.git|git-репозитория]]**:
 <code> <code>
 C:\Git\bin\git clone git://anongit.kde.org/qca.git C:\Git\bin\git clone git://anongit.kde.org/qca.git
-</code> 
-Видим процесс скачивания: 
-<code> 
-$ git clone git://anongit.kde.org/qca.git 
-Cloning into 'qca'... 
-remote: Counting objects: 14036, done. 
-remote: Compressing objects: 100% (5391/5391), done. 
-remote: Total 14036 (delta 8820), reused 13132 (delta 8167) 
-Receiving objects: 100% (14036/14036), 18.19 MiB | 5.00 MiB/s, done. 
-Resolving deltas: 100% (8820/8820), done. 
-Checking connectivity... done. 
-Checking out files: 100% (467/467), done. 
 </code> </code>
   * Переходим в папку **C:\build\qca** и конфигурируем проект перед сборкой:   * Переходим в папку **C:\build\qca** и конфигурируем проект перед сборкой:
 <code> <code>
-cmake -G "MinGW Makefiles" -DCMAKE_INSTALL_PREFIX="C:/Qt/QCA" -DCMAKE_BUILD_TYPE=Release -DBUILD_PLUGINS=ossl;gnupg+cmake -G "MinGW Makefiles" -DCMAKE_INSTALL_PREFIX="C:/Qt/QCA" -DCMAKE_BUILD_TYPE=Release -DUSE_RELATIVE_PATHS=ON -DBUILD_PLUGINS=ossl;gnupg
 </code> </code>
 Где "C:/Qt/QCA" - путь по которому будет установлена библиотека QCA (у вас может быть другой) Где "C:/Qt/QCA" - путь по которому будет установлена библиотека QCA (у вас может быть другой)
- 
-Видим следующее: 
-<code> 
-C:\build\qca>cmake -G "MinGW Makefiles" -DCMAKE_INSTALL_PREFIX="C:/Qt/QCA" -DCMAKE_ 
-BUILD_TYPE=Release -DBUILD_PLUGINS=ossl;gnupg 
--- Could NOT find Doxygen (missing:  DOXYGEN_EXECUTABLE) 
--- Checking for certstore.. 
--- Using built in certstore. 
--- certstore path: C:/build/qca/certs/rootcerts.pem 
--- mlock(2) does not take a void * 
-CMake Warning at plugins/qca-ossl/CMakeLists.txt:18 (message): 
-  qca-ossl will be compiled without MD2 digest algorithm support 
- 
-Plugins: 
-  qca-botan off 
-  qca-cyrus-sasl off 
-  qca-gcrypt off 
-  qca-gnupg on 
-  qca-logger off 
-  qca-nss off 
-  qca-ossl on 
-  qca-pkcs11 off 
-  qca-softstore off 
- 
-QCA prefix is C:/Qt/QCA 
-Plugins will be installed to C:/Qt/QCA/lib/qca/crypto 
-Binary will be installed to C:/Qt/QCA/bin 
-Library will be installed to C:/Qt/QCA/lib 
-Feature file will be installed to C:/Qt/QCA/mkspecs/features 
-Public headers will be installed to C:/Qt/QCA/include 
-Private headers will be installed to C:/Qt/QCA/include 
-Documentation will be installed to C:/Qt/QCA/share/doc/qca/html 
-Man page will be installed to C:/Qt/QCA/share/man 
-Pkg-config file will be installed to C:/Qt/QCA/lib/pkgconfig 
- 
--- Configuring done 
--- Generating done 
--- Build files have been written to: C:/build/qca 
-</code> 
   * После успешного конфигурирования проекта запускаем сборку командой:   * После успешного конфигурирования проекта запускаем сборку командой:
 <code> <code>
 mingw32-make mingw32-make
-</code> 
-Видим процесс компиляции: 
-<code> 
-................................ 
-[ 95%] Generating ssltest.moc 
-Scanning dependencies of target ssltest 
-[ 95%] Building CXX object examples/ssltest/CMakeFiles/ssltest.dir/ssltest.cpp.o 
-bj 
-Linking CXX executable ..\..\bin\ssltest.exe 
-[ 95%] Built target ssltest 
-[ 95%] Generating sslservtest.moc 
-Scanning dependencies of target sslservtest 
-[ 96%] Building CXX object examples/sslservtest/CMakeFiles/sslservtest.dir/sslse 
-rvtest.cpp.obj 
-Linking CXX executable ..\..\bin\sslservtest.exe 
-[ 96%] Built target sslservtest 
-[ 97%] Generating tlssocket.moc 
-Scanning dependencies of target tlssocket 
-[ 98%] Building CXX object examples/tlssocket/CMakeFiles/tlssocket.dir/tlssocket 
-.cpp.obj 
-[ 98%] Building CXX object examples/tlssocket/CMakeFiles/tlssocket.dir/main.cpp. 
-obj 
-Linking CXX executable ..\..\bin\tlssocket.exe 
-[ 98%] Built target tlssocket 
-Scanning dependencies of target mozcerts 
-[ 99%] Building CXX object tools/mozcerts/CMakeFiles/mozcerts.dir/main.cpp.obj 
-Linking CXX executable ..\..\bin\mozcerts.exe 
-[ 99%] Built target mozcerts 
-[100%] Generating main.moc 
-Scanning dependencies of target qcatool 
-[100%] Building CXX object tools/qcatool/CMakeFiles/qcatool.dir/main.cpp.obj 
-Linking CXX executable ..\..\bin\qcatool.exe 
-[100%] Built target qcatool 
 </code> </code>
   * Теперь запускаем установку компонентов **QCA** в заданную при конфигурировании папку:   * Теперь запускаем установку компонентов **QCA** в заданную при конфигурировании папку:
Line 511: Line 69:
 mingw32-make install mingw32-make install
 </code> </code>
-Видим процесс установки: + 
-<code> +  * В каталоге **C:\Qt\QCA** появится полностью собранная библиотека QCA
-................................ +
-[ 95%] Built target ssltest +
-[ 96%] Built target sslservtest +
-[ 98%] Built target tlssocket +
-[ 99%] Built target mozcerts +
-[100%] Built target qcatool +
-Install the project... +
--- Install configuration: "Release" +
--- Installing: C:/Qt/QCA/certs/rootcerts.pem +
--- Installing: C:/Qt/QCA/include/QtCrypto/qca.h +
--- Installing: C:/Qt/QCA/include/QtCrypto/qcaprovider.h +
--- Installing: C:/Qt/QCA/include/QtCrypto/QtCrypto +
--- Installing: C:/Qt/QCA/include/QtCrypto/qca_export.h +
--- Installing: C:/Qt/QCA/include/QtCrypto/qca_support.h +
--- Installing: C:/Qt/QCA/include/QtCrypto/qca_tools.h +
--- Installing: C:/Qt/QCA/include/QtCrypto/qca_core.h +
--- Installing: C:/Qt/QCA/include/QtCrypto/qca_textfilter.h +
--- Installing: C:/Qt/QCA/include/QtCrypto/qca_basic.h +
--- Installing: C:/Qt/QCA/include/QtCrypto/qca_publickey.h +
--- Installing: C:/Qt/QCA/include/QtCrypto/qca_cert.h +
--- Installing: C:/Qt/QCA/include/QtCrypto/qca_keystore.h +
--- Installing: C:/Qt/QCA/include/QtCrypto/qca_securelayer.h +
--- Installing: C:/Qt/QCA/include/QtCrypto/qca_securemessage.h +
--- Installing: C:/Qt/QCA/include/QtCrypto/qca_version.h +
--- Installing: C:/Qt/QCA/include/QtCrypto/qpipe.h +
--- Installing: C:/Qt/QCA/mkspecs/features/crypto.prf +
--- Installing: C:/Qt/QCA/share/man/man1/qcatool.1 +
--- Installing: C:/Qt/QCA/lib/libqca.dll.a +
--- Installing: C:/Qt/QCA/bin/libqca.dll +
--- Installing: C:/Qt/QCA/lib/qca/crypto/libqca-gnupg.dll +
--- Installing: C:/Qt/QCA/lib/qca/crypto/libqca-ossl.dll +
--- Installing: C:/Qt/QCA/bin/mozcerts.exe +
--- Installing: C:/Qt/QCA/bin/qcatool.exe +
-</code> +
-<del>  Копируем из рабочей папки **C:\build\qca** файл **crypto.prf** в папку **C:\Qt\4.8.5\mkspecs\features**</del>+
  
 Теперь комплект **QCA** готов для конфигурирования и сборки проекта Psi+. Теперь комплект **QCA** готов для конфигурирования и сборки проекта Psi+.
  
-Если по каким-либо причинам не получается самостоятельно скомпилировать **QCA**, <del>то можно воспользоваться уже готовой версией, распаковав содержимое **[[http://sourceforge.net/projects/psiplus/files/MS-Windows/Dev/qca-2.0.3-win32.7z/download|архива]]**</del> в рабочую папку **C:\Qt\QCA**. 
  
  
Line 572: Line 94:
 <code> <code>
 mingw32-make -f win32/Makefile.gcc mingw32-make -f win32/Makefile.gcc
-</code> 
-Видим процесс компиляции: 
-<code> 
-$ mingw32-make -f win32/Makefile.gcc 
-gcc  -O3 -Wall -c -o adler32.o adler32.c 
-gcc  -O3 -Wall -c -o compress.o compress.c 
-gcc  -O3 -Wall -c -o crc32.o crc32.c 
-gcc  -O3 -Wall -c -o deflate.o deflate.c 
-gcc  -O3 -Wall -c -o gzclose.o gzclose.c 
-gcc  -O3 -Wall -c -o gzlib.o gzlib.c 
-gcc  -O3 -Wall -c -o gzread.o gzread.c 
-gcc  -O3 -Wall -c -o gzwrite.o gzwrite.c 
-gcc  -O3 -Wall -c -o infback.o infback.c 
-gcc  -O3 -Wall -c -o inffast.o inffast.c 
-gcc  -O3 -Wall -c -o inflate.o inflate.c 
-gcc  -O3 -Wall -c -o inftrees.o inftrees.c 
-gcc  -O3 -Wall -c -o trees.o trees.c 
-gcc  -O3 -Wall -c -o uncompr.o uncompr.c 
-gcc  -O3 -Wall -c -o zutil.o zutil.c 
-ar rcs libz.a adler32.o compress.o crc32.o deflate.o gzclose.o gzlib.o gzread.o 
-gzwrite.o infback.o inffast.o inflate.o inftrees.o trees.o uncompr.o zutil.o 
-windres --define GCC_WINDRES -o zlibrc.o win32/zlib1.rc 
-gcc -shared -Wl,--out-implib,libz.dll.a  \ 
-        -o zlib1.dll win32/zlib.def adler32.o compress.o crc32.o deflate.o gzclo 
-se.o gzlib.o gzread.o gzwrite.o infback.o inffast.o inflate.o inftrees.o trees.o 
- uncompr.o zutil.o  zlibrc.o 
-Creating library file: libz.dll.a 
-strip zlib1.dll 
-gcc  -O3 -Wall -I. -c -o example.o test/example.c 
-gcc  -o example.exe example.o libz.a 
-strip example.exe 
-gcc  -O3 -Wall -I. -c -o minigzip.o test/minigzip.c 
-gcc  -o minigzip.exe minigzip.o libz.a 
-strip minigzip.exe 
-gcc  -o example_d.exe example.o libz.dll.a 
-strip example_d.exe 
-gcc  -o minigzip_d.exe minigzip.o libz.dll.a 
-strip minigzip_d.exe 
 </code> </code>
  
Line 660: Line 144:
 Если сборка прошла успешно, то по адресу C:\Hunspell будет установлена библиотека libhunspell Если сборка прошла успешно, то по адресу C:\Hunspell будет установлена библиотека libhunspell
  
-===== <del>Компиляция утилиты ccache</del> ===== 
  
-<del>Подробную инструкцию по сборке утилиты **ccache** можно найти **[[ru:ccache|здесь]]**.</del> 
  
  
Line 668: Line 150:
  
  
 +===== Способ сборки Psi+ при помощи кросс-компиляции из OS Linux (рекомендовано) =====
  
 +==== Настройка и сборка окружения для кросс-компиляции MXE ====
  
-===== Сборка Psi+ в автоматическом режиме (рекомендуется) =====+  * Инструкция по скачиванию доступна на официальном сайте проекта [[https://mxe.cc/#download|https://mxe.cc/#download]]
  
-  * Скачиваем скрипт **[[https://raw.githubusercontent.com/psi-plus/maintenance/master/scripts/win32/auto-compiler-all-in-one.cmd|auto-compiler-all-in-one.cmd]]** в новую папку (например, **C:\build**) +<code bash> 
-  * Включаем необходимый для сборки параметр **MakeClassic** в положение **1** (если он ещё не включен): +cd ~ 
-<code> +mkdir -p github 
-SET MakeClassic=1 +cd ~/github 
-SET UploadClassic=0 +git clone https://github.com/mxe/mxe.git 
-SET MakeClassicDebug=0 +cd mxe
-SET UploadClassicDebug=0 +
-SET MakeWebkit=0 +
-SET UploadWebkit=0 +
-SET MakeWebkitDebug=0 +
-SET UploadWebkitDebug=0 +
-SET MakePlugins=0 +
-SET UploadPlugins=0 +
-SET MakePluginsDebug=0 +
-SET UploadPluginsDebug=0+
 </code> </code>
-  * Запускаем скрипт **auto-compiler-all-in-one.cmd** в папке **C:\build** и ждём окончания его выполнения 
- 
-Если скрипт отработал успешно, то в рабочей папке **C:\build** появится архив, содержащий скомпилированный и готовый к работе бинарный файл **psi-plus.exe**. 
- 
- 
- 
- 
- 
- 
- 
- 
  
 +  * После скачивания МХЕ в заранее созданном каталоге **~/github**, создаем в корневом каталоге исходных кодов **~/github/mxe** файл **settings.mk** с таким содержимым:
 +  
 +<code bash>
 +# This variable controls the number of compilation processes
 +# within one package ("intra-package parallelism").
 +JOBS := 4
  
 +# This variable controls where intermediate files are created
 +# this is necessary when compiling inside a virtualbox shared
 +# directory. Some commands like strip fail in there with Protocol error
 +# default is the current directory
 +#MXE_TMP := /tmp
  
 +# This variable controls the targets that will build.
 +MXE_TARGETS := i686-w64-mingw32.shared x86_64-w64-mingw32.shared
  
 +# This variable controls which plugins are in use.
 +# See plugins/README.md for further information.
 +# override MXE_PLUGIN_DIRS += plugins/gcc9
  
 +# This variable controls the download mirror for SourceForge,
 +# when it is used. Enabling the value below means auto.
 +#SOURCEFORGE_MIRROR := downloads.sourceforge.net
  
 +# The three lines below makes `make` build these "local
 +# packages" instead of all packages.
 +LOCAL_PKG_LIST := qtbase qtmultimedia qtimageformats qttools qtwebkit qtwinextras qtkeychain \
 +qttranslations hunspell libotr tidy-html5 minizip \
 +gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad opus
 +.DEFAULT_GOAL  := local-pkg-list
 +local-pkg-list: $(LOCAL_PKG_LIST)
 +</code>
 +__Особое внимание нужно уделить переменным:__
 +        - **MXE_TARGETS** где нужно указать цели сборки МХЕ, подробнее про это можно почитать в каталоге **docs** или кратко в файле **README.md**. //В примере окружение МХЕ будет компилироваться для 2х целей: i686-w64-mingw32.shared - 32х битная среда, динамические бибилиотеки (*.dll) на выходе; x86_64-w64-mingw32.shared - 64х битная среда, динамические бибилиотеки (*.dll) на выходе.//
 +        - **MXE_TMP** - каталог где будет происходить сборка окружения MXE, если у вас много оперативной памяти (>=32Гб) и каталог **/tmp** монтируется как файловая система **tmpfs**, то данную строчку можно раскомментировать для ускорения сборки
 +        - **LOCAL_PKG_LIST** - список пакетов, которые будут компилироваться по-умолчанию. //В примере показан минимальный список необходимый для сборки полного комплекта Psi+//
 +        - **JOBS** - количество потоков сборки, используется для ускорения сборки на многоядерных системах, значение обычно ставят из соображения **количество ядер процессора + 1**
 +        - **override MXE_PLUGIN_DIR** - в примере эта строка закомментирована. Таким образом можно указать версию компилятора или указать какой-то специфический набор опций (обязательно загляните в каталог plugins). //В примере указан gcc9 как компилятор, а по-умолчанию версия может быть старее или новее.//
 +  
  
-===== Компиляция плагинов Psi+ =====+  * Закончив с настройкой окружения, запускаем его сборку командой:
  
-  * Скачиваем скрипт **[[https://raw.githubusercontent.com/psi-plus/maintenance/master/scripts/win32/auto-compiler-all-in-one.cmd|auto-compiler-all-in-one.cmd]]** в новую папку (например, **C:\build**) 
-  * Включаем необходимый для сборки параметр **MakePlugins** в положение **1**: 
 <code> <code>
-SET MakeClassic=0 +make
-SET UploadClassic=0 +
-SET MakeClassicDebug=0 +
-SET UploadClassicDebug=0 +
-SET MakeWebkit=0 +
-SET UploadWebkit=0 +
-SET MakeWebkitDebug=0 +
-SET UploadWebkitDebug=0 +
-SET MakePlugins=1 +
-SET UploadPlugins=0 +
-SET MakePluginsDebug=0 +
-SET UploadPluginsDebug=0+
 </code> </code>
-  * Запускаем скрипт **auto-compiler-all-in-one.cmd** в папке **C:\build** и ждём окончания его выполнения 
  
-Если скрипт отработал успешно, то в рабочей папке **C:\build** появится архив, содержащий скомпилированные и готовые к работе плагины Psi+.+Подробнее об опциях сборки пакетов [[https://mxe.cc/#usage|https://mxe.cc/#usage]]
  
 +**ВНИМАНИЕ** Сборка указанных в примере пакетов для 2х целей будет длиться приблизительно 6 часов, в зависимости от мощности вашего сборочного компьютера.
  
 +**СОВЕТ 1** Делайте резервные копии каталога mxe/usr перед каждым обновлением сборочного окружения, особенно если собираете MXE из master
  
 +  * После окончания сборки окружения МХЕ можно приступать к сборке Psi+
  
 +==== Сборка Psi+ в окружении MXE ====
  
-===== Альтернативный способ сборки Psi+ под OS Windows (утилитой cmake) =====+  * Создаем общий каталог сборки и скачиваем исходные коды программы Psi+ при помощи утилиты **git**
  
-==== Инструментарий ====+<code bash> 
 +mkdir -p ~/github/build 
 +cd ~/github 
 +git clone https://github.com/psi-plus/psi-plus-snapshots.git 
 +</code>
  
-  * **При сборке этим способом все вышеописанные процедуры можно пропустить** +  * Настраиваем окружение для сборки
-  * Скачиваем и устанавливаем [[https://cmake.org/files/v3.7/cmake-3.7.2-win32-x86.msi|Cmake]] и [[https://github.com/git-for-windows/git/releases|Git For Windows]] +
-  * Если вы хотите собрать Psi+ при помощи **Qt5**, скачиваем [[http://download.qt.io/official_releases/online_installers/qt-unified-windows-x86-online.exe|Qt5 Online Installer]] и устанавливаем версию 5.5 //(можно и новее, но возможно придется собирать **SDK** самому, и в версиях >=5.5 из Qt5 под OS Windows удалили QtWebkit, следовательно собрать вебкит-версию не получится)//+
-  * Для сборки этим способом нам также необходим [[https://drive.google.com/open?id=1E7D1W1uDy2baXxaTdPtIL7nMM72X8ImM|SDK]] для сборки Psi+, новые версии SDK появляются в [[https://drive.google.com/open?id=0B_6HeEGc8_zqM2JPOFV1UXhYc3c|каталоге]].+
  
-//**Устанавливать лучше всего как можно ближе в корню диска, также не стоит устанавливать эти утилиты в каталоги, в имени которых есть пробелы.**// +<code bash> 
-  +unset `env | \ 
-Если у вас уже есть все собранные вами библиотеки необходимые для сборки Psi+, вы можете сами создать каталог SDK разместив в нем каталоги библиотек таким образом: +grep -vi '^EDITOR=\|^HOME=\|^LANG=\|MXE\|^PATH=' | \ 
-<code> +grep -vi 'PKG_CONFIG\|PROXY\|^PS1=\|^TERM=' | \ 
-   |-hunspell +cut -d '=' -f1 | tr '\n' ' '` 
-   |---i386 +export PATH=~/github/mxe/usr/bin:$PATH #тут лучше прописать полный путь к МХЕ
-   |-----bin +
-   |-----doc +
-   |-----include +
-   |-----lib +
-   |-libgcrypt +
-   |---i386 +
-   |-----... +
-   |-libgpg-error +
-   |---i386 +
-   |-----... +
-   |-libidn +
-   |---i386 +
-   |-----... +
-   |-libotr +
-   |---i386 +
-   |-----... +
-   |-libtidy +
-   |---i386 +
-   |-----... +
-   |-openssl +
-   |---i386 +
-   |-----... +
-   |-qca +
-   |---i386 +
-   |-----... +
-   |-zlib +
-   |---i386 +
-   |-----...+
 </code> </code>
  
-   +  * Запускаем симейк к исполнению для конкретной цели, например:
  
-==== Инструкция по установке Qt5 ==== +<code bash> 
-  * Запускаем онлайн-инсталлер **qt-unified-windows-x86-2.0.5-online.exe** +cd ~/github/build 
-  * Нажимаем **Next** +i686-w64-mingw32.shared-cmake -DDEV_MODE=ON -DBUNDLED_IRIS_ALL=ON -DENABLE_PLUGINS=ON -DBUILD_PSIMEDIA=ON -DCHAT_TYPE=webkit ../psi-plus-snapshots 
-  * Нажимаем **Skip** (если у вас есть аккаунт Qt можете ввести данные) +</code>
-  * Если это первый запуск онлайн-инсталлера, то он попросит ввести путь установки, вводим и нажимаем **Next** +
-  * Онлайн-инсталлер начнет скачивать информацию по доступным файлам, затем нажимаем **Next** +
-  * В появившемся списке версий снимаем все галочки и ставим их таким образом: +
-{{:ru:pic-20170203-141427.png}} +
-  * Нажимаем **Next** и ждем окончания установки+
  
-==== Настройка скрипта сборки Psi+ при помощи cmake и сборка ====+тут вместо **i686-w64-mingw32.shared-cmake** нужно указывать конкретный симейк для конкретной цели. Для варианта из примера это может быть также **x86_64-w64-mingw32.shared-cmake**.
  
 +Эта команда запустит конфигурацию Psi+ для сборки самой Psi+ чатлогом на движке QtWebkit, а также всех плагинов и плагина psimedia
  
-  * Скачиваем архив [[https://sites.google.com/site/thesomeprojects/main-1/zagruzki/make-psiplus-cmake.7z?attredirects=0&d=1|make-psiplus-cmake]] и распаковываем файл **make-psiplus-cmake.cmd**. +  * Запускаем команду сборки и подготовки собранных бинарных файлов к работе
-  * Открываем скрипт **make-psiplus-cmake.cmd** текстовым редактором, лучше всего [[https://notepad-plus-plus.org|Notepad++]] или [[http://www.geany.org|Geany]], обычный Блокнот вряд ли подойдет, т.к. не умеет понимать форматирования файла, да и с подсветкой работать удобнее. +
-  * Ищем в скрипте и правим следующие переменные:+
  
-**set CPUCOUNT**=//**5**// <-тут вместо **5** ваше количество ядер CPU + 1 (в примере **4+1**) +<code bash> 
- +i686-w64-mingw32.shared-cmake --build . --target all --target prepare-bin --target prepare-bin-libs --parallel 4   #тоже самое что и JOBS в файле конфигурации МХЕ 
-**set BUILDDIR**=//**C:\build**// <-тут вместо **C:\build** путь к каталогу куда будут скачаны исходники и где будет производится сборка Psi+ +</code>
- +
-**set PSIDEPSPREFIX**=//**C:\build\psibuild\psisdk**// <-тут вместо **C:\build\psibuild\psisdk** путь к каталогу в который был установлен **Psi+ SDK** +
- +
-**set GITBIN**=//**C:\Git\bin\git.exe**// <-тут вместо **C:\Git\bin\git.exe** ваш путь к файлу **git.exe** +
- +
-**set CMAKEDIR**=//**C:\cmake**// <-тут вместо **C:\cmake** ваш путь к каталогу в который был установлен **Cmake** +
- +
-**set ISWEBKIT**=//**NO**// <-Если необходимо собрать Psi+ с поддержкой Webkit, заменяем **NO** на **OK** +
- +
-**set MINGW32**=//**C:\MinGW**// <-тут вместо **C:\MinGW** ваш путь к каталогу в который был установлен **MinGW** (каталог в котором лежат каталоги bin и lib) +
- +
-Если вы хотите собрать Psi+ при помощи Qt5, нужно изменить также следующие переменные: +
- +
-**set QT5DIR**=//**C:\Qt\Qt5\5.5\mingw492_32**// <-тут вместо **C:\Qt\Qt5\5.5\mingw492_32** ваш путь к каталогу в который был установлен **Qt-5.5** (каталог в котором лежат каталоги bin и lib) +
- +
-**set MINGW5DIR**=//**C:\Qt\Qt5\Tools\mingw492_32**// <-тут вместо **C:\Qt\Qt5\Tools\mingw492_32** ваш путь к каталогу в который был установлен **MinGW для Qt5** (каталог в котором лежат каталоги bin и lib) +
- +
-  * Выполнив все подготовительные действия и исправив скрипт, запускаем скрипт на выполнение кликнув по нему правой кнопкой мыши и в меню выбрав **Запуск от имени администратора**  +
-  * Скрипт сам скачает всё необходимое, подготовит исходники к сборке и запустит компиляцию. В процессе он несколько раз будет останавливаться для контроля за процессом сборки. Процесс сборки будет наглядно отображён процентом выполненной работы. Если скрипт отработал правильно, то у вас на диске **C:** появится каталог **build**, в котором появится каталог **psibuild**. В каталоге **C:\build\psibuild** будут лежать следующие каталоги: **psi-plus-snapshots**, **psi-plus-l10n**, это каталоги с исходными кодами, необходимыми для сборки Psi+. Также в каталоге **C:\build\psibuild** будет расположен каталог **work**, где и будет производится сборка Psi+ +
-   После того как скрипт закончит работу, в каталоге **C:\build\psibuild\psi_версия пси+** будут лежать следующие элементы: +
-      * psi-plus.exe +
-      * каталог plugins со всеми плагинами +
-      * файл client_icons.txt +
-      * каталог crets +
-      * каталог iconsets +
-      * каталог sound +
-      * и каталог themes (если включен вебкит)+
  
-Файлы переводов (локализации) после сборки будут лежать в каталоге **C:\build\psibuild\work\cmake_build\psi\translations**+В реультате в каталоге **~/github/build/psi** будет собран *.exe файл Psi+ и в каталоге **~/github/build/psi/plugins** будут собраны все плагины *.dll, а также в каталог **~/github/build/psi** будут скопированы все необходимые для запуска Psi+ библиотеки зависимостей
  
 +Подробнее про флаги для сборки при помощи CMake можно почитать [[https://github.com/psi-im/psi/blob/master/Readme-cmake-ru.txt|тут]]
  
  
mingw32.1551110087.txt.gz · Last modified: 2019/09/03 11:10 (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki