From 5a079a2d114f96d4847d1ee305d5b7c16eeec50e Mon Sep 17 00:00:00 2001 From: 3gg <3gg@shellblade.net> Date: Sat, 27 Dec 2025 12:03:39 -0800 Subject: Initial commit --- contrib/SDL-3.2.8/docs/INTRO-cmake.md | 50 +++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 contrib/SDL-3.2.8/docs/INTRO-cmake.md (limited to 'contrib/SDL-3.2.8/docs/INTRO-cmake.md') diff --git a/contrib/SDL-3.2.8/docs/INTRO-cmake.md b/contrib/SDL-3.2.8/docs/INTRO-cmake.md new file mode 100644 index 0000000..e6ccace --- /dev/null +++ b/contrib/SDL-3.2.8/docs/INTRO-cmake.md @@ -0,0 +1,50 @@ + +# Introduction to SDL with CMake + +The easiest way to use SDL is to include it as a subproject in your project. + +We'll start by creating a simple project to build and run [hello.c](hello.c) + +Create the file CMakeLists.txt +```cmake +cmake_minimum_required(VERSION 3.16) +project(hello) + +# set the output directory for built objects. +# This makes sure that the dynamic library goes into the build directory automatically. +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/$") +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/$") + +# This assumes the SDL source is available in vendored/SDL +add_subdirectory(vendored/SDL EXCLUDE_FROM_ALL) + +# Create your game executable target as usual +add_executable(hello WIN32 hello.c) + +# Link to the actual SDL3 library. +target_link_libraries(hello PRIVATE SDL3::SDL3) +``` + +Build: +```sh +cmake -S . -B build +cmake --build build +``` + +Run: +- On Windows the executable is in the build Debug directory: +```sh +cd build/Debug +./hello +``` +- On other platforms the executable is in the build directory: +```sh +cd build +./hello +``` + +A more complete example is available at: + +https://github.com/Ravbug/sdl3-sample + +Additional information and troubleshooting is available in [README-cmake.md](README-cmake.md) -- cgit v1.2.3