nixpkgs/pkgs/applications/misc/icesl/default.nix
Emily fbda1dbfd6 treewide: replace freeglut with libglut
Allow the macOS GLUT framework to be used automatically in many
cases. Packages that specifically search for freeglut or require its
additional APIs should still explicitly depend on it.

Deliberately skip the Haskell package set, which is mostly
automatically generated, and mupdf, which has its own fork of freeglut.
2024-06-22 18:06:51 +01:00

46 lines
1.7 KiB
Nix

{ stdenv, lib, fetchzip, libglut, libXmu, libXi, libX11, libICE, libGLU, libGL, libSM
, libXext, glibc, lua, luabind, glfw, libgccjit, dialog, makeWrapper
}:
let
lpath = lib.makeLibraryPath [ libXmu libXi libX11 libglut libICE libGLU libGL libSM libXext glibc lua glfw luabind libgccjit ];
in
stdenv.mkDerivation rec {
pname = "iceSL";
version = "2.4.1";
src = if stdenv.hostPlatform.system == "x86_64-linux" then fetchzip {
url = "https://icesl.loria.fr/assets/other/download.php?build=${version}&os=amd64";
extension = "zip";
sha256 = "0rrnkqkhlsjclif5cjbf17qz64vs95ja49xarxjvq54wb4jhbs4l";
} else if stdenv.hostPlatform.system == "i686-linux" then fetchzip {
url = "https://icesl.loria.fr/assets/other/download.php?build=${version}&os=i386";
extension = "zip";
sha256 = "0n2yyxzw0arkc70f0qli4n5chdlh9vc7aqizk4v7825mcglhwlyh";
} else throw "Unsupported architecture";
nativeBuildInputs = [ makeWrapper ];
installPhase = ''
cp -r ./ $out
rm $out/bin/*.so
mkdir $out/oldbin
mv $out/bin/IceSL-slicer $out/oldbin/IceSL-slicer
runHook postInstall
'';
postInstall = ''
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath "${lpath}" \
$out/oldbin/IceSL-slicer
makeWrapper $out/oldbin/IceSL-slicer $out/bin/icesl --prefix PATH : ${dialog}/bin
'';
meta = with lib; {
description = "GPU-accelerated procedural modeler and slicer for 3D printing";
homepage = "https://icesl.loria.fr/";
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
license = licenses.inria-icesl;
platforms = [ "i686-linux" "x86_64-linux" ];
maintainers = with maintainers; [ mgttlinger ];
};
}