- CMake
- vcpkg
- система сборки, поддерживаемая генератором CMake
- компилятор, поддерживающий стандарт языка C++17
-
Открыть консоль в папке проекта
-
Создать папку
/buildи перейти в неёmkdir build cd build
-
Сконфигурировать проектные файлы системы сборки используя CMake (при необходимости указав предпочитаемые систему сборки и компилятор)
[!ВАЖНО!]
-
либо предварительно добавить переменную среды с именем
VCPKG_ROOT, значением которой будет путь к корню vcpkg (далее как<vcpkg-root>)cmake ..
-
либо передать в качестве аргумента к CMake путь к toolchain vcpkg
cmake .. -DCMAKE_TOOLCHAIN_FILE="<vcpkg-root>/scripts/buildsystems/vcpkg.cmake"что эквивалентно
cmake .. --toolchain="<vcpkg-root>/scripts/buildsystems/vcpkg.cmake"
-
-
Собрать проект в конфигурации
Releaseи установить нужные файлы в папку/bincmake --build . --config Release --target install
-
Перейти в папку
/binи запустить приложениеcd .. cd bin ./Slots.exe
Возникли проблемы с зависимостями SDL2-image из-за того,
что (на сколько я понял, изучив issues на GitHub)
библиотека загружает свои зависимости в runtime,
что приводит к тому, что эти зависимости почти невозможно отследить.
В CMakeLists.txt немного костыльный способ скопировать бинарники библиотек.
Не уверен, на сколько он кросс-платформенный. Что-то менять в коде и переписывать
под другую библиотеку или другой способ загрузки ассетов уже не осталось времени,
поэтому оставляю как есть.
Код остался без комментариев, потому что меня уже не хватило на них. При необходимости могу объяснить те или иные дизайнерские решения, а также что и почему происходит.