Browse Source

Document installer builds and register packaging checks

master
evgeny 2 days ago
parent
commit
12c0de503d
  1. 8
      tools/chatgui/CMakeLists.txt
  2. 70
      tools/chatgui/installer/README.txt

8
tools/chatgui/CMakeLists.txt

@ -2,6 +2,14 @@ cmake_minimum_required(VERSION 3.16)
project(vibechat VERSION 0.1.0 LANGUAGES C CXX)
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/chatgui_version.txt" "${PROJECT_VERSION}\n")
# Проверка Windows-упаковки с подставленными инструментами выполняется на Unix.
if(UNIX)
find_package(Python3 QUIET COMPONENTS Interpreter)
if(Python3_Interpreter_FOUND)
add_test(NAME test_windows_installer COMMAND "${Python3_EXECUTABLE}" "${CMAKE_CURRENT_SOURCE_DIR}/tests/test_windows_installer.py")
endif()
endif()
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_AUTOMOC ON)

70
tools/chatgui/installer/README.txt

@ -0,0 +1,70 @@
Windows-инсталлятор VibeChat
===========================
Требования к компьютеру сборки
-----------------------------
Обычные зависимости ChatGUI в MSYS2 UCRT64 (Qt, CMake/Ninja, OpenSSL и т.д.)
и Inno Setup 6.3 или новее: https://jrsoftware.org/isdl.php
Inno Setup нужен только для сборки, пользователю приложения он не требуется.
ISCC.exe ищется в PATH и стандартных каталогах Program Files.
Для нестандартной установки задайте в CMD перед сборкой:
set "ISCC=D:\Tools\Inno Setup 6\ISCC.exe"
Создание инсталлятора
--------------------
Из корня репозитория:
tools\chatgui\build.bat только ChatGUI и его инсталлятор
build.bat ядро, тесты, ChatGUI и его инсталлятор
build_full.bat полная сборка и инсталлятор
BAT-скрипты автоматически включают --installer. Отсутствие Inno Setup или
ошибка упаковки завершают сборку с ненулевым кодом, даже при выводе через tee.
Корневые BAT собирают ChatGUI и при отсутствии предыдущего CMakeCache.txt.
Из UCRT64 shell можно запускать вручную:
cd tools/chatgui
bash build.sh --installer -j4
Или повторно упаковать уже готовый Windows-комплект:
cd tools/chatgui
bash package_win.sh
Результат:
tools\chatgui\build\installer\VibeChat-<версия>-win64-setup.exe
Версия берётся из project(vibechat VERSION ...) в CMakeLists.txt.
--installer задаёт Release; без этого флага поведение shell-сборки прежнее.
Логи: tools\chatgui\build_win.log, а для корневых BAT также build_win.log
или build_full.log в корне. Итоговый путь печатается после успеха компилятора.
Состав и поведение
------------------
Комплект включает EXE, фактически импортируемые DLL, Qt-плагины Windows/JPEG/WebP
с их зависимостями и лицензии. Проверяются x64 PE-формат и полнота зависимостей.
Конфиги, ключи, базы, медиа, логи, lock-файлы, тесты и старые DLL из build
не включаются. Ошибка компилятора не считается успехом из-за старого setup.exe.
Установка: Windows 10/11 с поддержкой x64, Program Files\VibeChat,
права администратора для установки и настройки firewall. Создаются ярлык
в меню Пуск и необязательный ярлык на рабочем столе; после установки приложение
запускается от исходного пользователя. Входящие подключения разрешаются
правилом "VibeChat (installer)" только для установленного EXE.
При обновлении установщик предлагает закрыть приложение, использующее EXE/DLL.
Обновление и удаление сохраняют конфиг, ключи, историю и медиа пользователя.
Деинсталлятор удаляет своё правило firewall и установленные файлы программы.
Журналы установки/удаления и вывод netsh сохраняются средствами Inno Setup;
для явного пути журнала используйте /LOG="C:\path\setup.log".
Проверки
--------
На Linux/Unix: python3 tools/chatgui/tests/test_windows_installer.py
Тест запускает настоящие скрипты с подставленными objdump/pacman/ISCC:
проверяет комплект, ошибки, повторную упаковку и GUI-флаг --installer.
Корневой флаг проверяет python3 tests/test_build_script.py build.sh.
Это не заменяет проверку настоящего Inno-компилятора и установщика на Windows.
На чистой Windows без MSYS2/Qt: установка, запуск обычным пользователем,
сообщения/звуки/медиа, обновление с сохранением идентичности, удаление,
повторная установка. Проверить пути с пробелами и имя пользователя с кириллицей.
Loading…
Cancel
Save