2D_Engine_Casio/CMakeLists.txt

48 lines
1.6 KiB
CMake

# 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()