fluffychat: 1.22.1 -> 1.23.0 (#364091)
[NixPkgs.git] / pkgs / by-name / ma / mars-mips / package.nix
blob3de083a98317af9f89e54b26e37fcd9a114a927c
2   lib,
3   stdenv,
4   fetchurl,
5   makeBinaryWrapper,
6   copyDesktopItems,
7   makeDesktopItem,
8   desktopToDarwinBundle,
9   unzip,
10   imagemagick,
11   jre,
14 stdenv.mkDerivation (finalAttrs: {
15   pname = "mars-mips";
16   version = "4.5";
18   src = fetchurl {
19     url = "https://courses.missouristate.edu/KenVollmar/MARS/MARS_${
20       lib.replaceStrings [ "." ] [ "_" ] finalAttrs.version
21     }_Aug2014/Mars${lib.replaceStrings [ "." ] [ "_" ] finalAttrs.version}.jar";
22     hash = "sha256-rDQLZ2uitiJGud935i+BrURHvP0ymrU5cWvNCZULcJY=";
23   };
25   dontUnpack = true;
27   nativeBuildInputs =
28     [
29       makeBinaryWrapper
30       copyDesktopItems
31       unzip
32       imagemagick
33     ]
34     ++ lib.optionals stdenv.hostPlatform.isDarwin [
35       desktopToDarwinBundle
36     ];
38   desktopItems = [
39     (makeDesktopItem {
40       name = "mars";
41       desktopName = "MARS";
42       exec = "Mars";
43       icon = "mars";
44       comment = finalAttrs.meta.description;
45       categories = [
46         "Development"
47         "IDE"
48       ];
49     })
50   ];
52   installPhase = ''
53     runHook preInstall
55     export JAR=$out/share/java/mars/Mars.jar
56     install -Dm444 $src $JAR
57     makeWrapper ${jre}/bin/java $out/bin/Mars \
58       --add-flags "-jar $JAR"
60     unzip $src images/MarsThumbnail.gif
61     for size in 16 24 32 48 64 128 256 512
62     do
63       mkdir -p $out/share/icons/hicolor/"$size"x"$size"/apps
64       convert -resize "$size"x"$size" images/MarsThumbnail.gif $out/share/icons/hicolor/"$size"x"$size"/apps/mars.png
65     done
67     runHook postInstall
68   '';
70   meta = {
71     description = "An IDE for programming in MIPS assembly language intended for educational-level use";
72     mainProgram = "Mars";
73     homepage = "https://courses.missouristate.edu/KenVollmar/MARS/";
74     sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
75     license = lib.licenses.mit;
76     maintainers = with lib.maintainers; [ emilytrau ];
77     platforms = lib.platforms.all;
78   };