48 lines
1.6 KiB
CMake
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()
|