From b221b59995c7a7862417d48c4b18250267e45f2d Mon Sep 17 00:00:00 2001
From: 1vanK <[EMAIL REDACTED]>
Date: Sun, 30 Jul 2023 00:16:32 +0300
Subject: [PATCH] cmake: add SDL_REVISION option
This is useful if one has vendored SDL git and want to avoid rebuilding SDL on every git commit.
---
CMakeLists.txt | 25 ++++++++++++++-----------
1 file changed, 14 insertions(+), 11 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index e46a4241e7b2..7e5a28b55fa8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -2796,19 +2796,22 @@ foreach(_hdr IN LISTS SDL3_INCLUDE_FILES)
endif()
endforeach()
-set(SDL_REVISION_SUFFIX "" CACHE STRING "Suffix for the SDL revision")
-if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/VERSION.txt")
- # If VERSION exists, it contains the SDL version
- file(READ "${CMAKE_CURRENT_SOURCE_DIR}/VERSION.txt" SDL_REVISION_CENTER)
- string(STRIP "${SDL_REVISION_CENTER}" SDL_REVISION_CENTER)
-else()
- # If VERSION does not exist, use git to calculate a version
- git_describe(SDL_REVISION_CENTER)
- if(NOT SDL_REVISION_CENTER)
- set(SDL_REVISION_CENTER "${SDL3_VERSION}-no-vcs")
+set(SDL_REVISION "" CACHE STRING "Custom SDL revision (overrides SDL_REVISION_SUFFIX)")
+if(NOT SDL_REVISION)
+ set(SDL_REVISION_SUFFIX "" CACHE STRING "Suffix for the SDL revision")
+ if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/VERSION.txt")
+ # If VERSION exists, it contains the SDL version
+ file(READ "${CMAKE_CURRENT_SOURCE_DIR}/VERSION.txt" SDL_REVISION_CENTER)
+ string(STRIP "${SDL_REVISION_CENTER}" SDL_REVISION_CENTER)
+ else()
+ # If VERSION does not exist, use git to calculate a version
+ git_describe(SDL_REVISION_CENTER)
+ if(NOT SDL_REVISION_CENTER)
+ set(SDL_REVISION_CENTER "${SDL3_VERSION}-no-vcs")
+ endif()
endif()
+ set(SDL_REVISION "SDL-${SDL_REVISION_CENTER}${SDL_REVISION_SUFFIX}")
endif()
-set(SDL_REVISION "SDL-${SDL_REVISION_CENTER}${SDL_REVISION_SUFFIX}")
execute_process(COMMAND "${CMAKE_COMMAND}" -E make_directory "${SDL3_BINARY_DIR}/include/SDL3")
configure_file(include/build_config/SDL_revision.h.cmake include/SDL3/SDL_revision.h @ONLY)