From 1d587e94e116ec3c87eb7e4ded7bb810370a67b9 Mon Sep 17 00:00:00 2001
From: Anonymous Maarten <[EMAIL REDACTED]>
Date: Mon, 19 Jan 2026 22:30:42 +0100
Subject: [PATCH] cmake: only mark SDL_{SHARED,STATIC} as cache variables if
they were already cache variables
---
CMakeLists.txt | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 025e652d7a089..80e7fffdfdfb5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -390,8 +390,17 @@ set_option(SDL_CLANG_TIDY "Run clang-tidy static analysis" OFF)
set(SDL_VENDOR_INFO "" CACHE STRING "Vendor name and/or version to add to SDL_REVISION")
-cmake_dependent_option(SDL_SHARED "Build a shared version of the library" ${SDL_SHARED_DEFAULT} ${SDL_SHARED_AVAILABLE} OFF)
-cmake_dependent_option(SDL_STATIC "Build a static version of the library" ${SDL_STATIC_DEFAULT} ${SDL_STATIC_AVAILABLE} OFF)
+if(DEFINED CACHE{SDL_SHARED} OR DEFINED CACHE{SDL_STATIC})
+ cmake_dependent_option(SDL_SHARED "Build a shared version of the library" ${SDL_SHARED_DEFAULT} ${SDL_SHARED_AVAILABLE} OFF)
+ cmake_dependent_option(SDL_STATIC "Build a static version of the library" ${SDL_STATIC_DEFAULT} ${SDL_STATIC_AVAILABLE} OFF)
+else()
+ if(NOT DEFINED SDL_SHARED)
+ set(SDL_SHARED ${SDL_SHARED_DEFAULT})
+ endif()
+ if(NOT DEFINED SDL_STATIC)
+ set(SDL_STATIC ${SDL_STATIC_DEFAULT})
+ endif()
+endif()
option(SDL_TEST_LIBRARY "Build the SDL3_test library" ON)
dep_option(SDL_TESTS "Build the test directory" ${SDL3_MAINPROJECT} SDL_TEST_LIBRARY OFF)