Simple Directmedia Layer

Allow in-tree build

Changed files
+24 -16
cmake
+15 -3
.gitignore
··· 29 29 *.rej 30 30 31 31 # for CMake 32 + .cmake 32 33 CMakeFiles/ 33 34 CMakeCache.txt 34 35 cmake_install.cmake 35 36 cmake_uninstall.cmake 36 - SDL3ConfigVersion.cmake 37 - .ninja_* 38 - *.ninja 37 + install_manifest.txt 38 + *Targets.cmake 39 + *Config.cmake 40 + *ConfigVersion.cmake 41 + CTestTestfile.cmake 42 + Testing 39 43 compile_commands.json 40 44 .cache/ 45 + /include-config-* 46 + /include-revision 47 + /Makefile 48 + .ninja_* 49 + *.ninja 50 + *.pc 51 + test/*.test 52 + wayland-generated-protocols 41 53 42 54 # for CLion 43 55 .idea
+7 -11
CMakeLists.txt
··· 1 1 cmake_minimum_required(VERSION 3.16) 2 2 3 - if(CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_CURRENT_BINARY_DIR) 4 - 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") 5 - endif() 6 - 7 3 # See docs/release_checklist.md 8 4 project(SDL3 LANGUAGES C VERSION "3.1.5") 9 5 ··· 456 452 sdl_include_directories( 457 453 PRIVATE 458 454 "${SDL3_BINARY_DIR}/include-config-$<LOWER_CASE:$<CONFIG>>/build_config" 459 - "${SDL3_BINARY_DIR}/include" 455 + "${SDL3_BINARY_DIR}/include-revision" 460 456 "${SDL3_SOURCE_DIR}/include" 461 457 ) 462 458 # Note: The clang toolset for Visual Studio does not support the '-idirafter' option. ··· 3050 3046 # config variables may contain generator expression, so we need to generate SDL_build_config.h in 2 steps: 3051 3047 # 1. replace all `#cmakedefine`'s and `@abc@` 3052 3048 configure_file("${SDL3_SOURCE_DIR}/include/build_config/SDL_build_config.h.cmake" 3053 - "${SDL3_BINARY_DIR}/SDL_build_config.h.intermediate") 3049 + "${SDL3_BINARY_DIR}/CMakeFiles/SDL_build_config.h.intermediate") 3054 3050 # 2. generate SDL_build_config.h in an build_type-dependent folder (which should be first in the include search path) 3055 3051 file(GENERATE 3056 3052 OUTPUT "${SDL3_BINARY_DIR}/include-config-$<LOWER_CASE:$<CONFIG>>/build_config/SDL_build_config.h" 3057 - INPUT "${SDL3_BINARY_DIR}/SDL_build_config.h.intermediate" 3053 + INPUT "${SDL3_BINARY_DIR}/CMakeFiles/SDL_build_config.h.intermediate" 3058 3054 ) 3059 3055 3060 3056 file(GLOB SDL3_INCLUDE_FILES "${SDL3_SOURCE_DIR}/include/SDL3/*.h") ··· 3078 3074 set(SDL_REVISION "SDL3-${SDL_REVISION_CENTER}") 3079 3075 endif() 3080 3076 3081 - execute_process(COMMAND "${CMAKE_COMMAND}" -E make_directory "${SDL3_BINARY_DIR}/include/SDL3") 3082 - configure_file(include/build_config/SDL_revision.h.cmake include/SDL3/SDL_revision.h @ONLY) 3083 - list(APPEND SDL3_INCLUDE_FILES "${SDL3_BINARY_DIR}/include/SDL3/SDL_revision.h") 3077 + execute_process(COMMAND "${CMAKE_COMMAND}" -E make_directory "${SDL3_BINARY_DIR}/include-revision/SDL3") 3078 + configure_file(include/build_config/SDL_revision.h.cmake include-revision/SDL3/SDL_revision.h @ONLY) 3079 + list(APPEND SDL3_INCLUDE_FILES "${SDL3_BINARY_DIR}/include-revision/SDL3/SDL_revision.h") 3084 3080 3085 3081 if(SDL_FRAMEWORK) 3086 3082 # With Apple frameworks, headers in the PUBLIC_HEADER property also need to be added as sources ··· 3277 3273 set_property(TARGET SDL3_Headers PROPERTY EXPORT_NAME "Headers") 3278 3274 target_include_directories(SDL3_Headers 3279 3275 INTERFACE 3280 - "$<BUILD_INTERFACE:${SDL3_BINARY_DIR}/include>" 3276 + "$<BUILD_INTERFACE:${SDL3_BINARY_DIR}/include-revision>" 3281 3277 "$<BUILD_INTERFACE:${SDL3_SOURCE_DIR}/include>" 3282 3278 ) 3283 3279 if(SDL_FRAMEWORK)
+2 -2
cmake/macros.cmake
··· 299 299 set(LINKER_SUPPORTS_VERSION_SCRIPT FALSE) 300 300 else() 301 301 cmake_push_check_state(RESET) 302 - file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/dummy.sym" "n_0 {\n global:\n func;\n local: *;\n};\n") 303 - list(APPEND CMAKE_REQUIRED_LINK_OPTIONS "-Wl,--version-script=${CMAKE_CURRENT_BINARY_DIR}/dummy.sym") 302 + file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/dummy.sym" "n_0 {\n global:\n func;\n local: *;\n};\n") 303 + list(APPEND CMAKE_REQUIRED_LINK_OPTIONS "-Wl,--version-script=${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/dummy.sym") 304 304 check_c_source_compiles("int func(void) {return 0;} int main(int argc,char*argv[]){(void)argc;(void)argv;return func();}" LINKER_SUPPORTS_VERSION_SCRIPT FAIL_REGEX "(unsupported|syntax error|unrecognized option)") 305 305 cmake_pop_check_state() 306 306 endif()