Skip to content

Commit

Permalink
Merge pull request #242621 from OPNA2608/darwin/wildmidi
Browse files Browse the repository at this point in the history
wildmidi: Enable on Darwin & refactor config, gst-plugins-bad: enable wildmidi on Darwin
  • Loading branch information
lilyinstarlight committed Jul 16, 2023
2 parents 034c385 + da2c4c3 commit 7c2092f
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 14 deletions.
5 changes: 1 addition & 4 deletions pkgs/development/libraries/gstreamer/bad/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -192,6 +192,7 @@ stdenv.mkDerivation rec {
libfreeaptx
zxing-cpp
usrsctp
wildmidi
] ++ lib.optionals opencvSupport [
opencv4
] ++ lib.optionals enableZbar [
Expand All @@ -212,9 +213,6 @@ stdenv.mkDerivation rec {
wayland
wayland-protocols
] ++ lib.optionals (!stdenv.isDarwin) [
# wildmidi requires apple's OpenAL
# TODO: package apple's OpenAL, fix wildmidi, include on Darwin
wildmidi
# TODO: mjpegtools uint64_t is not compatible with guint64 on Darwin
mjpegtools

Expand Down Expand Up @@ -318,7 +316,6 @@ stdenv.mkDerivation rec {
"-Duvch264=disabled" # requires gudev
"-Dv4l2codecs=disabled" # requires gudev
"-Dladspa=disabled" # requires lrdf
"-Dwildmidi=disabled" # see dependencies above
] ++ lib.optionals (!stdenv.isLinux || !stdenv.isx86_64) [
"-Dqsv=disabled" # Linux (and Windows) x86 only
] ++ lib.optionals (!gst-plugins-base.glEnabled) [
Expand Down
34 changes: 25 additions & 9 deletions pkgs/development/libraries/wildmidi/default.nix
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
{ lib, stdenv, fetchFromGitHub, cmake, alsa-lib, freepats }:
{ lib, stdenv, fetchFromGitHub, writeTextFile, cmake, alsa-lib, OpenAL, freepats }:

let
defaultCfgPath = "${placeholder "out"}/etc/wildmidi/wildmidi.cfg";
in
stdenv.mkDerivation rec {
pname = "wildmidi";
version = "0.4.5";
Expand All @@ -13,21 +16,34 @@ stdenv.mkDerivation rec {

nativeBuildInputs = [ cmake ];

buildInputs = [ alsa-lib stdenv.cc.libc/*couldn't find libm*/ ];
buildInputs = lib.optionals stdenv.buildPlatform.isLinux [
alsa-lib stdenv.cc.libc/*couldn't find libm*/
] ++ lib.optionals stdenv.buildPlatform.isDarwin [
OpenAL
];

preConfigure = ''
substituteInPlace CMakeLists.txt \
--replace /etc/wildmidi $out/etc
# https://github.com/Mindwerks/wildmidi/issues/236
substituteInPlace src/wildmidi.pc.in \
--replace '$'{exec_prefix}/@CMAKE_INSTALL_LIBDIR@ @CMAKE_INSTALL_FULL_LIBDIR@ \
--replace '$'{exec_prefix}/@CMAKE_INSTALL_INCLUDEDIR@ @CMAKE_INSTALL_FULL_INCLUDEDIR@
'';

postInstall = ''
mkdir "$out"/etc
echo "dir ${freepats}" > "$out"/etc/wildmidi.cfg
echo "source ${freepats}/freepats.cfg" >> "$out"/etc/wildmidi.cfg
cmakeFlags = [
"-DWILDMIDI_CFG=${defaultCfgPath}"
];

postInstall = let
defaultCfg = writeTextFile {
name = "wildmidi.cfg";
text = ''
dir ${freepats}
source ${freepats}/freepats.cfg
'';
};
in ''
mkdir -p "$(dirname ${defaultCfgPath})"
ln -s ${defaultCfg} ${defaultCfgPath}
'';

meta = with lib; {
Expand All @@ -39,7 +55,7 @@ stdenv.mkDerivation rec {
homepage = "https://wildmidi.sourceforge.net/";
# The library is LGPLv3, the wildmidi executable is GPLv3
license = licenses.lgpl3;
platforms = platforms.linux;
platforms = platforms.unix;
maintainers = [ maintainers.bjornfor ];
};
}
4 changes: 3 additions & 1 deletion pkgs/top-level/all-packages.nix
Original file line number Diff line number Diff line change
Expand Up @@ -25137,7 +25137,9 @@ with pkgs;

whereami = callPackage ../development/libraries/whereami { };

wildmidi = callPackage ../development/libraries/wildmidi { };
wildmidi = callPackage ../development/libraries/wildmidi {
inherit (darwin.apple_sdk.frameworks) OpenAL;
};

wiredtiger = callPackage ../development/libraries/wiredtiger { };

Expand Down

0 comments on commit 7c2092f

Please sign in to comment.