SDL: cmake: cache cmake config installation folder in SDL_INSTALL_CMAKEDIR_ROOT

From 69812678cfb88c64bcdd540eef19b8c8e5467b28 Mon Sep 17 00:00:00 2001
From: Anonymous Maarten <[EMAIL REDACTED]>
Date: Fri, 16 Dec 2022 23:51:39 +0100
Subject: [PATCH] cmake: cache cmake config installation folder in
 SDL_INSTALL_CMAKEDIR_ROOT

Make sure SDLx is not part of the cached variable such that it can be re-used by SDL2 and SDL3
---
 CMakeLists.txt | 29 ++++++++++++++++++++---------
 1 file changed, 20 insertions(+), 9 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index cb66f52907cb..c7107a3ea6a9 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -3259,8 +3259,27 @@ if(SDL_TEST)
   target_link_libraries(SDL3_test PRIVATE ${EXTRA_TEST_LIBS})
 endif()
 
-##### Installation targets #####
 if(NOT SDL3_DISABLE_INSTALL)
+
+  ##### Configure installation folders #####
+
+  if(WINDOWS AND NOT MINGW)
+    set(SDL_INSTALL_CMAKEDIR_ROOT_DEFAULT "cmake")
+  else()
+    set(SDL_INSTALL_CMAKEDIR_ROOT_DEFAULT "${CMAKE_INSTALL_LIBDIR}/cmake")
+  endif()
+  set(SDL_INSTALL_CMAKEDIR_ROOT "${SDL_INSTALL_CMAKEDIR_ROOT_DEFAULT}" CACHE STRING "Root folder where to install SDL3Config.cmake related files (SDL3 subfolder for MSVC projects)")
+
+  if(WINDOWS AND NOT MINGW)
+    set(SDL_INSTALL_CMAKEDIR "${SDL_INSTALL_CMAKEDIR_ROOT}")
+    set(LICENSES_PREFIX "licenses/SDL3")
+  else()
+    set(SDL_INSTALL_CMAKEDIR "${SDL_INSTALL_CMAKEDIR_ROOT}/SDL3")
+    set(LICENSES_PREFIX "${CMAKE_INSTALL_DATAROOTDIR}/licenses/${PROJECT_NAME}")
+  endif ()
+
+  ##### Installation targets #####
+
   if(SDL_SHARED)
     install(TARGETS SDL3 EXPORT SDL3Targets
       LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
@@ -3283,14 +3302,6 @@ if(NOT SDL3_DISABLE_INSTALL)
   endif()
 
   ##### Export files #####
-  if (WINDOWS AND NOT MINGW)
-    set(SDL_INSTALL_CMAKEDIR_DEFAULT "cmake")
-    set(LICENSES_PREFIX "licenses/SDL3")
-  else ()
-    set(SDL_INSTALL_CMAKEDIR_DEFAULT "${CMAKE_INSTALL_LIBDIR}/cmake/SDL3")
-    set(LICENSES_PREFIX "${CMAKE_INSTALL_DATAROOTDIR}/licenses/${PROJECT_NAME}")
-  endif ()
-  set(SDL_INSTALL_CMAKEDIR "${SDL_INSTALL_CMAKEDIR_DEFAULT}" CACHE STRING "Location where to install SDL3Config.cmake")
 
   include(CMakePackageConfigHelpers)
   configure_package_config_file(SDL3Config.cmake.in "${CMAKE_CURRENT_BINARY_DIR}/SDL3Config.cmake"