sfml: unvendor miniaudio
Signed-off-by: Marcin Serwin <marcin@serwin.dev>
This commit is contained in:
@@ -6,6 +6,7 @@
|
||||
|
||||
# nativeBuildInputs
|
||||
cmake,
|
||||
pkg-config,
|
||||
|
||||
# buildInputs
|
||||
flac,
|
||||
@@ -13,6 +14,7 @@
|
||||
glew,
|
||||
libjpeg,
|
||||
libvorbis,
|
||||
miniaudio,
|
||||
udev,
|
||||
libXi,
|
||||
libX11,
|
||||
@@ -20,12 +22,6 @@
|
||||
libXrandr,
|
||||
libXrender,
|
||||
xcbutilimage,
|
||||
|
||||
# miniaudio
|
||||
alsa-lib,
|
||||
libjack2,
|
||||
libpulseaudio,
|
||||
sndio,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
@@ -45,15 +41,22 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
url = "https://github.com/SFML/SFML/commit/a87763becbc4672b38f1021418ed94caa0f6540a.patch?full_index=1";
|
||||
hash = "sha256-tJmXTdhwtWq6XfUPBzw47yTrc6EzwmSiVj9n6jQwHig=";
|
||||
})
|
||||
|
||||
# Not upstreamble in the near future, see https://github.com/SFML/SFML/pull/3555
|
||||
./unvendor-miniaudio.patch
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
pkg-config
|
||||
];
|
||||
buildInputs = [
|
||||
flac
|
||||
freetype
|
||||
glew
|
||||
libjpeg
|
||||
libvorbis
|
||||
miniaudio
|
||||
]
|
||||
++ lib.optional stdenv.hostPlatform.isLinux udev
|
||||
++ lib.optionals (!stdenv.hostPlatform.isDarwin) [
|
||||
@@ -65,25 +68,12 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
xcbutilimage
|
||||
];
|
||||
|
||||
# We rely on RUNPATH
|
||||
dontPatchELF = true;
|
||||
|
||||
cmakeFlags = [
|
||||
(lib.cmakeBool "BUILD_SHARED_LIBS" (!stdenv.hostPlatform.isStatic))
|
||||
(lib.cmakeBool "SFML_INSTALL_PKGCONFIG_FILES" true)
|
||||
(lib.cmakeFeature "SFML_MISC_INSTALL_PREFIX" "share/SFML")
|
||||
(lib.cmakeBool "SFML_BUILD_FRAMEWORKS" false)
|
||||
(lib.cmakeBool "SFML_USE_SYSTEM_DEPS" true)
|
||||
|
||||
# FIXME: Unvendor miniaudio and move these deps there
|
||||
(lib.cmakeFeature "CMAKE_INSTALL_RPATH" (
|
||||
lib.makeLibraryPath [
|
||||
alsa-lib
|
||||
libjack2
|
||||
libpulseaudio
|
||||
sndio
|
||||
]
|
||||
))
|
||||
];
|
||||
|
||||
meta = {
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
diff --git a/src/SFML/Audio/CMakeLists.txt b/src/SFML/Audio/CMakeLists.txt
|
||||
index 7567205c..ecbb4ea1 100644
|
||||
--- a/src/SFML/Audio/CMakeLists.txt
|
||||
+++ b/src/SFML/Audio/CMakeLists.txt
|
||||
@@ -10,7 +10,6 @@ set(SRC
|
||||
${INCROOT}/Export.hpp
|
||||
${SRCROOT}/Listener.cpp
|
||||
${INCROOT}/Listener.hpp
|
||||
- ${SRCROOT}/Miniaudio.cpp
|
||||
${SRCROOT}/MiniaudioUtils.hpp
|
||||
${SRCROOT}/MiniaudioUtils.cpp
|
||||
${SRCROOT}/Music.cpp
|
||||
@@ -169,8 +168,10 @@ sfml_add_library(Audio
|
||||
# avoids warnings in vorbisfile.h
|
||||
target_compile_definitions(sfml-audio PRIVATE OV_EXCLUDE_STATIC_CALLBACKS FLAC__NO_DLL)
|
||||
|
||||
-# disable miniaudio features we do not use
|
||||
-target_compile_definitions(sfml-audio PRIVATE MA_NO_MP3 MA_NO_FLAC MA_NO_ENCODING MA_NO_RESOURCE_MANAGER MA_NO_GENERATION)
|
||||
+find_package(PkgConfig REQUIRED)
|
||||
+pkg_check_modules(miniaudio REQUIRED IMPORTED_TARGET miniaudio)
|
||||
+target_link_libraries(sfml-audio PRIVATE PkgConfig::miniaudio)
|
||||
+target_include_directories(sfml-audio SYSTEM PRIVATE "${miniaudio_INCLUDE_DIRS}/miniaudio")
|
||||
|
||||
# use standard fixed-width integer types
|
||||
target_compile_definitions(sfml-audio PRIVATE MA_USE_STDINT)
|
||||
@@ -186,9 +187,6 @@ if(SFML_OS_IOS)
|
||||
target_link_libraries(sfml-audio PRIVATE "-framework Foundation" "-framework CoreFoundation" "-framework CoreAudio" "-framework AudioToolbox" "-framework AVFoundation")
|
||||
endif()
|
||||
|
||||
-# miniaudio sources
|
||||
-target_include_directories(sfml-audio SYSTEM PRIVATE "${PROJECT_SOURCE_DIR}/extlibs/headers/miniaudio")
|
||||
-
|
||||
# minimp3 sources
|
||||
target_include_directories(sfml-audio SYSTEM PRIVATE "${PROJECT_SOURCE_DIR}/extlibs/headers/minimp3")
|
||||
|
||||
Reference in New Issue
Block a user