ru:mingw32
Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
| ru:mingw32 [2020/05/29 12:48] – kukuruzo | ru:mingw32 [2024/06/16 11:46] (текущий) – kukuruzo | ||
|---|---|---|---|
| Строка 3: | Строка 3: | ||
| ===== Необходимый инструментарий ===== | ===== Необходимый инструментарий ===== | ||
| - | 1. **[[https://download.qt.io/official_releases/ | + | 1. **[[http://www.cmake.org/|CMake build system]]** |
| - | 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]]** |
| - | 3. **[[http:// | + | 3. **[[http:// |
| - | 4. **[[https://github.com/git-for-windows/git/releases|Git for Windows]]** - набор утилит для | + | 4. **[[http://www.gnu.org/software/libidn/|GNU IDN Library (LibIDN)]]** -- скомпилированную версию (v1.28) можно взять [[http://ftp.gnu.org/gnu/libidn/ |
| - | 5. **[[http:// | + | 5. **[[http:// |
| - | + | ||
| - | 6. **[[http:// | + | |
| - | + | ||
| - | 7. **[[http:// | + | |
| 8. **[[http:// | 8. **[[http:// | ||
| **__Опционально__: | **__Опционально__: | ||
| - | * **[[http:// | ||
| - | * **[[http:// | ||
| * **[[https:// | * **[[https:// | ||
| - | * < | ||
| - | * < | ||
| - | * < | ||
| - | |||
| - | |||
| - | |||
| - | |||
| - | ===== Подготовка к сборке, | ||
| - | |||
| - | * Устанавливаем необходимый инструментарий, | ||
| - | * Создаём в папке **C: | ||
| - | * Распаковываем содержимое архива **[[http:// | ||
| - | * Распаковываем содержимое архива **[[http:// | ||
| - | * Скачиваем и распаковываем содержимое архива **[[http:// | ||
| - | * файлы из папки **bin** копируем в папку **Psi+** (например, | ||
| - | * папки **include** и **lib** копируем в папку **C: | ||
| - | * < | ||
| - | * < | ||
| - | < | ||
| - | ........ | ||
| - | QMAKE_CC = ccache | ||
| - | ........ | ||
| - | QMAKE_CXX = ccache $${CROSS_COMPILE}g++ | ||
| - | </ | ||
| - | * В свойствах компьютера (Start → Settings → Control Panel → System Properties → Advanced → Environment Variables) добавляем необходимые пути в системную переменную [[http:// | ||
| - | < | ||
| - | C:\>path | ||
| - | </ | ||
| - | |||
| - | < | ||
| - | PATH=C: | ||
| - | </ | ||
| - | А также создаём новые системные переменные __(при необходимости заменив пути на свои)__: | ||
| - | < | ||
| - | GITDIR=C: | ||
| - | LIBIDNDIR=C: | ||
| - | MINGWDIR=C: | ||
| - | OPENSSLDIR=C: | ||
| - | QCADIR=C: | ||
| - | QCONFDIR=C: | ||
| - | QMAKESPEC=win32-g++ | ||
| - | QTDIR=C: | ||
| - | ZLIBDIR=C: | ||
| - | </ | ||
| - | |||
| - | **__Примечание 1:__** Переменные обновятся только для вновь запущенных процессов, | ||
| - | |||
| - | **__Примечание 2:__** Если у вас закрыт доступ наружу по порту **9418**, то вы **не сможете** скачать исходный код **Psi** и **Psi+** по протоколу **[[git:// | ||
| - | < | ||
| - | C: | ||
| - | </ | ||
| Строка 201: | Строка 144: | ||
| Если сборка прошла успешно, | Если сборка прошла успешно, | ||
| - | ===== < | ||
| - | < | ||
| Строка 209: | Строка 150: | ||
| + | ===== Способ сборки Psi+ при помощи кросс-компиляции из OS Linux (рекомендовано) ===== | ||
| + | ==== Настройка и сборка окружения для кросс-компиляции MXE ==== | ||
| - | ===== Сборка | + | * Инструкция по скачиванию доступна на официальном сайте проекта [[https:// |
| - | * Скачиваем скрипт **[[https://raw.githubusercontent.com/psi-plus/maintenance/ | + | <code bash> |
| - | * Включаем необходимый для сборки параметр **MakeClassic** в положение **1** (если он ещё не включен): | + | cd ~ |
| - | < | + | 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 | + | |
| </ | </ | ||
| - | * Запускаем скрипт **auto-compiler-all-in-one.cmd** в папке **C: | ||
| - | Если скрипт отработал успешно, то в рабочей папке **C:\build** появится архив, содержащий скомпилированный и готовый к работе бинарный файл **psi-plus.exe**. | + | * После скачивания МХЕ в заранее созданном каталоге **~/github**, создаем в корневом каталоге исходных кодов **~/ |
| + | |||
| + | <code bash> | ||
| + | # This variable controls the number of compilation processes | ||
| + | # within one package (" | ||
| + | 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/ | ||
| + | # override MXE_PLUGIN_DIRS += plugins/ | ||
| + | # This variable controls the download mirror for SourceForge, | ||
| + | # when it is used. Enabling the value below means auto. | ||
| + | # | ||
| + | # The three lines below makes `make` build these "local | ||
| + | # 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: | ||
| + | </ | ||
| + | __Особое внимание нужно уделить переменным: | ||
| + | - **MXE_TARGETS** где нужно указать цели сборки МХЕ, подробнее про это можно почитать в каталоге **docs** или кратко в файле **README.md**. //В примере окружение МХЕ будет компилироваться для 2х целей: i686-w64-mingw32.shared - 32х битная среда, динамические бибилиотеки (*.dll) на выходе; | ||
| + | - **MXE_TMP** - каталог где будет происходить сборка окружения MXE, если у вас много оперативной памяти (> | ||
| + | - **LOCAL_PKG_LIST** - список пакетов, | ||
| + | - **JOBS** - количество потоков сборки, | ||
| + | - **override MXE_PLUGIN_DIR** - в примере эта строка закомментирована. Таким образом можно указать версию компилятора или указать какой-то специфический набор опций (обязательно загляните в каталог plugins). //В примере указан gcc9 как компилятор, | ||
| + | | ||
| + | * Закончив с настройкой окружения, | ||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | ===== Компиляция плагинов Psi+ ===== | ||
| - | |||
| - | * Скачиваем скрипт **[[https:// | ||
| - | * Включаем необходимый для сборки параметр **MakePlugins** в положение **1**: | ||
| < | < | ||
| - | 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 | + | |
| </ | </ | ||
| - | * Запускаем скрипт **auto-compiler-all-in-one.cmd** в папке **C: | ||
| - | Если скрипт | + | Подробнее об опциях сборки пакетов |
| + | **ВНИМАНИЕ** Сборка указанных в примере пакетов для 2х целей будет длиться приблизительно 6 часов, в зависимости от мощности вашего сборочного компьютера. | ||
| + | **СОВЕТ 1** Делайте резервные копии каталога mxe/usr перед каждым обновлением сборочного окружения, | ||
| + | * После окончания сборки окружения МХЕ можно приступать к сборке Psi+ | ||
| + | ==== Сборка Psi+ в окружении MXE ==== | ||
| - | ===== Альтернативный способ | + | * Создаем общий каталог сборки |
| + | <code bash> | ||
| + | mkdir -p ~/ | ||
| + | cd ~/github | ||
| + | git clone https:// | ||
| + | </ | ||
| + | * Настраиваем окружение для сборки | ||
| - | ==== Инструкция по установке Qt5 ==== | + | <code bash> |
| - | * Запускаем онлайн-инсталлер **qt-unified-windows-x86-2.0.5-online.exe** | + | unset `env | \ |
| - | * Нажимаем **Next** | + | grep -vi ' |
| - | * Нажимаем **Skip** (если у вас есть аккаунт Qt можете ввести данные) | + | grep -vi ' |
| - | * Если это первый запуск онлайн-инсталлера, то он попросит ввести | + | cut -d ' |
| - | * Онлайн-инсталлер начнет скачивать | + | export PATH=~/ |
| - | * В появившемся списке версий снимаем все галочки и ставим их таким образом: | + | </ |
| - | {{: | + | |
| - | * Нажимаем **Next** и ждем окончания установки | + | |
| - | ==== Настройка скрипта сборки Psi+ при | + | * Запускаем симейк |
| + | <code bash> | ||
| + | cd ~/ | ||
| + | i686-w64-mingw32.shared-cmake -DDEV_MODE=ON -DBUNDLED_IRIS_ALL=ON -DENABLE_PLUGINS=ON -DBUILD_PSIMEDIA=ON -DCHAT_TYPE=webkit ../ | ||
| + | </ | ||
| - | * Скачиваем архив [[https:// | + | тут |
| - | * Открываем скрипт **make-psiplus-cmake.cmd** текстовым редактором, лучше всего [[https:// | + | |
| - | | + | |
| - | **set CPUCOUNT**=// | + | Эта команда запустит конфигурацию Psi+ для сборки самой Psi+ чатлогом на движке QtWebkit, а также |
| - | **set BUILDDIR**=// | + | |
| - | **set PSIDEPSPREFIX**=// | + | <code bash> |
| - | + | i686-w64-mingw32.shared-cmake --build . --target all --target prepare-bin --target prepare-bin-libs --parallel 4 #тоже самое что и JOBS в файле конфигурации МХЕ | |
| - | **set GITBIN**=// | + | </ |
| - | + | ||
| - | **set CMAKEDIR**=// | + | |
| - | + | ||
| - | **set ISWEBKIT**=// | + | |
| - | + | ||
| - | **set MINGW32**=// | + | |
| - | + | ||
| - | Если вы хотите собрать Psi+ при помощи Qt5, нужно изменить также следующие переменные: | + | |
| - | + | ||
| - | **set QT5DIR**=// | + | |
| - | + | ||
| - | **set MINGW5DIR**=// | + | |
| - | + | ||
| - | * Выполнив все подготовительные действия и исправив скрипт, | + | |
| - | * Скрипт сам скачает всё необходимое, подготовит исходники к сборке и запустит компиляцию. В процессе он несколько раз будет останавливаться для контроля за процессом сборки. Процесс сборки будет наглядно отображён процентом выполненной работы. Если скрипт отработал правильно, | + | |
| - | | + | |
| - | * psi-plus.exe | + | |
| - | * каталог plugins со всеми плагинами | + | |
| - | * файл client_icons.txt | + | |
| - | * каталог crets | + | |
| - | * каталог iconsets | + | |
| - | * каталог sound | + | |
| - | * и каталог themes (если включен вебкит) | + | |
| - | Файлы переводов (локализации) после сборки | + | В реультате в каталоге **~/ |
| + | Подробнее про флаги для сборки при помощи CMake можно почитать [[https:// | ||
ru/mingw32.1590756512.txt.gz · Последнее изменение: 2020/05/29 12:48 — kukuruzo
