====== Psi+ on MS Windows: Build Instructions (win64-msvc2019) ======
===== Microsoft Visual Studio 2019 =====
==== Необходимый инструментарий ====
Скачиваем исходный код Psi+ из git-репозитория:
git clone https://github.com/psi-plus/psi-plus-snapshots.git
cd psi-plus-snapshots
Скачиваем:
* [[https://cmake.org/download/|CMake ]] Можно использовать тот, что идет в комплекте с Qt
* [[https://my.visualstudio.com/Downloads?q=visual%20studio%202019&wt.mc_id=o~msft~vscom~older-downloads|Microsoft Visual Studio 2019]]
* [[https://www.qt.io/download-open-source?hsCtaTracking=9f6a2170-a938-42df-a8e2-a9f0b1d6cdce%7C6cb0de4f-9bb5-4778-ab02-bfb62735f3e5|Qt Online Installer Windows]] (требует регистрации на сайте)
* [[https://gstreamer.freedesktop.org/data/pkg/windows/1.24.4/msvc/gstreamer-1.0-msvc-x86_64-1.24.4.msi|Gstreamer runtime libraries 1.24.4]]
* [[https://gstreamer.freedesktop.org/data/pkg/windows/1.24.4/msvc/gstreamer-1.0-devel-msvc-x86_64-1.24.4.msi|Gstreamer development libraries 1.24.4]]
* [[https://sourceforge.net/projects/psiplus/files/Windows/Personal-Builds/KukuRuzo/SDK/psisdk-msvc2019-setup-35.0.exe/download|Psi+ Qt5 SDK MSVC2019 Win64]] (СДК для сборки Psi+ //~30Мб//)
==== Установка Инструментов сборки Psi+ ====
* Сначала установим CMake при помощи скачанного установщика. Можно пропустить и установить вместе с Qt (//желательно ставить в каталог ближе к корню диска, например C:\cmake и добавить путь к CMake в PATH по просьбе установщика//)
* Установим **Microsoft Visual Studio 2019 Community Edition** при помощи скачанного online-установщика (~12Гб места на диске)
рекомендуемый набор компонентов для установки показан на рисунке:
{{:ru:msvc2019_setup.png?1200|}}
также можно воспользоваться пунктом импортировать конфигурацию, для этого нужно создать текстовый файл со следующим содержимым:
{
"version": "1.0",
"components": [
"Microsoft.VisualStudio.Component.CoreEditor",
"Microsoft.VisualStudio.Workload.CoreEditor",
"Microsoft.VisualStudio.Component.Roslyn.Compiler",
"Microsoft.Component.MSBuild",
"Microsoft.VisualStudio.Component.TextTemplating",
"Microsoft.VisualStudio.Component.Debugger.JustInTime",
"Microsoft.VisualStudio.Component.VC.CoreIde",
"Microsoft.VisualStudio.Component.Windows10SDK",
"Microsoft.VisualStudio.Component.VC.Tools.x86.x64",
"Microsoft.VisualStudio.Component.Windows10SDK.19041",
"Component.CPython3.x64",
"Microsoft.VisualStudio.Component.VC.Redist.14.Latest",
"Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Core",
"Microsoft.VisualStudio.Component.VC.ATL",
"Microsoft.VisualStudio.Component.VC.ASAN",
"Microsoft.VisualStudio.Component.VC.Modules.x86.x64",
"Microsoft.VisualStudio.Workload.NativeDesktop"
]
}
* Затем установим необходимый комплект **Qt5** при помощи online-установщика, где выбираем Qt-5.15.2 MSVC2019 64bit (рекомендуется для SDK v29.0 в Tools выбираем CDB и убеждаемся, что выбран QtCreator (установленный комплект занимает около 7Гб)
* Устанавливаем библиотеки **Gstreamer** желательно устанавливать в один и тот же каталог и в максимальной конфигурации
* И наконец установим **SDK**, который содержит набор библиотек необходимых для сборки Psi+. При установке очень желательно включить пункт "Добавить запись в реестр Windows". **Поле установки нужно перезайти в систему, чтобы обновились переменные.**
=== Конфигурирование Qt перед сборкой ===
* Нажимаем клавиши **Win+Pause/Break** и слева выбираем пункт Дополнительные параметры, в появившемся окне выбираем **Переменные среды** и в новом окне убеждаемся в наличии переменных: **GSREAMER_1_0_ROOT_x86_64** и **PSI_SDK_MSVC_WIN64**
{{:ru:env-vars.png|}}
* Запускаем **QtCreator**, там в меню **Инструменты** выбираем **Параметры**
* Убедимся, что QtCreator нашел CMake, если не нашел добавляем его вручную
{{:ru:cmake-config.png|}}
* Проверяем, что QtCreator нашел необходимые дебаггеры, если нужного нет - добавляем сами:
{{:ru:cdb-config.png|}}
* Проверяем наличие необходимых компиляторов
{{:ru:creator-compilers.png|}}
* Проверяем наличие необходимого нам профиля Qt (у вас будут свои пути)
{{:ru:qt-profile.png|}}
* Настраиваем среду сборки
{{:ru:creator-comp.png|}}
* Настраиваем генератор CMake
{{:ru:cmake-generator.png|}}
* Дополнительно настраиваем флаги CMake по-умолчанию:
{{:ru:cmake-flags.png|}}
==== Компиляция Psi в программе QtCreator ====
* Запускаем **QtCreator**, если он еще не запущен.
* Открываем файл **CMakeLists.txt** из корневого каталога со скачанными исходными кодами Psi+
* Настраиваем проект
{{:ru:project-setts.png|}}
Можем включать / выключать необходимые типы сборки, которые потом можно выбрать в основном окне программы
{{:ru:build-type.png|}}
* После настройки проекта начнется предварительное конфигурирование проекта результаты которого будут представлены на вкладке **Основные сообщения**
* Заходим в опции проекта и выбираем необходимые нам флаги конфигурации (не забываем нажимать **Применить**). Рекомендуемые мною настройки:
* Обязательно включаем флаг DEV_MODE если необходим запуск Psi+ прямо из QtCreator
* Добавляем следующие этапы сборки:
{{:ru:project-opts.png|}}
* После настройки советую зайти в пункт меню **Сборка** и там по очереди выполнить **Очистить конфигурацию** и **Запустить CMake**. Желательно делать так всегда, когда вы изменяете настройки проекта (меняете состояние флагов).
* Если все прошло успешно - запускаем сборку по **Ctrl+B** или выбрав в меню **Сборка** - **Собрать проект psi-plus**
* Сборка займет некоторое время и если пройдет успешно, вы можете запускать Psi+ прямо из QtCreator или посмотреть в настройках запуска проекта путь к собранным файлам
* Если что-то пошло не так, то сначала убедитесь, что у вас установлены все необходимые инструменты для сборки, заданы все необходимые переменные среды или настройте пути к SDK и Gstreamer в настройках проекта (возможно вам необходимо будет добавить необходимые переменные вручную).
* Описание флагов конфигурации смотрим [[https://github.com/psi-plus/psi-plus-snapshots/blob/master/Readme-cmake-ru.txt|тут]]
* Сборка SDK своими руками в этом разделе не описана, т.к. эта задача - нетривиальна и порой требует специальных навыков и знаний.
**====
ПРИМЕЧАНИЯ ====**
1. Для ускорения сборки под Windows можно воспользоваться утилитой [[https://ccache.dev/download.html|Ccache]], для этого нужно распаковать архив с программой в удобный каталог и добавить этот каталог в переменную PATH.
2. Если у вас что-то не получается - внимательно читайте вывод CMake, cmake-скрипты Psi/Psi+ выдают достаточно подробную информацию о процессе конфигурации.