From b221b59995c7a7862417d48c4b18250267e45f2d Mon Sep 17 00:00:00 2001 From: 1vanK <1vanK@users.noreply.github.com> 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 e46a4241e7..7e5a28b55f 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)