forked from archive/yeti3dpro
59 lines
1.9 KiB
CMake
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()
|