{ stdenv , lib , fetchFromGitHub , unstableGitUpdater , pkg-config , glfw , libvgm , libX11 , libXau , libXdmcp , Carbon , Cocoa , cppunit }: stdenv.mkDerivation rec { pname = "mmlgui"; version = "unstable-2022-09-15"; src = fetchFromGitHub { owner = "superctr"; repo = "mmlgui"; rev = "163cc73a7c009d524b0d5aff94f9ed47fe19e3ce"; fetchSubmodules = true; sha256 = "kKo3ge2wcDK2xU1YCfEwyqw84N+3jcbOEEsJHSpMpzY="; }; postPatch = '' # Actually wants pkgconf but that seems abit broken: # https://github.com/NixOS/nixpkgs/pull/147503#issuecomment-1055943897 # Removing a pkgconf-specific option makes it work with pkg-config substituteInPlace libvgm.mak \ --replace '--with-path=/usr/local/lib/pkgconfig' "" substituteInPlace Makefile \ --replace 'all: $(MMLGUI_BIN) test' 'all: $(MMLGUI_BIN)' ''; nativeBuildInputs = [ pkg-config ]; buildInputs = [ glfw libvgm ] ++ lib.optionals stdenv.hostPlatform.isLinux [ libX11 libXau libXdmcp ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ Carbon Cocoa ]; checkInputs = [ cppunit ]; makeFlags = [ "RELEASE=1" ]; enableParallelBuilding = true; doCheck = true; installPhase = '' runHook preInstall install -Dm755 {,$out/}bin/mmlgui mkdir -p $out/share/ctrmml mv ctrmml/sample $out/share/ctrmml/ runHook postInstall ''; passthru.updateScript = unstableGitUpdater { url = "https://github.com/superctr/mmlgui.git"; }; meta = with lib; { homepage = "https://github.com/superctr/mmlgui"; description = "MML (Music Macro Language) editor and compiler GUI, powered by the ctrmml framework"; license = licenses.gpl2Only; maintainers = with maintainers; [ OPNA2608 ]; platforms = platforms.all; }; }