cmake_minimum_required(VERSION 3.15) project(BosonX LANGUAGES ASM C CXX) include(GenerateG3A) include(Fxconv) find_package(Azur 0.1 REQUIRED) find_package(Gint 2.8 REQUIRED) find_package(LibProf 2.1 REQUIRED) set(SOURCES src/fsblend.cpp src/fsblend.S src/game.cpp src/generator/gen1.cpp src/generator/gen2.cpp src/generator/gen3.cpp src/generator/path.cpp src/level.cpp src/log.cpp src/main.cpp src/menu.cpp src/ptrace.cpp src/render.cpp src/util.cpp) set(ASSETS assets-cg/dot.png assets-cg/bosonx_logo.png assets-cg/bosonx_title.png assets-cg/bosonx_logo_empty.png assets-cg/lepheyatis_logo.png assets-cg/font_boson.png assets-cg/font_energy.png assets-cg/font_energy2.png assets-cg/font_energy3.png assets-cg/erik_running.gif assets-cg/erik_jumping.gif assets-cg/stages/stage1.png assets-cg/stages/stage2.png assets-cg/stages/stage3.png assets-cg/stages/stage4.png assets-cg/stages/stage5.png assets-cg/stages/stage6.png) fxconv_declare_assets(${ASSETS} WITH_METADATA) fxconv_declare_converters(converters.py) add_executable(addin ${SOURCES} ${ASSETS}) target_compile_options(addin PRIVATE -Wall -Wextra -Os -std=c++20 -fno-exceptions) target_link_options(addin PRIVATE -Wl,-Map=map) target_link_libraries(addin PRIVATE Azur::Azur -lnum LibProf::LibProf Gint::Gint -lm -lstdc++) generate_g3a(TARGET addin OUTPUT "BosonX.g3a" NAME "BosonX" ICONS assets-cg/icon-uns.png assets-cg/icon-sel.png)