# Configure with [fxsdk build-fx] or [fxsdk build-cg], which provide the # toolchain file and module path of the fxSDK cmake_minimum_required(VERSION 3.15) project(2D_Engine) include(GenerateG3A) include(GenerateHH2Bin) include(Fxconv) find_package(Gint 2.9 REQUIRED) set(SOURCES src/main.c src/game.c src/vector2d.c src/linked_list.c src/texture_manager.c src/ecs/ecs.c src/ecs/transform_component.c src/ecs/sprite_component.c src/ecs/animation_system.c src/ecs/player_system.c ) # fx-CG-50-only assets set(ASSETS_cg assets-cg/player-sheets/player_idle_sheet.png assets-cg/player-sheets/player_run_sheet.png ) fxconv_declare_assets(${ASSETS_cg} WITH_METADATA) add_executable(myaddin ${SOURCES} ${ASSETS} ${ASSETS_${FXSDK_PLATFORM}}) # Release only #target_compile_options(myaddin PRIVATE -Wall -Wextra -Ofast -flto) target_compile_options(myaddin PRIVATE -Wall -Wextra -g -flto -Wpedantic -Wshadow -Wconversion -Wfloat-equal -Wformat=2 -Wuninitialized -Wsign-compare -Wundef -Wmissing-declarations -Wstrict-prototypes -Wmissing-prototypes) target_link_libraries(myaddin Gint::Gint) if("${FXSDK_PLATFORM_LONG}" STREQUAL fxCG50) generate_g3a(TARGET myaddin OUTPUT "2D_Engine.g3a" NAME "2D_Engine" ICONS assets-cg/icon/icon-uns.png assets-cg/icon/icon-sel.png) elseif("${FXSDK_PLATFORM_LONG}" STREQUAL fx9860G_G3A) generate_g3a(TARGET myaddin OUTPUT "2D_Engine-fx.g3a" NAME "2D_Engine-fx" ICONS assets-cg/icon/icon-uns.png assets-cg/icon/icon-sel.png) elseif("${FXSDK_PLATFORM_LONG}" STREQUAL fxCP) generate_hh2_bin(TARGET myaddin OUTPUT "2D_Engine-hh2.bin") endif()