···11cmake_minimum_required(VERSION 3.16)
2233-if(CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_CURRENT_BINARY_DIR)
44- message(FATAL_ERROR "Prevented in-tree build. Please create a build directory outside of the SDL source code and run \"cmake -S ${CMAKE_SOURCE_DIR} -B .\" from there")
55-endif()
66-73# See docs/release_checklist.md
84project(SDL3 LANGUAGES C VERSION "3.1.5")
95···456452sdl_include_directories(
457453 PRIVATE
458454 "${SDL3_BINARY_DIR}/include-config-$<LOWER_CASE:$<CONFIG>>/build_config"
459459- "${SDL3_BINARY_DIR}/include"
455455+ "${SDL3_BINARY_DIR}/include-revision"
460456 "${SDL3_SOURCE_DIR}/include"
461457)
462458# Note: The clang toolset for Visual Studio does not support the '-idirafter' option.
···30503046# config variables may contain generator expression, so we need to generate SDL_build_config.h in 2 steps:
30513047# 1. replace all `#cmakedefine`'s and `@abc@`
30523048configure_file("${SDL3_SOURCE_DIR}/include/build_config/SDL_build_config.h.cmake"
30533053- "${SDL3_BINARY_DIR}/SDL_build_config.h.intermediate")
30493049+ "${SDL3_BINARY_DIR}/CMakeFiles/SDL_build_config.h.intermediate")
30543050# 2. generate SDL_build_config.h in an build_type-dependent folder (which should be first in the include search path)
30553051file(GENERATE
30563052 OUTPUT "${SDL3_BINARY_DIR}/include-config-$<LOWER_CASE:$<CONFIG>>/build_config/SDL_build_config.h"
30573057- INPUT "${SDL3_BINARY_DIR}/SDL_build_config.h.intermediate"
30533053+ INPUT "${SDL3_BINARY_DIR}/CMakeFiles/SDL_build_config.h.intermediate"
30583054)
3059305530603056file(GLOB SDL3_INCLUDE_FILES "${SDL3_SOURCE_DIR}/include/SDL3/*.h")
···30783074 set(SDL_REVISION "SDL3-${SDL_REVISION_CENTER}")
30793075endif()
3080307630813081-execute_process(COMMAND "${CMAKE_COMMAND}" -E make_directory "${SDL3_BINARY_DIR}/include/SDL3")
30823082-configure_file(include/build_config/SDL_revision.h.cmake include/SDL3/SDL_revision.h @ONLY)
30833083-list(APPEND SDL3_INCLUDE_FILES "${SDL3_BINARY_DIR}/include/SDL3/SDL_revision.h")
30773077+execute_process(COMMAND "${CMAKE_COMMAND}" -E make_directory "${SDL3_BINARY_DIR}/include-revision/SDL3")
30783078+configure_file(include/build_config/SDL_revision.h.cmake include-revision/SDL3/SDL_revision.h @ONLY)
30793079+list(APPEND SDL3_INCLUDE_FILES "${SDL3_BINARY_DIR}/include-revision/SDL3/SDL_revision.h")
3084308030853081if(SDL_FRAMEWORK)
30863082 # With Apple frameworks, headers in the PUBLIC_HEADER property also need to be added as sources
···32773273set_property(TARGET SDL3_Headers PROPERTY EXPORT_NAME "Headers")
32783274target_include_directories(SDL3_Headers
32793275 INTERFACE
32803280- "$<BUILD_INTERFACE:${SDL3_BINARY_DIR}/include>"
32763276+ "$<BUILD_INTERFACE:${SDL3_BINARY_DIR}/include-revision>"
32813277 "$<BUILD_INTERFACE:${SDL3_SOURCE_DIR}/include>"
32823278)
32833279if(SDL_FRAMEWORK)