Для сборки проекта используются следующие библиотеки и инструменты:
- Библиотека из состава "АТОЛ Драйвер ККТ" версии не ниже 10.10.8 (Оф.сайт)
- Asio C++ Library (Git, Оф.сайт)
- OpenSSL (Git, Оф.сайт)
- JSON for Modern C++ (Git, Оф.сайт)
- Catch2 (Git)
- Microsoft Visual Studio 2022 Community Edition (Оф.сайт)
- или Clang (Git, Оф.сайт) + CMake (Git, Оф.сайт) + Ninja (Git, Оф.сайт)
- vcpkg (Git, Оф.сайт)
vcpkg можно заменить другим менеджером зависимостей для C++ или использовать уже готовые сборки указанных выше
библиотек. В этом случае возможно придется поправить CMakeLists.txt.
Сборка тестировалась с помощью компиляторов MSVC и Clang. Скрипты с типовой сборкой для этих компиляторов лежат в
директориях .\_msvc и .\_clang соответственно. Содержание директорий:
| СКРИПТ | ОПИСАНИЕ |
|---|---|
config_env.cmd |
Установка переменных окружения и запуск необходимых bootstrap-скриптов. Вызывается из ниже перечисленных скриптов. |
install_dynamic_deps.cmd |
Установка динамически собранных зависимостей и копирование необходимых заголовочных файлов из %programfiles%\ATOL\Drivers10\KKT\langs\cpp\fptr10 в .\deps\fptr10. |
install_static_deps.cmd |
Установка статически собранных зависимостей и копирование необходимых заголовочных файлов из %programfiles%\ATOL\Drivers10\KKT\langs\cpp\fptr10 в .\deps\fptr10. |
config_build.cmd |
Установка опций сборки. |
test.cmd |
Сборка отладочной версии и запуск unit-тестов. |
test_building.cmd |
Сборка с различными наборами параметраметров сборки и запуск unit-тестов. |
build_debug.cmd |
Сборка отладочной версии. |
build_crtd.cmd |
Сборка отладочной версии с включенным CRT Debug. |
build_sntz.cmd |
Сборка релизной версии c AddressSanitizer и UndefinedBehaviorSanitizer. |
build_release.cmd |
Сборка релизной версии. |
Предполагается, что необходимое ПО установлено в следующих директориях:
| ПО | ПУТЬ |
|---|---|
| АТОЛ Драйвер | %programfiles%\ATOL |
| Microsoft Visual Studio 2022 Community Edition | %programfiles%\Microsoft Visual Studio\2022\Community |
| Clang | C:\Devel\Platform\Clang\22.1.2-x86_64 |
| CMake | C:\Devel\Platform\CMake\4.2.3-x86_64 |
| Ninja | C:\Devel\Platform\Ninja\1.13.2 |
Пути можно изменить в файлах config_env.cmd и install_*_deps.cmd. CMake и Ninja можно использовать из состава MSVS.
Опции CMake:
| ОПЦИЯ | ОПИСАНИЕ |
|---|---|
BUILD_SEPARATED |
Сборка приложения как отдельных исполняемых файлов. |
BUILD_STATIC |
Статическая сборка. |
BUILD_TESTS |
Сборка c unit-тестами. |
WITH_SHORTCUTS |
Сборка приложения с поддержкой сокращенных команд. |
WITH_RELSL |
Использовать относительные пути исходных файлов в приложении. |
WITH_SBIAC |
Разрешить инвазивный доступ к буферу std::string. |
WITH_CRTD |
Включение профилирования памяти в отладочной сборке с помощью CRT Debug. |
WITH_SNTZ |
Включение санитайзеров (AddressSanitizer и UndefinedBehaviorSanitizer) релизной версии. |
WITH_LEAKS |
Создание утечек памяти в отладочной сборке. |
WITH_10106 |
Ограничение функциональность версией драйвера 10.10.6. |
WITH_10107 |
Ограничение функциональность версией драйвера 10.10.7. |
WITH_10108 |
Ограничение функциональность версией драйвера 10.10.8. |
Перед сборкой проекта с опцией -D BUILD_STATIC=ON требуется установить зависимости скриптом install_static_deps.cmd.
В противном случае необходимо выполнить install_dynamic_deps.cmd. После сборки одним из скриптов build_*.cmd в
директорию .\_build будет установлен файл kkmha.exe и, в случае динамической сборки, файлы libcrypto-?-x64.dll,
libssl-?-x64.dll. После сборки с опцией -D BUILD_SEPARATED=ON, будет создано 3 исполняемых файла: kkmha.exe,
kkmop.exe, kkmjl.exe.
Так же в директории .\_build уже находятся файлы конфигурации и т.п., формирующие готовое окружение для запуска.
Для запуска на ПК, кроме того, на котором производилась сборка может потребоваться установка последнего пакета Microsoft Visual C++ Redistributable.