change build system to CMake and use SDL3 for everything

This commit is contained in:
Sven Balzer
2025-02-24 19:47:40 +01:00
parent e6a5a00dcb
commit 74e0d78a4c
2052 changed files with 981424 additions and 1461 deletions
+53
View File
@@ -0,0 +1,53 @@
cmake_minimum_required(VERSION 3.25)
project(mikemon VERSION 0.1 LANGUAGES CXX C)
set(CMAKE_C_STANDARD 11)
set(CMAKE_C_EXTENSIONS OFF)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_COMPILE_WARNING_AS_ERROR ON)
# SDL
set(SDL_SHARED OFF)
set(SDL_STATIC ON)
add_subdirectory(libs/SDL3)
# Shaders
find_program(SLANGC
NAMES slangc
PATHS /opt/shader-slang-bin/bin
)
function(add_shader name)
set(INPUT_FILE ${CMAKE_CURRENT_SOURCE_DIR}/assets/shader/${name}.slang)
set(OUTPUT_FILE ${CMAKE_CURRENT_SOURCE_DIR}/assets/shader/${name}.h)
if (SLANGC)
add_custom_command(
OUTPUT ${OUTPUT_FILE}
COMMAND ${SLANGC} ${INPUT_FILE} -g3 -O0 -emit-spirv-via-glsl -entry main -target spirv -profile glsl_330 -o ${OUTPUT_FILE} -source-embed-style u8 -source-embed-name SPIRV_${name}
DEPENDS ${INPUT_FILE}
)
endif()
add_custom_target(${name}
DEPENDS ${OUTPUT_FILE}
)
endfunction()
add_shader(basic_vertex_shader)
add_shader(basic_pixel_shader)
add_executable(mikemon
src/log.cpp
src/load_entire_file.cpp
src/main.cpp
)
target_link_libraries(mikemon
PRIVATE
SDL3::SDL3
)
add_dependencies(mikemon
basic_vertex_shader
basic_pixel_shader
)