anvil-editor: init at 0.4
[NixPkgs.git] / pkgs / applications / audio / zynaddsubfx / mruby-zest / default.nix
blob7f33e10f742080337d648f98287bc263686fddc9
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , bison
5 , pkg-config
6 , rake
7 , ruby
8 , libGL
9 , libuv
10 , libX11
13 stdenv.mkDerivation rec {
14   pname = "mruby-zest";
15   version = "3.0.6";
17   src = fetchFromGitHub {
18     owner = pname;
19     repo = "${pname}-build";
20     rev = "refs/tags/${version}";
21     fetchSubmodules = true;
22     sha256 = "sha256-rIb6tQimwrUj+623IU5zDyKNWsNYYBElLQClOsP+5Dc=";
23   };
25   patches = [
26     ./force-cxx-as-linker.patch
27   ];
29   nativeBuildInputs = [
30     bison
31     pkg-config
32     rake
33     ruby
34   ];
36   buildInputs = [
37     libGL
38     libuv
39     libX11
40   ];
42   # Force optimization to fix:
43   # warning: #warning _FORTIFY_SOURCE requires compiling with optimization (-O)
44   env.NIX_CFLAGS_COMPILE = "-O3";
46   # Remove pre-built y.tab.c to generate with nixpkgs bison
47   preBuild = ''
48     rm mruby/mrbgems/mruby-compiler/core/y.tab.c
49   '';
51   installTargets = [ "pack" ];
53   postInstall = ''
54     ln -s "$out/zest" "$out/zyn-fusion"
55     cp -a package/{font,libzest.so,schema,zest} "$out"
57     # mruby-widget-lib/src/api.c requires MainWindow.qml as part of a
58     # sanity check, even though qml files are compiled into the binary
59     # https://github.com/mruby-zest/mruby-zest-build/blob/3.0.6/src/mruby-widget-lib/src/api.c#L107-L124
60     # https://github.com/mruby-zest/mruby-zest-build/blob/3.0.6/linux-pack.sh#L17-L18
61     mkdir -p "$out/qml"
62     touch "$out/qml/MainWindow.qml"
63   '';
65   meta = with lib; {
66     description = "Zest Framework used in ZynAddSubFX's UI";
67     homepage = "https://github.com/mruby-zest";
68     license = licenses.lgpl21Plus;
69     maintainers = with maintainers; [ kira-bruneau ];
70     platforms = platforms.all;
71   };