diff --git a/pkgs/applications/science/robotics/mission-planner/default.nix b/pkgs/applications/science/robotics/mission-planner/default.nix new file mode 100644 index 00000000000..5ae04d8a84b --- /dev/null +++ b/pkgs/applications/science/robotics/mission-planner/default.nix @@ -0,0 +1,59 @@ +{ stdenv, fetchurl, makeDesktopItem, makeWrapper, unzip, mono6 }: + +let + pname = "mission-planner"; + desktopItem = makeDesktopItem { + name = pname; + exec = pname; + icon = pname; + comment = "MissionPlanner GCS & Ardupilot configuration tool"; + desktopName = "MissionPlanner"; + genericName = "Ground Control Station"; + }; +in stdenv.mkDerivation rec { + inherit pname; + version = "1.3.74"; + + src = fetchurl { + url = "https://firmware.ardupilot.org/Tools/MissionPlanner/MissionPlanner-${version}.zip"; + sha256 = "1cgpmsmmnbzw1lwsdafp8yklk1rwc61yf12vc1ahcc6bl7q2385x"; + }; + + nativeBuildInputs = [ makeWrapper mono6 unzip ]; + sourceRoot = "."; + + AOT_FILES = [ "MissionPlanner.exe" "MissionPlanner.*.dll" ]; + + buildPhase = '' + runHook preBuild + for file in $AOT_FILES + do + mono --aot $file + done + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + mkdir -p $out/{bin,opt/mission-planner} + install -m 444 -D mpdesktop150.png $out/share/icons/mission-planner.png + cp -r ${desktopItem}/share/applications $out/share/ + mv * $out/opt/mission-planner + makeWrapper ${mono6}/bin/mono $out/bin/mission-planner \ + --add-flags $out/opt/mission-planner/MissionPlanner.exe + runHook postInstall + ''; + + meta = with stdenv.lib; { + description = "An ArduPilot ground station"; + longDescription = '' + Full-featured ground station application for the ArduPilot open source + autopilot project. Lets you both flash, configure and control ArduPilot + Plane, Copter and Rover targets. + ''; + homepage = "https://ardupilot.org/planner/"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ wucke13 ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 26e3d9bb1a9..3e71a52c234 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -27572,6 +27572,8 @@ in betaflight-configurator = callPackage ../applications/science/robotics/betaflight-configurator { }; + mission-planner = callPackage ../applications/science/robotics/mission-planner { }; + ### MISC acpilight = callPackage ../misc/acpilight { };