ripasso-cursive: cosmetic changes (#361736)
[NixPkgs.git] / pkgs / by-name / mi / minimacy / package.nix
blob6f4d14b2790156b52fb762071c1d779897346f9d
1 { lib
2 , stdenv
3 , alsa-lib
4 , fetchFromGitHub
5 , libGL
6 , libGLU
7 , libX11
8 , libXext
9 , makeBinaryWrapper
12 stdenv.mkDerivation rec {
13   pname = "minimacy";
14   version = "1.2.0";
16   src = fetchFromGitHub {
17     owner = "ambermind";
18     repo = pname;
19     rev =  version;
20     hash = "sha256-uA+4dnhOnv7qRE7nqew8a14DGaQblsMY2uBZ+iyLtFU=";
21   };
23   nativeBuildInputs = [ makeBinaryWrapper ];
25   buildInputs = [ libGL libGLU ] ++ lib.optionals stdenv.hostPlatform.isLinux [ alsa-lib libX11 libXext ];
27   enableParallelBuilding = true;
29   env.NIX_CFLAGS_COMPILE = "-Wno-unused-result";
31   preBuild = ''
32     pushd ${if stdenv.hostPlatform.isDarwin then "macos/cmdline" else "unix"}
33   '';
35   # TODO: build graphic version for darwin
36   buildFlags = (if stdenv.hostPlatform.isDarwin then [ "nox" ] else [ "all" ]) ++ [ "CC=${stdenv.cc.targetPrefix}cc" ];
38   postBuild = ''
39     popd
40   '';
42   doCheck = true;
44   checkPhase = ''
45     runHook preCheck
47     bin/${if stdenv.hostPlatform.isDarwin then "minimacyMac" else "minimacy"} system/demo/demo.fun.mandelbrot.mcy
49     runHook postCheck
50   '';
52   installPhase = ''
53     runHook preInstall
55     mkdir -p $out/lib/minimacy
56     cp -r {README.md,LICENSE,system,rom,topLevel.mcy} $out/lib/minimacy
57     install bin/minimacy* -Dt $out/bin
59     runHook postInstall
60   '';
62   postFixup = ''
63     for prog in $out/bin/minimacy*;
64       do wrapProgram $prog \
65         --set MINIMACY $out/lib/minimacy
66       done
67   '';
69   meta = {
70     description = "Open-source minimalist computing technology";
71     longDescription = ''
72       Minimacy is an open-source minimalist computation system based on the principle "Less is more".
73       It is designed and programmed by Sylvain Huet.
74     '';
75     maintainers = with lib.maintainers; [ jboy ];
76     homepage    = "https://minimacy.net";
77     license     = lib.licenses.gpl2;
78     platforms   = lib.platforms.linux ++ lib.platforms.darwin;
79   };