SDL_net: cmake: don't create relocatable packages by default with non-MSVC toolchains

From 644bf413119be2781bbf938f8af245a092df28df Mon Sep 17 00:00:00 2001
From: Anonymous Maarten <[EMAIL REDACTED]>
Date: Sat, 28 Dec 2024 02:15:21 +0100
Subject: [PATCH] cmake: don't create relocatable packages by default with
 non-MSVC toolchains

---
 CMakeLists.txt                  | 11 ++++++++---
 build-scripts/release-info.json |  2 ++
 2 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6b0d7c8..922e067 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -76,6 +76,7 @@ cmake_dependent_option(BUILD_SHARED_LIBS "Build the library as a shared library"
 
 cmake_dependent_option(SDLNET_INSTALL "Enable SDL3_net install target" ${SDLNET_ROOTPROJECT} "${sdl3net_install_enableable}" OFF)
 cmake_dependent_option(SDLNET_INSTALL_MAN "Install man pages for SDL3_net" OFF "SDLNET_INSTALL" OFF)
+cmake_dependent_option(SDLNET_RELOCATABLE "Create relocatable SDL_net package" "${MSVC}" SDLNET_INSTALL OFF)
 option(SDLNET_WERROR "Treat warnings as errors" OFF)
 
 option(SDLNET_SAMPLES "Build the SDL3_net sample program(s)" ${SDLNET_SAMPLES_DEFAULT})
@@ -233,9 +234,13 @@ if(SDLNET_INSTALL)
         COMPONENT devel
     )
 
-    file(RELATIVE_PATH SDL_PATH_PREFIX_RELATIVE_TO_PKGCONFIG "${CMAKE_INSTALL_PREFIX}/${SDLNET_PKGCONFIG_INSTALLDIR}" "${CMAKE_INSTALL_PREFIX}")
-    string(REGEX REPLACE "[/]+$" "" SDL_PATH_PREFIX_RELATIVE_TO_PKGCONFIG "${SDL_PATH_PREFIX_RELATIVE_TO_PKGCONFIG}")
-    set(SDL_PKGCONFIG_PREFIX "\${pcfiledir}/${SDL_PATH_PREFIX_RELATIVE_TO_PKGCONFIG}")
+    if(SDLNET_RELOCATABLE)
+        file(RELATIVE_PATH SDL_PATH_PREFIX_RELATIVE_TO_PKGCONFIG "${CMAKE_INSTALL_PREFIX}/${SDLNET_PKGCONFIG_INSTALLDIR}" "${CMAKE_INSTALL_PREFIX}")
+        string(REGEX REPLACE "[/]+$" "" SDL_PATH_PREFIX_RELATIVE_TO_PKGCONFIG "${SDL_PATH_PREFIX_RELATIVE_TO_PKGCONFIG}")
+        set(SDL_PKGCONFIG_PREFIX "\${pcfiledir}/${SDL_PATH_PREFIX_RELATIVE_TO_PKGCONFIG}")
+    else()
+        set(SDL_PKGCONFIG_PREFIX "${CMAKE_PREFIX_PATH}")
+    endif()
 
     string(JOIN " " PC_REQUIRES ${PC_REQUIRES})
     string(JOIN " " PC_LIBS ${PC_LIBS})
diff --git a/build-scripts/release-info.json b/build-scripts/release-info.json
index 931c3af..bbb967d 100644
--- a/build-scripts/release-info.json
+++ b/build-scripts/release-info.json
@@ -35,6 +35,7 @@
       "archs": ["x86", "x64"],
       "args": [
         "-DBUILD_SHARED_LIBS=ON",
+        "-DSDLNET_RELOCATABLE=ON",
         "-DSDLNET_SAMPLES=OFF",
         "-DSDLNET_INSTALL=ON",
         "-DSDLNET_INSTALL_MAN=OFF"
@@ -87,6 +88,7 @@
       ],
       "args": [
         "-DBUILD_SHARED_LIBS=ON",
+        "-DSDLNET_RELOCATABLE=ON",
         "-DSDLNET_SAMPLES=OFF",
         "-DSDLNET_INSTALL=ON",
         "-DSDLNET_INSTALL_MAN=OFF"