unigine-superposition: init at 1.1 (#163820)

Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
main
barinov274 2 years ago committed by GitHub
parent 5d0af57b93
commit cc7594a705
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 146
      pkgs/applications/graphics/unigine-superposition/default.nix
  2. 2
      pkgs/top-level/all-packages.nix

@ -0,0 +1,146 @@
{ lib
, glib
, stdenv
, dbus
, freetype
, fontconfig
, zlib
, qtquickcontrols2
, libXinerama
, libxcb
, libSM
, libXi
, libglvnd
, libXext
, libXrandr
, mailspring
, libX11
, libICE
, libXrender
, autoPatchelfHook
, makeWrapper
, mkDerivation
, xkeyboard_config
, fetchurl
, buildFHSUserEnv
, openal
, makeDesktopItem
}:
let
superposition = stdenv.mkDerivation rec{
pname = "unigine-superposition";
version = "1.1";
src = fetchurl {
url = "https://assets.unigine.com/d/Unigine_Superposition-${version}.run";
sha256 = "12hzlz792pf8pvxf13fww3qhahqzwzkxq9q3mq20hbhvaphbg7nd";
};
nativeBuildInputs = [
autoPatchelfHook
makeWrapper
];
buildInputs = [
glib
stdenv.cc.cc
dbus
freetype
fontconfig
zlib
qtquickcontrols2
libXinerama
libxcb
libSM
libXi
libglvnd
libXext
libXrandr
mailspring
libX11
libICE
libXrender
];
installPhase = ''
bash $src --target $name --noexec
mkdir -p $out/bin $out/lib/unigine/superposition/
cp -r $name/* $out/lib/unigine/superposition/
echo "exec $out/lib/unigine/superposition/Superposition" >> $out/bin/superposition
chmod +x $out/bin/superposition
wrapProgram $out/lib/unigine/superposition/Superposition \
--set QT_XKB_CONFIG_ROOT ${xkeyboard_config} \
--run "cd $out/lib/unigine/superposition/"
'';
dontUnpack = true;
dontWrapQtApps = true;
postPatchMkspecs = ''
cp -f $name/bin/superposition $out/lib/unigine/superposition/bin/superposition
'';
};
desktopItem = makeDesktopItem {
name = "Superposition";
exec = "Superposition";
genericName = "A GPU Stress test tool from the UNIGINE";
icon = "Superposition";
desktopName = "Superposition Benchmark";
};
in
# We can patch the "/bin/superposition", but "/bin/launcher" checks it for changes.
# For that we need use a buildFHSUserEnv.
buildFHSUserEnv {
name = "Superposition";
targetPkgs = pkgs: [
superposition
glib
stdenv.cc.cc
dbus
freetype
fontconfig
zlib
qtquickcontrols2
libXinerama
libxcb
libSM
libXi
libglvnd
libXext
libXrandr
mailspring
libX11
libICE
libXrender
openal
];
runScript = "superposition";
extraInstallCommands = ''
# create directories
mkdir -p $out/share/icons/hicolor $out/share/applications
# create .desktop file
ln -s ${desktopItem}/share/applications/* $out/share/applications
# install Superposition.desktop and icon
cp ${superposition}/lib/unigine/superposition/Superposition.png $out/share/icons/
for RES in 16 24 32 48 64 128 256; do
mkdir -p $out/share/icons/hicolor/"$RES"x"$RES"/apps
cp ${superposition}/lib/unigine/superposition/icons/superposition_icon_$RES.png $out/share/icons/hicolor/"$RES"x"$RES"/apps/Superposition.png
done
'';
meta = {
description = "The Unigine Superposition GPU benchmarking tool";
homepage = "https://benchmark.unigine.com/superposition";
license = lib.licenses.unfree;
maintainers = [ lib.maintainers.BarinovMaxim ];
platforms = [ "x86_64-linux" ];
};
}

@ -29698,6 +29698,8 @@ with pkgs;
unigine-heaven = callPackage ../applications/graphics/unigine-heaven { };
unigine-superposition = libsForQt5.callPackage ../applications/graphics/unigine-superposition { };
unipicker = callPackage ../applications/misc/unipicker { };
unison = callPackage ../applications/networking/sync/unison {

Loading…
Cancel
Save