biome: 1.9.2 -> 1.9.3 (#349335)
[NixPkgs.git] / pkgs / applications / graphics / unigine-heaven / default.nix
blob96492ef9e61aa4893c83b83b1c4d54d11be3f179
1 { lib
2 , stdenv
3 , fetchurl
4 , makeWrapper
5 , libX11
6 , libXext
7 , libXrandr
8 , freetype
9 , fontconfig
10 , libXrender
11 , libXinerama
12 , autoPatchelfHook
13 , libglvnd
14 , openal
15 , imagemagick
16 , makeDesktopItem
18 let
19   version = "4.0";
21   arch =
22     if stdenv.hostPlatform.system == "x86_64-linux" then
23       "x64"
24     else if stdenv.hostPlatform.system == "i686-linux" then
25       "x86"
26     else
27       throw "Unsupported platform ${stdenv.hostPlatform.system}";
29   desktopItem = makeDesktopItem {
30     name = "Heaven";
31     exec = "heaven";
32     genericName = "A GPU Stress test tool from the UNIGINE";
33     icon = "Heaven";
34     desktopName = "Heaven Benchmark";
35   };
37 stdenv.mkDerivation
39   pname = "unigine-heaven";
40   inherit version;
42   src = fetchurl {
43     url = "https://assets.unigine.com/d/Unigine_Heaven-${version}.run";
44     sha256 = "19rndwwxnb9k2nw9h004hyrmr419471s0fp25yzvvc6rkd521c0v";
45   };
47   installPhase =
48     ''
49       sh $src --target $name
51       mkdir -p $out/lib/unigine/heaven/bin
52       mkdir -p $out/bin
53       mkdir -p $out/share/applications/
54       mkdir -p $out/share/icons/hicolor
56       install -m 0755 $name/bin/browser_${arch} $out/lib/unigine/heaven/bin
57       install -m 0755 $name/bin/libApp{Stereo,Surround,Wall}_${arch}.so $out/lib/unigine/heaven/bin
58       install -m 0755 $name/bin/libGPUMonitor_${arch}.so $out/lib/unigine/heaven/bin
59       install -m 0755 $name/bin/libQt{Core,Gui,Network,WebKit,Xml}Unigine_${arch}.so.4 $out/lib/unigine/heaven/bin
60       install -m 0755 $name/bin/libUnigine_${arch}.so $out/lib/unigine/heaven/bin
61       install -m 0755 $name/bin/heaven_${arch} $out/lib/unigine/heaven/bin
62       install -m 0755 $name/heaven $out/bin/heaven
64       cp -R $name/data $name/documentation $out/lib/unigine/heaven
66       wrapProgram $out/bin/heaven --prefix LD_LIBRARY_PATH : ${libglvnd}/lib:$out/bin:${openal}/lib --run "cd $out/lib/unigine/heaven/"
68       convert $out/lib/unigine/heaven/data/launcher/icon.png -resize 128x128 $out/share/icons/Heaven.png
69       for RES in 16 24 32 48 64 128 256
70       do
71           mkdir -p $out/share/icons/hicolor/"$RES"x"$RES"/apps
72           convert $out/lib/unigine/heaven/data/launcher/icon.png -resize "$RES"x"$RES" $out/share/icons/hicolor/"$RES"x"$RES"/apps/Heaven.png
73       done
75       ln -s ${desktopItem}/share/applications/* $out/share/applications
76     '';
78   nativeBuildInputs =
79     [
80       autoPatchelfHook
81       makeWrapper
82       imagemagick
83     ];
85   buildInputs =
86     [
87       libX11
88       stdenv.cc.cc
89       libXext
90       libXrandr
91       freetype
92       fontconfig
93       libXrender
94       libXinerama
95     ];
97   dontUnpack = true;
99   meta =
100     {
101       description = "Unigine Heaven GPU benchmarking tool";
102       homepage = "https://benchmark.unigine.com/heaven";
103       sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
104       license = lib.licenses.unfree;
105       maintainers = [ lib.maintainers.BarinovMaxim ];
106       platforms = [ "x86_64-linux" "i686-linux" ];
107       mainProgram = "heaven";
108     };