acr-cli: init at 0.14 (#359508)
[NixPkgs.git] / pkgs / by-name / lo / logisim-evolution / package.nix
blob465360a20238548b79c4871bef6f9e5355b53353
1 { lib
2 , stdenv
3 , fetchurl
4 , jre
5 , makeBinaryWrapper
6 , copyDesktopItems
7 , makeDesktopItem
8 , desktopToDarwinBundle
9 , unzip
12 let
13   icon = fetchurl {
14     url = "https://github.com/logisim-evolution/logisim-evolution/raw/9e0afa3cd6a8bfa75dab61830822cde83c70bb4b/artwork/logisim-evolution-icon.svg";
15     hash = "sha256-DNRimhNFt6jLdjqv7o2cNz38K6XnevxD0rGymym3xBs=";
16   };
18 stdenv.mkDerivation (finalAttrs: {
19   pname = "logisim-evolution";
20   version = "3.8.0";
22   src = fetchurl {
23     url = "https://github.com/logisim-evolution/logisim-evolution/releases/download/v${finalAttrs.version}/logisim-evolution-${finalAttrs.version}-all.jar";
24     hash = "sha256-TFm+fa3CMp0OMhnKBc6cLIWGQbIG/OpOOCG7ea7wbCw=";
25   };
26   dontUnpack = true;
28   nativeBuildInputs = [
29     makeBinaryWrapper
30     copyDesktopItems
31     unzip
32   ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
33     desktopToDarwinBundle
34   ];
36   desktopItems = [
37     (makeDesktopItem {
38       name = "logisim-evolution";
39       desktopName = "Logisim-evolution";
40       exec = "logisim-evolution";
41       icon = "logisim-evolution";
42       comment = finalAttrs.meta.description;
43       categories = [ "Education" ];
44     })
45   ];
47   installPhase = ''
48     runHook preInstall
50     mkdir -p $out/bin
51     makeWrapper ${jre}/bin/java $out/bin/logisim-evolution --add-flags "-jar $src"
52     install -Dm444 ${icon} $out/share/icons/hicolor/scalable/apps/logisim-evolution.svg
54     runHook postInstall
55   '';
57   meta = {
58     changelog = "https://github.com/logisim-evolution/logisim-evolution/releases/tag/v${finalAttrs.version}";
59     homepage = "https://github.com/logisim-evolution/logisim-evolution";
60     description = "Digital logic designer and simulator";
61     mainProgram = "logisim-evolution";
62     maintainers = with lib.maintainers; [ emilytrau ];
63     sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
64     license = lib.licenses.gpl3Only;
65     platforms = lib.platforms.unix;
66   };