sdl2-compat: add setup hook and minor fixes (#388079)
This commit is contained in:
@@ -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@
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user