chaos-drop/CMakeLists.txt

74 lines
1.9 KiB
CMake

cmake_minimum_required(VERSION 3.15)
project(ChaosDrop VERSION 1.0 LANGUAGES CXX C ASM)
list(APPEND CMAKE_MODULE_PATH "$ENV{AZUR_PATH_${AZUR_PLATFORM}}/lib/cmake")
find_package(Azur 0.1 REQUIRED)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED TRUE)
set(SOURCES
src/main.cc
src/game.cc
src/raytracing.cc)
set(ASSETS)
if(AZUR_PLATFORM STREQUAL gint)
list(APPEND SOURCES
src/backend/gint/shader_vfx.cc
src/backend/gint/shader.cc)
list(APPEND ASSETS
assets/font.png
assets/cursor0.png
assets/cursor.png
assets/title.png
assets/1_1.txt
assets/1_2.txt
assets/1_3.txt
assets/2_1.txt
assets/2_2.txt
assets/2_3.txt
assets/3_1.txt
assets/3_2.txt
assets/3_3.txt)
endif()
if(AZUR_PLATFORM STREQUAL linux)
list(APPEND SOURCES
src/backend/linux/programs.cc)
endif()
# No emscripten backend for now
if(AZUR_PLATFORM STREQUAL emscripten)
# configure_file(backend/emscripten/index.html index.html)
# list(APPEND SOURCES
# src/backend/emscripten/render.cc)
message(FATAL_ERROR "No emscripten build yet")
endif()
add_executable(chaos-drop ${SOURCES} ${ASSETS})
target_compile_options(chaos-drop PRIVATE -Wall -Wextra -O3
-fmodulo-sched -fmodulo-sched-allow-regmoves)
if(AZUR_PLATFORM STREQUAL gint)
find_package(Gint 2.10 REQUIRED)
find_package(LibProf 2.4 REQUIRED)
include(Fxconv)
fxconv_declare_converters(converters.py)
fxconv_declare_assets(${ASSETS} WITH_METADATA)
target_link_libraries(chaos-drop Azur::Azur LibProf::LibProf Gint::Gint -lm)
target_link_options(chaos-drop PRIVATE
-Wl,-Map=map -Wl,--print-memory-usage)
include(GenerateG3A)
generate_g3a(TARGET chaos-drop
NAME "Chaos Drop!"
OUTPUT "ChaosDrop.g3a"
ICONS assets/icon-uns.png assets/icon-sel.png)
endif()
if(AZUR_PLATFORM STREQUAL linux)
target_link_libraries(chaos-drop Azur::Azur Azur::ImGui)
endif()