+15
-3
.gitignore
+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
+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
+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()