1{ stdenv, file, makeDesktopItem, cog32, spur32, spur64 ? "none" }:
2
3stdenv.mkDerivation rec {
4 name = "pharo";
5 src = ./.;
6 inherit cog32 spur32 spur64 file;
7 magic = ./magic;
8 desktopItem = makeDesktopItem {
9 inherit name;
10 desktopName = "Pharo VM";
11 genericName = "Pharo Virtual Machine";
12 exec = "pharo %F";
13 icon = "pharo";
14 terminal = "false";
15 type="Application";
16 startupNotify = "false";
17 categories = "Development;";
18 mimeType = "application/x-pharo-image";
19 };
20 buildPhase = ''
21 substituteAllInPlace ./pharo-vm.sh
22 '';
23 installPhase = ''
24 mkdir -p $out/bin
25 cp pharo-vm.sh $out/bin/pharo
26 chmod +x $out/bin/pharo
27 '';
28 meta = {
29 description = "Pharo virtual machine (multiple variants)";
30
31 longDescription = ''
32 Pharo's goal is to deliver a clean, innovative, free open-source
33 Smalltalk-inspired environment. By providing a stable and small core
34 system, excellent dev tools, and maintained releases, Pharo is an
35 attractive platform to build and deploy mission critical applications.
36
37 This package provides a front-end for starting the virtual
38 machine. The command 'pharo-vm' automatically detects the type
39 of image and executes a suitable virtual machine: CogV3, Spur,
40 or Spur64. This makes it easy to open Pharo images because you
41 do not have to worry about which virtual machine variant is
42 required.
43
44 More about the Cog family of virtual machines:
45 http://www.mirandabanda.org/cogblog/about-cog/
46 '';
47
48 homepage = http://pharo.org;
49 license = stdenv.lib.licenses.mit;
50 maintainers = [ stdenv.lib.maintainers.lukego ];
51 # Pharo VM sources are packaged separately for darwin (OS X)
52 platforms = with stdenv.lib;
53 intersectLists
54 platforms.mesaPlatforms
55 (subtractLists platforms.darwin platforms.unix);
56 };
57}
58