Инструменты пользователя

Инструменты сайта


ru:mingw32

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
ru:mingw32 [2020/05/29 15:05] kukuruzoru:mingw32 [2024/06/16 11:46] (текущий) kukuruzo
Строка 3: Строка 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> 
  
  
Строка 203: Строка 146:
  
  
-===== Сборка 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**) 
-  * Включаем необходимый для сборки параметр **MakeClassic** в положение **1** (если он ещё не включен): 
-<code> 
-SET MakeClassic=1 
-SET UploadClassic=0 
-SET MakeClassicDebug=0 
-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> 
-  * Запускаем скрипт **auto-compiler-all-in-one.cmd** в папке **C:\build** и ждём окончания его выполнения 
- 
-Если скрипт отработал успешно, то в рабочей папке **C:\build** появится архив, содержащий скомпилированный и готовый к работе бинарный файл **psi-plus.exe**. 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
-===== Компиляция плагинов 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> 
-SET MakeClassic=0 
-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> 
-  * Запускаем скрипт **auto-compiler-all-in-one.cmd** в папке **C:\build** и ждём окончания его выполнения 
- 
-Если скрипт отработал успешно, то в рабочей папке **C:\build** появится архив, содержащий скомпилированные и готовые к работе плагины Psi+. 
  
  
  
  
 +===== Способ сборки Psi+ при помощи кросс-компиляции из OS Linux (рекомендовано) =====
  
-===== Альтернативный способ сборки Psi+ при помощи кросс-компиляции из OS Linux ===== +==== Настройка и сборка окружения для кросс-компиляции MXE ====
-==== Настройка и сбока окружения для кросс-компиляции MXE ====+
  
   * Инструкция по скачиванию доступна на официальном сайте проекта [[https://mxe.cc/#download|https://mxe.cc/#download]]   * Инструкция по скачиванию доступна на официальном сайте проекта [[https://mxe.cc/#download|https://mxe.cc/#download]]
Строка 304: Строка 190:
 # The three lines below makes `make` build these "local # The three lines below makes `make` build these "local
 # packages" instead of all packages. # packages" instead of all packages.
-LOCAL_PKG_LIST := qtbase qtmultimedia qtimageformats qttools qtwebkit qtwinextras qca qtkeychain \ +LOCAL_PKG_LIST := qtbase qtmultimedia qtimageformats qttools qtwebkit qtwinextras qtkeychain \ 
-qttranslations hunspell libidn libotr tidy-html5 minizip libsignal-protocol-c +qttranslations hunspell libotr tidy-html5 minizip \ 
-gstreamer gst-plugins-base gst-plugins-good opus+gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad opus
 .DEFAULT_GOAL  := local-pkg-list .DEFAULT_GOAL  := local-pkg-list
 local-pkg-list: $(LOCAL_PKG_LIST) local-pkg-list: $(LOCAL_PKG_LIST)
Строка 312: Строка 198:
 __Особое внимание нужно уделить переменным:__ __Особое внимание нужно уделить переменным:__
         - **MXE_TARGETS** где нужно указать цели сборки МХЕ, подробнее про это можно почитать в каталоге **docs** или кратко в файле **README.md**. //В примере окружение МХЕ будет компилироваться для 2х целей: i686-w64-mingw32.shared - 32х битная среда, динамические бибилиотеки (*.dll) на выходе; x86_64-w64-mingw32.shared - 64х битная среда, динамические бибилиотеки (*.dll) на выходе.//         - **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+//         - **LOCAL_PKG_LIST** - список пакетов, которые будут компилироваться по-умолчанию. //В примере показан минимальный список необходимый для сборки полного комплекта Psi+//
         - **JOBS** - количество потоков сборки, используется для ускорения сборки на многоядерных системах, значение обычно ставят из соображения **количество ядер процессора + 1**         - **JOBS** - количество потоков сборки, используется для ускорения сборки на многоядерных системах, значение обычно ставят из соображения **количество ядер процессора + 1**
Строка 326: Строка 213:
  
 **ВНИМАНИЕ** Сборка указанных в примере пакетов для 2х целей будет длиться приблизительно 6 часов, в зависимости от мощности вашего сборочного компьютера. **ВНИМАНИЕ** Сборка указанных в примере пакетов для 2х целей будет длиться приблизительно 6 часов, в зависимости от мощности вашего сборочного компьютера.
 +
 +**СОВЕТ 1** Делайте резервные копии каталога mxe/usr перед каждым обновлением сборочного окружения, особенно если собираете MXE из master
  
   * После окончания сборки окружения МХЕ можно приступать к сборке Psi+   * После окончания сборки окружения МХЕ можно приступать к сборке Psi+
 +
 ==== Сборка Psi+ в окружении MXE ==== ==== Сборка Psi+ в окружении MXE ====
  
Строка 352: Строка 242:
 <code bash> <code bash>
 cd ~/github/build cd ~/github/build
-i686-w64-mingw32.shared-cmake -DDEV_MODE=ON -DENABLE_PLUGINS=ON -DBUILD_PSIMEDIA=ON -DCHAT_TYPE=webkit ../psi-plus-snapshots+i686-w64-mingw32.shared-cmake -DDEV_MODE=ON -DBUNDLED_IRIS_ALL=ON -DENABLE_PLUGINS=ON -DBUILD_PSIMEDIA=ON -DCHAT_TYPE=webkit ../psi-plus-snapshots
 </code> </code>
  
Строка 359: Строка 249:
 Эта команда запустит конфигурацию Psi+ для сборки самой Psi+ чатлогом на движке QtWebkit, а также всех плагинов и плагина psimedia Эта команда запустит конфигурацию Psi+ для сборки самой Psi+ чатлогом на движке QtWebkit, а также всех плагинов и плагина psimedia
  
-  * Запускаем команды сборки и подготовки собранных бинарных файлов к работе+  * Запускаем команду сборки и подготовки собранных бинарных файлов к работе
  
 <code bash> <code bash>
-make -j4 \ #тоже самое что и JOBS в файле конфигурации МХЕ +i686-w64-mingw32.shared-cmake --build . --target all --target prepare-bin --target prepare-bin-libs --parallel 4   #тоже самое что и JOBS в файле конфигурации МХЕ
-&& make prepare-bin \ +
-&& make prepare-bin-libs+
 </code> </code>
  
ru/mingw32.1590764744.txt.gz · Последнее изменение: 2020/05/29 15:05 — kukuruzo

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki