yeti3dpro-sdl3/CMakeLists.txt
2024-10-12 18:11:41 -05:00

59 lines
1.9 KiB
CMake

cmake_minimum_required(VERSION 3.28)
project(yeti3dpro LANGUAGES C)
find_package(SDL3 REQUIRED CONFIG REQUIRED COMPONENTS SDL3-shared)
# base engine library
add_library(y3d STATIC)
target_sources(y3d PRIVATE
${PROJECT_SOURCE_DIR}/src/y3d/y3d_animation.c
${PROJECT_SOURCE_DIR}/src/y3d/y3d_ansic.c
${PROJECT_SOURCE_DIR}/src/y3d/y3d_cell.c
${PROJECT_SOURCE_DIR}/src/y3d/y3d_draw.c
${PROJECT_SOURCE_DIR}/src/y3d/y3d_engine.c
${PROJECT_SOURCE_DIR}/src/y3d/y3d_entity.c
${PROJECT_SOURCE_DIR}/src/y3d/y3d_file.c
${PROJECT_SOURCE_DIR}/src/y3d/y3d_fixed.c
${PROJECT_SOURCE_DIR}/src/y3d/y3d_fruity.c
${PROJECT_SOURCE_DIR}/src/y3d/y3d_image.c
${PROJECT_SOURCE_DIR}/src/y3d/y3d_keyboard.c
${PROJECT_SOURCE_DIR}/src/y3d/y3d_map.c
${PROJECT_SOURCE_DIR}/src/y3d/y3d_matrix.c
${PROJECT_SOURCE_DIR}/src/y3d/y3d_pixel.c
${PROJECT_SOURCE_DIR}/src/y3d/y3d_record.c
${PROJECT_SOURCE_DIR}/src/y3d/y3d_sound.c
${PROJECT_SOURCE_DIR}/src/y3d/y3d_spanner.c
${PROJECT_SOURCE_DIR}/src/y3d/y3d_surface.c
${PROJECT_SOURCE_DIR}/src/y3d/y3d_vertex.c
${PROJECT_SOURCE_DIR}/src/y3d/y3d_yeti.c
)
target_include_directories(y3d PUBLIC ${PROJECT_SOURCE_DIR}/src/y3d/)
target_compile_definitions(y3d PUBLIC __SDL__)
# demo game library
add_library(game STATIC)
target_sources(game PRIVATE
${PROJECT_SOURCE_DIR}/src/game/data.c
${PROJECT_SOURCE_DIR}/src/game/entities.c
${PROJECT_SOURCE_DIR}/src/game/game.c
${PROJECT_SOURCE_DIR}/src/game/maps.c
${PROJECT_SOURCE_DIR}/src/game/models.c
${PROJECT_SOURCE_DIR}/src/game/screens.c
${PROJECT_SOURCE_DIR}/src/game/sprites.c
)
target_include_directories(game PUBLIC ${PROJECT_SOURCE_DIR}/src/game/)
target_link_libraries(game PRIVATE y3d)
# sdl3 platform
add_executable(game-sdl3)
target_sources(game-sdl3 PRIVATE
${PROJECT_SOURCE_DIR}/platform/sdl3/main.c
)
target_link_libraries(game-sdl3 PRIVATE SDL3::SDL3 game y3d)
find_library(MATH m)
if(MATH)
target_link_libraries(game-sdl3 PUBLIC ${MATH})
endif()