nixpkgs-immich/pkgs/applications/audio/zynaddsubfx/mruby-zest/default.nix
2024-09-17 10:23:40 -06:00

73 lines
1.6 KiB
Nix

{ lib
, stdenv
, fetchFromGitHub
, bison
, pkg-config
, rake
, ruby
, libGL
, libuv
, libX11
}:
stdenv.mkDerivation rec {
pname = "mruby-zest";
version = "3.0.6";
src = fetchFromGitHub {
owner = pname;
repo = "${pname}-build";
rev = "refs/tags/${version}";
fetchSubmodules = true;
sha256 = "sha256-rIb6tQimwrUj+623IU5zDyKNWsNYYBElLQClOsP+5Dc=";
};
patches = [
./force-cxx-as-linker.patch
];
nativeBuildInputs = [
bison
pkg-config
rake
ruby
];
buildInputs = [
libGL
libuv
libX11
];
# Force optimization to fix:
# warning: #warning _FORTIFY_SOURCE requires compiling with optimization (-O)
env.NIX_CFLAGS_COMPILE = "-O3";
# Remove pre-built y.tab.c to generate with nixpkgs bison
preBuild = ''
rm mruby/mrbgems/mruby-compiler/core/y.tab.c
'';
installTargets = [ "pack" ];
postInstall = ''
ln -s "$out/zest" "$out/zyn-fusion"
cp -a package/{font,libzest.so,schema,zest} "$out"
# mruby-widget-lib/src/api.c requires MainWindow.qml as part of a
# sanity check, even though qml files are compiled into the binary
# https://github.com/mruby-zest/mruby-zest-build/blob/3.0.6/src/mruby-widget-lib/src/api.c#L107-L124
# https://github.com/mruby-zest/mruby-zest-build/blob/3.0.6/linux-pack.sh#L17-L18
mkdir -p "$out/qml"
touch "$out/qml/MainWindow.qml"
'';
meta = with lib; {
description = "Zest Framework used in ZynAddSubFX's UI";
homepage = "https://github.com/mruby-zest";
license = licenses.lgpl21Plus;
maintainers = with maintainers; [ kira-bruneau ];
platforms = platforms.all;
};
}