Atlas - INTRO-cmake.md

Home / ext / SDL / docs Rendered HTML view | Size: 1550 bytes [Download] [Show on GitHub] [Search similar files] [Raw] [Raw (proxy)]
[FILE BEGIN]

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

Get a copy of the SDL source:

sh git clone https://github.com/libsdl-org/SDL.git vendored/SDL

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) ```

Configure and Build:

sh cmake -S . -B build cmake --build build

Run:

The executable should be in the build directory:

sh cd build ./hello

If there wasn't an executable there despite the above Build section running successfully, it's likely because you're following this guide using the Visual Studio toolchain, it should instead be in the build/Debug directory: sh cd build/Debug ./hello

A more complete example is available at:

https://github.com/Ravbug/sdl3-sample

Additional information and troubleshooting is available in README-cmake.md

[FILE END]
(C) 2025 0x4248 (C) 2025 4248 Media and 4248 Systems, All part of 0x4248 See LICENCE files for more information. Not all files are by 0x4248 always check Licencing.