125 lines
4.3 KiB
CMake
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()
|