Skip to content

Latest commit

 

History

History
73 lines (60 loc) · 8.94 KB

File metadata and controls

73 lines (60 loc) · 8.94 KB

Сборка

Для сборки проекта используются следующие библиотеки и инструменты:

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.


Назад к содержанию