Commit 799d39a3022415f698cb92f44b872c8513d83249

Anonymous Maarten 2022-06-03T23:08:22

Make the sdl2-config script relocatable

diff --git a/CMakeLists.txt b/CMakeLists.txt
index e434a8a..8c512bb 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -2697,6 +2697,7 @@ configure_file("${SDL2_SOURCE_DIR}/include/SDL_revision.h.cmake"
 if(NOT WINDOWS OR CYGWIN OR MINGW)
 
   set(prefix ${CMAKE_INSTALL_PREFIX})
+  file(RELATIVE_PATH bin_prefix_relpath "${CMAKE_INSTALL_FULL_BINDIR}" "${CMAKE_INSTALL_PREFIX}")
 
   set(exec_prefix "\${prefix}")
   set(libdir "\${exec_prefix}/${CMAKE_INSTALL_LIBDIR}")
diff --git a/configure b/configure
index 9d37869..027fa94 100755
--- a/configure
+++ b/configure
@@ -653,6 +653,7 @@ SDL_RLD_FLAGS
 SDL_STATIC_LIBS
 SDL_LIBS
 SDL_CFLAGS
+bin_prefix_relpath
 cmake_prefix_relpath
 INSTALL_SDL2_CONFIG
 LIBUSB_LIBS
@@ -27058,6 +27059,10 @@ eval pkg_cmakedir=$libdir/cmake/SDL2
 cmake_prefix_relpath="$(echo -n "$pkg_cmakedir" | sed -E "s#^$pkg_prefix##" | sed -E "s#[A-Za-z0-9_ .-]+#..#g" )"
 
 
+eval pkg_bindir=$bindir
+bin_prefix_relpath="$(echo -n "pkg_bindir" | sed -E "s#^$pkg_prefix##" | sed -E "s#[A-Za-z0-9_ .-]+#..#g" )"
+
+
 
 
 
diff --git a/configure.ac b/configure.ac
index b81286e..2686db6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -4694,6 +4694,11 @@ eval pkg_cmakedir=$libdir/cmake/SDL2
 cmake_prefix_relpath="$(echo -n "$pkg_cmakedir" | sed -E "s#^$pkg_prefix##" | sed -E "s#[A-Za-z0-9_ .-]+#..#g" )"
 AC_SUBST([cmake_prefix_relpath])
 
+dnl Calculate the location of the prefix, relative to bindir
+eval pkg_bindir=$bindir
+bin_prefix_relpath="$(echo -n "pkg_bindir" | sed -E "s#^$pkg_prefix##" | sed -E "s#[A-Za-z0-9_ .-]+#..#g" )"
+AC_SUBST([bin_prefix_relpath])
+
 dnl Expand the cflags and libraries needed by apps using SDL
 AC_SUBST(SDL_CFLAGS)
 AC_SUBST(SDL_LIBS)
diff --git a/sdl2-config.in b/sdl2-config.in
index 5a2aed2..f6e5a50 100644
--- a/sdl2-config.in
+++ b/sdl2-config.in
@@ -1,6 +1,10 @@
 #!/bin/sh
 
-prefix=@prefix@
+# Get the canonical path of the folder containing this script
+bindir=$(cd -P -- "$(dirname -- "$0")" && printf '%s\n' "$(pwd -P)")
+
+# Calculate the canonical path of the prefix, relative to the folder of this script
+prefix=$(cd -P -- "$bindir/@bin_prefix_relpath@" && printf '%s\n' "$(pwd -P)")
 exec_prefix=@exec_prefix@
 exec_prefix_set=no
 libdir=@libdir@