sdl2-compat: add setup hook and minor fixes (#388079)

This commit is contained in:
K900
2025-03-14 10:18:58 +03:00
committed by GitHub
3 changed files with 48 additions and 10 deletions
@@ -0,0 +1,31 @@
diff --git a/SDL2Config.cmake.in b/SDL2Config.cmake.in
index 80c1b99..54f50e6 100644
--- a/SDL2Config.cmake.in
+++ b/SDL2Config.cmake.in
@@ -45,7 +45,8 @@ endif()
set(SDL2_PREFIX "@PACKAGE_CMAKE_INSTALL_PREFIX@")
set(SDL2_EXEC_PREFIX "@PACKAGE_CMAKE_INSTALL_PREFIX@")
set(SDL2_INCLUDE_DIR "@PACKAGE_CMAKE_INSTALL_FULL_INCLUDEDIR@/SDL2")
-set(SDL2_INCLUDE_DIRS "@PACKAGE_CMAKE_INSTALL_FULL_INCLUDEDIR@;@PACKAGE_CMAKE_INSTALL_FULL_INCLUDEDIR@/SDL2")
+set(SDL2_INCLUDE_DIRS "@PACKAGE_CMAKE_INSTALL_FULL_INCLUDEDIR@;@PACKAGE_CMAKE_INSTALL_FULL_INCLUDEDIR@/SDL2" $ENV{SDL2_PATH})
+separate_arguments(SDL2_INCLUDE_DIRS)
set(SDL2_BINDIR "@PACKAGE_CMAKE_INSTALL_FULL_BINDIR@")
set(SDL2_LIBDIR "@PACKAGE_CMAKE_INSTALL_FULL_LIBDIR@")
set(SDL2_LIBRARIES SDL2::SDL2)
diff --git a/sdl2-config.in b/sdl2-config.in
index d21b1b2..bb0d624 100644
--- a/sdl2-config.in
+++ b/sdl2-config.in
@@ -50,7 +50,11 @@ while test $# -gt 0; do
echo @PROJECT_VERSION@
;;
--cflags)
- echo -I${includedir}/SDL2 @SDL_CFLAGS@
+ SDL_CFLAGS=""
+ for i in @includedir@/SDL2 $SDL2_PATH; do
+ SDL_CFLAGS="$SDL_CFLAGS -I$i"
+ done
+ echo $SDL_CFLAGS @SDL_CFLAGS@
;;
@ENABLE_SHARED_TRUE@ --libs)
@ENABLE_SHARED_TRUE@ echo -L${libdir} @SDL_RLD_FLAGS@ @SDL_LIBS@
+10 -10
View File
@@ -44,21 +44,21 @@ stdenv.mkDerivation (finalAttrs: {
outputBin = "dev";
# SDL3 is dlopened at runtime, leave it in runpath
dontPatchELF = true;
cmakeFlags = [
(lib.cmakeBool "SDL2COMPAT_TESTS" finalAttrs.finalPackage.doCheck)
(lib.cmakeFeature "CMAKE_INSTALL_RPATH" (lib.makeLibraryPath [ sdl3 ]))
];
# skip timing-based tests as those are flaky
env.SDL_TESTS_QUICK = 1;
doCheck = testSupport && stdenv.buildPlatform.canExecute stdenv.hostPlatform;
postFixup =
if stdenv.hostPlatform.isDarwin then
''
install_name_tool -add_rpath ${lib.makeLibraryPath [ sdl3 ]} $out/lib/libSDL2.dylib
''
else
''
patchelf --add-rpath ${lib.makeLibraryPath [ sdl3 ]} $out/lib/libSDL2.so
'';
patches = [ ./find-headers.patch ];
setupHook = ./setup-hook.sh;
passthru = {
tests =
@@ -92,7 +92,7 @@ stdenv.mkDerivation (finalAttrs: {
changelog = "https://github.com/libsdl-org/sdl2-compat/releases/tag/${finalAttrs.src.tag}";
license = lib.licenses.zlib;
maintainers = with lib.maintainers; [ nadiaholmquist ];
platforms = lib.platforms.unix;
platforms = lib.platforms.all;
pkgConfigModules = [ "sdl2_compat" ];
};
})
@@ -0,0 +1,7 @@
addSDL2Path () {
if [ -e "$1/include/SDL2" ]; then
export SDL2_PATH="${SDL2_PATH-}${SDL2_PATH:+ }$1/include/SDL2"
fi
}
addEnvHooks "$hostOffset" addSDL2Path