57 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
################################################################################
 | 
						|
## Author: Shaun Reed                                                         ##
 | 
						|
## Legal: All Content (c) 2025 Shaun Reed, all rights reserved                ##
 | 
						|
##                                                                            ##
 | 
						|
## Contact: shaunrd0@gmail.com  | URL: www.shaunreed.com | GitHub: shaunrd0   ##
 | 
						|
################################################################################
 | 
						|
 | 
						|
# Define CMake version
 | 
						|
cmake_minimum_required(VERSION 3.15)
 | 
						|
 | 
						|
project(
 | 
						|
    #[[NAME]]    SDL-Cmake
 | 
						|
    DESCRIPTION  "Example project for building SDL projects with CMake"
 | 
						|
    LANGUAGES    CXX
 | 
						|
)
 | 
						|
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
 | 
						|
 | 
						|
# Add Library
 | 
						|
add_library(
 | 
						|
    graphics-lib-sdl                          # Library Name
 | 
						|
    src/lib-sdl-test.cpp  src/lib-sdl-test.h  # Sources..
 | 
						|
)
 | 
						|
 | 
						|
target_include_directories(            # When calling library, include a directory
 | 
						|
    graphics-lib-sdl                   # Library name
 | 
						|
    PUBLIC                             # Visibility
 | 
						|
    ${CMAKE_CURRENT_SOURCE_DIR}/src    # Source directory for library
 | 
						|
)
 | 
						|
 | 
						|
# Search for SDL2 package
 | 
						|
find_package(SDL2 QUIET)
 | 
						|
if (NOT SDL2_FOUND)
 | 
						|
  message(FATAL_ERROR
 | 
						|
      "[Klips] Failed to find SDL2.\n"
 | 
						|
      "On Ubuntu 24.04 SDL2 can be installed using apt:\n"
 | 
						|
      "  sudo apt install libsdl2-dev\n"
 | 
						|
  )
 | 
						|
endif()
 | 
						|
message(STATUS "[Klips] Found SDL2: ${SDL2_INCLUDE_DIRS}")
 | 
						|
 | 
						|
# Any target that links with this library will also link to SDL2
 | 
						|
# + Because we choose PUBLIC visibility
 | 
						|
target_include_directories(graphics-lib-sdl PUBLIC ${SDL2_INCLUDE_DIRS})
 | 
						|
target_link_libraries(graphics-lib-sdl PUBLIC "${SDL2_LIBRARIES}")
 | 
						|
 | 
						|
# Creating executable
 | 
						|
add_executable(
 | 
						|
    graphics-cmake-sdl  # Exe name
 | 
						|
    apps/sdl-test.cpp   # Exe Source(s)
 | 
						|
)
 | 
						|
 | 
						|
# Linking the exe to library
 | 
						|
target_link_libraries(
 | 
						|
    graphics-cmake-sdl    # Executable to link
 | 
						|
    PRIVATE               # Visibility
 | 
						|
    graphics-lib-sdl      # Library to link
 | 
						|
) |