SDL: cmake: rename SDL_DISABLE_* CMake options to SDL_xxx

https://github.com/libsdl-org/SDL/commit/bda90c3cb6bbee8da2125087a44f514d753d1280

From bda90c3cb6bbee8da2125087a44f514d753d1280 Mon Sep 17 00:00:00 2001
From: Anonymous Maarten <[EMAIL REDACTED]>
Date: Thu, 9 Jan 2025 04:02:10 +0100
Subject: [PATCH] cmake: rename SDL_DISABLE_* CMake options to SDL_xxx

---
 .github/workflows/generic.yml |  8 ++++----
 CMakeLists.txt                | 32 ++++++++++++++++----------------
 docs/README-cmake.md          |  7 +++++++
 3 files changed, 27 insertions(+), 20 deletions(-)

diff --git a/.github/workflows/generic.yml b/.github/workflows/generic.yml
index 880ee51241f6a..d7bdb88291be9 100644
--- a/.github/workflows/generic.yml
+++ b/.github/workflows/generic.yml
@@ -170,9 +170,9 @@ jobs:
             -DSDLTEST_TRACKMEM=ON \
             -DSDL_INSTALL_TESTS=${{ matrix.platform.build-tests }} \
             -DSDL_CLANG_TIDY=${{ matrix.platform.clang-tidy }} \
-            -DSDL_DISABLE_INSTALL_DOCS=OFF \
-            -DSDL_DISABLE_INSTALL_CPACK=OFF \
-            -DSDL_DISABLE_INSTALL_DOCS=OFF \
+            -DSDL_INSTALL_DOCS=ON \
+            -DSDL_INSTALL_CPACK=ON \
+            -DSDL_INSTALL_DOCS=ON \
             ${{ matrix.platform.cmake-arguments }} \
             -DSDL_SHARED=${{ matrix.platform.shared }} \
             -DSDL_STATIC=${{ matrix.platform.static  }} \
@@ -293,7 +293,7 @@ jobs:
               ${{ matrix.platform.cmake-toolchain-file != '' && format('-DCMAKE_TOOLCHAIN_FILE={0}', matrix.platform.cmake-toolchain-file) || '' }} \
               -Wdeprecated -Wdev -Werror \
               -DSDL_WERROR=${{ matrix.platform.werror }} \
-              -DSDL_DISABLE_INSTALL_DOCS=OFF \
+              -DSDL_INSTALL_DOCS=ON \
               ${{ matrix.platform.cmake-arguments }} \
               -DSDL_SHARED=${{ matrix.platform.shared }} \
               -DSDL_STATIC=${{ matrix.platform.static  }} \
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 14e5a04b958c2..ad65570e27010 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -8,13 +8,13 @@ endif()
 project(SDL3 LANGUAGES C VERSION "3.1.9")
 
 if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR)
-  set(SDL3_SUBPROJECT OFF)
+  set(SDL3_MAINPROJECT ON)
 else()
-  set(SDL3_SUBPROJECT ON)
+  set(SDL3_MAINPROJECT OFF)
 endif()
 
 # By default, configure SDL3 in RelWithDebInfo configuration
-if(NOT SDL3_SUBPROJECT)
+if(SDL3_MAINPROJECT)
   get_property(is_multi_config GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
   if(is_multi_config)
       # The first item in CMAKE_CONFIGURATION_TYPES is the default configuration
@@ -287,14 +287,14 @@ if(SOLARIS)
 endif()
 
 # Allow some projects to be built conditionally.
-set_option(SDL_DISABLE_INSTALL     "Disable installation of SDL3" ${SDL3_SUBPROJECT})
-cmake_dependent_option(SDL_DISABLE_INSTALL_CPACK "Create binary SDL3 archive using CPack" ${SDL3_SUBPROJECT} "NOT SDL_DISABLE_INSTALL" ON)
-cmake_dependent_option(SDL_DISABLE_INSTALL_DOCS "Install docs for SDL3" ON "NOT SDL_DISABLE_INSTALL;NOT SDL_FRAMEWORK" ON)
-set_option(SDL_DISABLE_UNINSTALL   "Disable uninstallation of SDL3" OFF)
+set_option(SDL_INSTALL             "Enable installation of SDL3" ${SDL3_MAINPROJECT})
+cmake_dependent_option(SDL_INSTALL_CPACK "Create binary SDL3 archive using CPack" ${SDL3_MAINPROJECT} "SDL_INSTALL" ON)
+cmake_dependent_option(SDL_INSTALL_DOCS "Install docs for SDL3" OFF "SDL_INSTALL;NOT SDL_FRAMEWORK" ON)
+set_option(SDL_UNINSTALL           "Enable uninstallation of SDL3" ${SDL3_MAINPROJECT})
 cmake_dependent_option(SDL_PRESEED "Preseed CMake cache to speed up configuration" ON "${SDL_PRESEED_AVAILABLE}" OFF)
-cmake_dependent_option(SDL_RELOCATABLE "Create relocatable SDL package" ${SDL_RELOCATABLE_DEFAULT} "NOT SDL_DISABLE_INSTALL" OFF)
+cmake_dependent_option(SDL_RELOCATABLE "Create relocatable SDL package" ${SDL_RELOCATABLE_DEFAULT} "SDL_INSTALL" OFF)
 
-cmake_dependent_option(SDL_DISABLE_ANDROID_JAR  "Disable creation of SDL3.jar" ${SDL3_SUBPROJECT} "ANDROID" ON)
+cmake_dependent_option(SDL_ANDROID_JAR  "Enable creation of SDL3.jar" ${SDL3_MAINPROJECT} "ANDROID" ON)
 
 option_string(SDL_ASSERTIONS "Enable internal sanity checks (auto/disabled/release/enabled/paranoid)" "auto")
 set_option(SDL_ASSEMBLY            "Enable assembly routines" ${SDL_ASSEMBLY_DEFAULT})
@@ -394,7 +394,7 @@ cmake_dependent_option(SDL_STATIC "Build a static version of the library" ${SDL_
 option(SDL_TEST_LIBRARY   "Build the SDL3_test library" ON)
 
 dep_option(SDL_TESTS           "Build the test directory" OFF SDL_TEST_LIBRARY OFF)
-dep_option(SDL_INSTALL_TESTS   "Install test-cases" OFF "NOT SDL_DISABLE_INSTALL;NOT SDL_FRAMEWORK" OFF)
+dep_option(SDL_INSTALL_TESTS   "Install test-cases" OFF "SDL_INSTALL;NOT SDL_FRAMEWORK" OFF)
 dep_option(SDL_TESTS_LINK_SHARED "link tests to shared SDL library" "${SDL_SHARED}" "SDL_SHARED;SDL_STATIC" "${SDL_SHARED}")
 set(SDL_TESTS_TIMEOUT_MULTIPLIER "1" CACHE STRING "Timeout multiplier to account for really slow machines")
 
@@ -1419,7 +1419,7 @@ if(ANDROID)
     set(HAVE_CLOCK_GETTIME 1)
   endif()
 
-  if(NOT SDL_DISABLE_ANDROID_JAR)
+  if(SDL_ANDROID_JAR)
     find_package(Java)
     find_package(SdlAndroidPlatform MODULE)
 
@@ -1449,7 +1449,7 @@ if(ANDROID)
         DEPENDS ${SDL_JAVA_SOURCES}
       )
       add_custom_target(SDL3-javasources ALL DEPENDS "${javasourcesjar}")
-      if(NOT SDL_DISABLE_INSTALL_DOCS)
+      if(SDL_INSTALL_DOCS)
         set(javadocdir "${SDL3_BINARY_DIR}/docs/javadoc")
         set(javadocjar "${SDL3_BINARY_DIR}/SDL3-${SDL3_VERSION}-javadoc.jar")
         set(javadoc_index_html "${javadocdir}/index.html")
@@ -3609,7 +3609,7 @@ if(sdl_cmake_modules)
   execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different ${sdl_cmake_modules} "${SDL3_BINARY_DIR}")
 endif()
 
-if(NOT SDL_DISABLE_INSTALL)
+if(SDL_INSTALL)
 
   ##### sdl3.pc #####
   configure_sdl3_pc()
@@ -3709,7 +3709,7 @@ if(NOT SDL_DISABLE_INSTALL)
     install(FILES "LICENSE.txt" DESTINATION "${SDL_INSTALL_LICENSEDIR}")
   endif()
 
-  if(NOT SDL_DISABLE_INSTALL_CPACK)
+  if(SDL_INSTALL_CPACK)
     if(SDL_FRAMEWORK)
       set(CPACK_GENERATOR "DragNDrop")
     elseif(MSVC)
@@ -3750,7 +3750,7 @@ if(NOT SDL_DISABLE_INSTALL)
     endif()
   endif()
 
-  if(NOT SDL_DISABLE_INSTALL_DOCS)
+  if(SDL_INSTALL_DOCS)
     SDL_generate_manpages(
       HEADERS_DIR "${PROJECT_SOURCE_DIR}/include/SDL3"
       SYMBOL "SDL_Init"
@@ -3767,7 +3767,7 @@ endif()
 
 ##### Uninstall target #####
 
-if(NOT SDL_DISABLE_UNINSTALL)
+if(SDL_UNINSTALL)
   if(NOT TARGET uninstall)
     configure_file(cmake/cmake_uninstall.cmake.in cmake_uninstall.cmake IMMEDIATE @ONLY)
 
diff --git a/docs/README-cmake.md b/docs/README-cmake.md
index ef5ce53cbfdc6..6dac209b81410 100644
--- a/docs/README-cmake.md
+++ b/docs/README-cmake.md
@@ -131,6 +131,13 @@ Exceptions exist:
 - some platforms don't support dynamic libraries, so only `-DSDL_STATIC=ON` makes sense.
 - a static Apple framework is not supported
 
+### Man pages
+
+Configuring with `-DSDL_INSTALL_DOCS=TRUE` installs man pages.
+
+We recommend package managers of unix distributions to install SDL3's man pages.
+This adds an extra build-time dependency on Perl.
+
 ### Pass custom compile options to the compiler
 
 - Use [`CMAKE_<LANG>_FLAGS`](https://cmake.org/cmake/help/latest/variable/CMAKE_LANG_FLAGS.html) to pass extra