sushi/CMakeLists.txt

125 lines
4.3 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(Schmup VERSION 1.0 LANGUAGES CXX C ASM)
include(GenerateG3A)
include(Fxconv)
find_package(Azur 0.1 REQUIRED)
find_package(Gint 2.9 REQUIRED)
find_package(LibProf 2.4 REQUIRED)
fxconv_declare_converters(assets-cg/converters.py)
add_custom_command(
OUTPUT "${CMAKE_CURRENT_LIST_DIR}/assets-cg/Levels/Example1.json"
OUTPUT "${CMAKE_CURRENT_LIST_DIR}/assets-cg/Levels/Example2.json"
OUTPUT "${CMAKE_CURRENT_LIST_DIR}/assets-cg/Levels/Example3.json"
COMMENT "Convert Tiled TMX map to usable JSON file"
COMMAND tiled --export-tileset json YakusaSushi.tsx YakusaSushi.json
COMMAND find | grep .*.tmx | sed 's/.tmx//g' | xargs -l bash -c 'tiled --export-map json $$0.tmx $$0.json'
WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/assets-cg/Levels/
DEPENDS assets-cg/Levels/Example1.tmx
assets-cg/Levels/Example2.tmx
assets-cg/Levels/Example3.tmx
assets-cg/converters.py
assets-cg/Levels/TilesetSushi.png
assets-cg/Levels/YakusaSushi.tsx)
set(SOURCES
src/main.cpp
src/utilities/fast_trig.cpp
src/utilities/extrakeyboard.cpp
src/utilities/utilities.cpp
src/utilities/vector2D.cpp
src/utilities/Astar.cpp
src/shaders/circle.cpp
src/shaders/poly.cpp
src/shaders/filledcircle.cpp
src/shaders/filledpoly.cpp
src/shaders/line.cpp
src/game/brain.cpp
src/game/map.cpp
src/game/trajectory.cpp
src/game/game.cpp
src/game/particles.cpp
)
set(ASSETS_cg
assets-cg/player/SpriteSheet.png
assets-cg/milifont.png
assets-cg/font8x9.png
assets-cg/characters/faces/data/01face.png
assets-cg/characters/faces/data/02face.png
assets-cg/characters/faces/data/03face.png
assets-cg/characters/faces/data/04face.png
assets-cg/characters/faces/data/05face.png
assets-cg/characters/faces/data/06face.png
assets-cg/characters/faces/data/07face.png
assets-cg/characters/faces/data/08face.png
assets-cg/characters/faces/data/09face.png
assets-cg/characters/faces/data/10face.png
assets-cg/characters/faces/data/11face.png
assets-cg/characters/faces/data/12face.png
assets-cg/characters/faces/data/13face.png
assets-cg/characters/faces/data/14face.png
assets-cg/characters/faces/data/15face.png
assets-cg/characters/faces/data/16face.png
assets-cg/characters/faces/data/17face.png
assets-cg/characters/faces/data/18face.png
assets-cg/characters/faces/data/19face.png
assets-cg/characters/faces/data/20face.png
assets-cg/characters/faces/all-images-faces.txt
assets-cg/characters/sprites/data/01sprites.png
assets-cg/characters/sprites/data/02sprites.png
assets-cg/characters/sprites/data/03sprites.png
assets-cg/characters/sprites/data/04sprites.png
assets-cg/characters/sprites/data/05sprites.png
assets-cg/characters/sprites/data/06sprites.png
assets-cg/characters/sprites/data/07sprites.png
assets-cg/characters/sprites/data/08sprites.png
assets-cg/characters/sprites/data/09sprites.png
assets-cg/characters/sprites/data/10sprites.png
assets-cg/characters/sprites/data/11sprites.png
assets-cg/characters/sprites/data/12sprites.png
assets-cg/characters/sprites/data/13sprites.png
assets-cg/characters/sprites/data/14sprites.png
assets-cg/characters/sprites/data/15sprites.png
assets-cg/characters/sprites/data/16sprites.png
assets-cg/characters/sprites/data/17sprites.png
assets-cg/characters/sprites/data/18sprites.png
assets-cg/characters/sprites/data/19sprites.png
assets-cg/characters/sprites/data/20sprites.png
assets-cg/characters/sprites/all-images-sprites.txt
assets-cg/Poisoned.png
assets-cg/Levels/TilesetSushi.png
assets-cg/Levels/Example1.json
assets-cg/Levels/Example2.json
assets-cg/Levels/Example3.json
)
fxconv_declare_assets(${ASSETS} ${ASSETS_fx} ${ASSETS_cg} WITH_METADATA)
add_executable(sushi ${SOURCES} ${ASSETS} ${ASSETS_${FXSDK_PLATFORM}})
target_compile_options(sushi PRIVATE -Wall -Wextra -O3 -std=c++20)
target_link_options(sushi PRIVATE -Wl,-Map=Build_Addin.map -Wl,--print-memory-usage -fno-use-cxa-atexit -fpermissive)
target_link_libraries(sushi Azur::Azur -lnum LibProf::LibProf Gint::Gint -lstdc++)
if("${FXSDK_PLATFORM_LONG}" STREQUAL fxCG50)
generate_g3a(TARGET sushi OUTPUT "Sushi.g3a"
NAME " " ICONS assets-cg/icon-uns.png assets-cg/icon-sel.png)
endif()