RogueLife/CMakeLists.txt

182 lines
5.4 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(RogueLife)
include(GenerateG1A)
include(GenerateG3A)
include(Fxconv)
find_package(Gint 2.5.2 REQUIRED)
find_package(LibProf 2.4 REQUIRED)
if("${FXSDK_PLATFORM_LONG}" STREQUAL fx9860G)
message(FATAL_ERROR "This game does not support the fx-9860G!")
endif()
set(SOURCES
src/anim.c
src/aoe.c
src/enemies.c
src/game.c
src/geometry.c
src/item.c
src/level.c
src/main.c
src/map.c
src/menu.c
src/pathfinding.c
src/player.c
src/render.c
src/skills.c
src/util.c
src/comp/entity.c
src/comp/fighter.c
src/comp/mechanical.c
src/comp/particle.c
src/comp/physical.c
src/comp/visible.c
)
set(ASSETS
# Tilesets
assets-cg/tilesets/cavern.tsx
assets-cg/tilesets/lab.tsx
assets-cg/tilesets/heaven.tsx
assets-cg/tilesets/machine.tsx
assets-cg/tilesets/crypt.tsx
# Levels
assets-cg/levels/lv1.tmx
assets-cg/levels/lv1.txt
assets-cg/levels/lv2.tmx
assets-cg/levels/lv2.txt
assets-cg/levels/lv3.tmx
assets-cg/levels/lv3.txt
assets-cg/levels/lv4.tmx
assets-cg/levels/lv4.txt
assets-cg/levels/lv5.tmx
assets-cg/levels/lv5.txt
assets-cg/levels/lvsandbox.tmx
assets-cg/levels/lvsandbox.txt
# Menu
assets-cg/menu_title.png
# HUD
assets-cg/hud.png
assets-cg/hud_arcade_font.png
assets-cg/hud_arcade_font2.png
assets-cg/hud_backpack.ase
assets-cg/hud_combo.png
assets-cg/hud_delay.png
assets-cg/hud_flag.png
assets-cg/hud_itemslots.png
assets-cg/hud_life.png
assets-cg/hud_panel.png
assets-cg/hud_small.png
assets-cg/hud_top.png
assets-cg/hud_xp.ase
assets-cg/skillicons.png
assets-cg/font_hud.png
# Items
assets-cg/items/life.aseprite
assets-cg/items/chest.aseprite
assets-cg/items/potion_atk.aseprite
assets-cg/items/potion_cooldown.aseprite
assets-cg/items/potion_def.aseprite
assets-cg/items/potion_frz.aseprite
assets-cg/items/potion_hp.aseprite
assets-cg/items/potion_spd.aseprite
assets-cg/items/stick1.aseprite
assets-cg/items/stick2.aseprite
assets-cg/items/sword1.aseprite
assets-cg/items/sword2.aseprite
assets-cg/items/armor1.aseprite
assets-cg/items/buff.aseprite
# Player animations
assets-cg/player/player_up.aseprite
assets-cg/player/player_right.aseprite
assets-cg/player/player_down.aseprite
assets-cg/player/player_left.aseprite
# Skill animations
assets-cg/skills/swing_up.aseprite
assets-cg/skills/swing_right.aseprite
assets-cg/skills/swing_down.aseprite
assets-cg/skills/swing_left.aseprite
assets-cg/skills/impale_up.aseprite
assets-cg/skills/impale_right.aseprite
assets-cg/skills/impale_down.aseprite
assets-cg/skills/impale_left.aseprite
assets-cg/skills/bullet_up.aseprite
assets-cg/skills/bullet_right.aseprite
assets-cg/skills/bullet_down.aseprite
assets-cg/skills/bullet_left.aseprite
assets-cg/skills/hit.aseprite
assets-cg/skills/judgement.aseprite
assets-cg/skills/launch.aseprite
assets-cg/skills/magic_up.aseprite
assets-cg/skills/magic_right.aseprite
assets-cg/skills/magic_down.aseprite
assets-cg/skills/magic_left.aseprite
assets-cg/skills/teleport.aseprite
assets-cg/skills/shock.aseprite
assets-cg/skills/projectile_left.aseprite
assets-cg/skills/projectile_right.aseprite
# Enemies: Slime
assets-cg/enemies/slime_left.aseprite
assets-cg/enemies/slime_right.aseprite
# Enemies: Bat
assets-cg/enemies/bat_left.aseprite
assets-cg/enemies/bat_right.aseprite
# Enemies: Gunslinger
assets-cg/enemies/gunslinger_left.aseprite
assets-cg/enemies/gunslinger_right.aseprite
# Enemies: Fire Slime
assets-cg/enemies/fire_slime_left.txt
assets-cg/enemies/fire_slime_right.txt
# Enemies: Albinos Bat
assets-cg/enemies/albinos_bat_left.txt
assets-cg/enemies/albinos_bat_right.txt
# Enemies: Chemical Slime
assets-cg/enemies/chemical_slime_left.txt
assets-cg/enemies/chemical_slime_right.txt
# Enemies: Crimson Bat
assets-cg/enemies/crimson_bat_left.txt
assets-cg/enemies/crimson_bat_right.txt
# Enemies: Water Slime
assets-cg/enemies/water_slime_left.txt
assets-cg/enemies/water_slime_right.txt
# Enemies: GB Gunslinger
assets-cg/enemies/gb_gunslinger_left.txt
assets-cg/enemies/gb_gunslinger_right.txt
# Enemies: Master Gunslinger
assets-cg/enemies/master_gunslinger_left.txt
assets-cg/enemies/master_gunslinger_right.txt
# Enemies: Tifucile
assets-cg/enemies/tifucile_left.aseprite
assets-cg/enemies/tifucile_right.aseprite
# Enemies: Washing machine
assets-cg/enemies/washing_machine_left.aseprite
assets-cg/enemies/washing_machine_right.aseprite
# Enemies: Water slime
assets-cg/enemies/water_slime_left.txt
assets-cg/enemies/water_slime_right.txt
# Enemies: Chemical slime
assets-cg/enemies/chemical_slime_left.txt
assets-cg/enemies/chemical_slime_right.txt
# Misc
assets-cg/font_damage_red.png
assets-cg/font_damage_white.png
assets-cg/font_rogue.png
)
fxconv_declare_assets(${ASSETS} ${ASSETS} WITH_METADATA)
fxconv_declare_converters(assets-cg/converters.py)
add_executable(addin ${SOURCES} ${ASSETS})
target_compile_options(addin PRIVATE -Wall -Wextra -O3)
target_include_directories(addin PRIVATE src)
target_link_libraries(addin LibProf::LibProf Gint::Gint)
target_link_options(addin PRIVATE -Wl,-Map=map)
generate_g3a(TARGET addin OUTPUT "RogueLif.g3a"
NAME "Rogue Life" ICONS assets-cg/icon-uns.png assets-cg/icon-sel.png)