biglybt: 3.5.0.0 -> 3.6.0.0
[NixPkgs.git] / pkgs / applications / science / robotics / mission-planner / default.nix
blobf6e7e5f114fa7099e0e3e03e462aa8ed8b18ed4d
1 { lib, stdenv, fetchurl, makeDesktopItem, makeWrapper, unzip, mono }:
3 let
4   pname = "mission-planner";
5   desktopItem = makeDesktopItem {
6     name = pname;
7     exec = pname;
8     icon = pname;
9     comment = "MissionPlanner GCS & Ardupilot configuration tool";
10     desktopName = "MissionPlanner";
11     genericName = "Ground Control Station";
12   };
13 in stdenv.mkDerivation rec {
14   inherit pname;
15   version = "1.3.80";
17   src = fetchurl {
18     url = "https://firmware.ardupilot.org/Tools/MissionPlanner/MissionPlanner-${version}.zip";
19     sha256 = "sha256-iivlaQWtOMJHchmR92FoqTaosGJ9F1AgFtuFgDE/9qQ=";
20   };
22   nativeBuildInputs = [ makeWrapper mono unzip ];
23   sourceRoot = ".";
25   AOT_FILES = [ "MissionPlanner.exe" "MissionPlanner.*.dll" ];
27   buildPhase = ''
28     runHook preBuild
29     for file in $AOT_FILES
30     do
31       mono --aot $file
32     done
33     runHook postBuild
34   '';
36   installPhase = ''
37     runHook preInstall
38     mkdir -p $out/{bin,opt/mission-planner}
39     install -m 444 -D mpdesktop150.png $out/share/icons/mission-planner.png
40     cp -r ${desktopItem}/share/applications $out/share/
41     mv * $out/opt/mission-planner
42     makeWrapper ${mono}/bin/mono $out/bin/mission-planner \
43       --add-flags $out/opt/mission-planner/MissionPlanner.exe
44     runHook postInstall
45   '';
47   meta = with lib; {
48     description = "An ArduPilot ground station";
49     mainProgram = "mission-planner";
50     longDescription = ''
51       Full-featured ground station application for the ArduPilot open source
52       autopilot project.  Lets you both flash, configure and control ArduPilot
53       Plane, Copter and Rover targets.
54     '';
55     homepage = "https://ardupilot.org/planner/";
56     license = licenses.gpl3Plus;
57     maintainers = with maintainers; [ wucke13 ];
58     platforms = platforms.all;
59   };