44 lines
1.3 KiB
CMake
44 lines
1.3 KiB
CMake
cmake_minimum_required(VERSION 3.16)
|
|
project(Letnik3Zadnja)
|
|
|
|
set(CMAKE_CXX_STANDARD 23)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
|
|
# Include FetchContent to download SDL from source
|
|
include(FetchContent)
|
|
|
|
# Download SDL3 from source
|
|
FetchContent_Declare(
|
|
SDL3
|
|
GIT_REPOSITORY https://github.com/libsdl-org/SDL.git
|
|
GIT_TAG release-3.4.2
|
|
)
|
|
|
|
# Download SDL3_image from source
|
|
FetchContent_Declare(
|
|
SDL3_image
|
|
GIT_REPOSITORY https://github.com/libsdl-org/SDL_image.git
|
|
GIT_TAG release-3.2.4
|
|
)
|
|
|
|
# Work around PipeWire API mismatch on some Linux distributions.
|
|
# Disable PipeWire backend in SDL; PulseAudio/ALSA backends remain available.
|
|
set(SDL_PIPEWIRE OFF CACHE BOOL "Disable SDL PipeWire backend" FORCE)
|
|
set(SDL_PIPEWIRE_SHARED OFF CACHE BOOL "Disable dynamic PipeWire loading in SDL" FORCE)
|
|
|
|
# Make SDL libraries available
|
|
FetchContent_MakeAvailable(SDL3)
|
|
FetchContent_MakeAvailable(SDL3_image)
|
|
|
|
# Collect all source files from src/ and nested directories
|
|
file(GLOB_RECURSE SOURCES CONFIGURE_DEPENDS "src/*.cpp")
|
|
|
|
# Create the executable
|
|
add_executable(${PROJECT_NAME} ${SOURCES})
|
|
|
|
# Include headers from include/
|
|
target_include_directories(${PROJECT_NAME} PRIVATE include)
|
|
|
|
# Link SDL3 and SDL3_image to the executable
|
|
target_link_libraries(${PROJECT_NAME} PRIVATE SDL3::SDL3 SDL3_image::SDL3_image)
|