{ stdenv, file, makeDesktopItem, cog32, spur32, spur64 ? "none" }: stdenv.mkDerivation rec { name = "pharo"; src = ./pharo-vm.sh; inherit cog32 spur32 spur64 file; magic = ./magic; desktopItem = makeDesktopItem { inherit name; desktopName = "Pharo VM"; genericName = "Pharo Virtual Machine"; exec = "pharo %F"; icon = "pharo"; terminal = "false"; type="Application"; startupNotify = "false"; categories = "Development;"; mimeType = "application/x-pharo-image"; }; unpackPhase = '' cp $src ./pharo-vm.sh sourceRoot=$PWD ''; buildPhase = '' substituteAllInPlace ./pharo-vm.sh ''; installPhase = '' mkdir -p $out/bin cp pharo-vm.sh $out/bin/pharo chmod +x $out/bin/pharo ''; meta = { description = "Pharo virtual machine (multiple variants)"; longDescription = '' Pharo's goal is to deliver a clean, innovative, free open-source Smalltalk-inspired environment. By providing a stable and small core system, excellent dev tools, and maintained releases, Pharo is an attractive platform to build and deploy mission critical applications. This package provides a front-end for starting the virtual machine. The command 'pharo-vm' automatically detects the type of image and executes a suitable virtual machine: CogV3, Spur, or Spur64. This makes it easy to open Pharo images because you do not have to worry about which virtual machine variant is required. More about the Cog family of virtual machines: http://www.mirandabanda.org/cogblog/about-cog/ ''; homepage = "http://pharo.org"; license = stdenv.lib.licenses.mit; maintainers = [ stdenv.lib.maintainers.lukego ]; # Pharo VM sources are packaged separately for darwin (OS X) platforms = stdenv.lib.filter (system: with stdenv.lib.systems.elaborate { inherit system; }; isUnix && !isDarwin) stdenv.lib.platforms.mesaPlatforms; }; }