1 { lib, stdenv, fetchFromGitHub, SDL2, qtbase, qtcharts, qtlocation, qtserialport
2 , qtsvg, qtquickcontrols2, qtgraphicaleffects, qtspeech, qtx11extras, qmake
3 , qttools, gst_all_1, wayland, pkg-config, wrapQtAppsHook }:
5 stdenv.mkDerivation rec {
6 pname = "qgroundcontrol";
9 propagatedBuildInputs = [
10 qtbase qtcharts qtlocation qtserialport qtsvg qtquickcontrols2
11 qtgraphicaleffects qtspeech qtx11extras
14 gstInputs = with gst_all_1; [
17 (gst-plugins-good.override { qt5Support = true; })
23 buildInputs = [ SDL2 ] ++ gstInputs ++ propagatedBuildInputs;
24 nativeBuildInputs = [ pkg-config qmake qttools wrapQtAppsHook ];
33 # Default install tries to copy Qt files into package
34 "CONFIG+=QGC_DISABLE_BUILD_SETUP"
35 # Tries to download x86_64-only prebuilt binaries
36 "DEFINES+=DISABLE_AIRMAP"
37 "../qgroundcontrol.pro"
45 mkdir -p $out/share/applications
46 sed 's/Exec=.*$/Exec=QGroundControl/g' --in-place deploy/qgroundcontrol.desktop
47 cp -v deploy/qgroundcontrol.desktop $out/share/applications
50 cp -v build/staging/QGroundControl "$out/bin/"
52 mkdir -p $out/share/qgroundcontrol
53 cp -rv resources/ $out/share/qgroundcontrol
55 mkdir -p $out/share/pixmaps
56 cp -v resources/icons/qgroundcontrol.png $out/share/pixmaps
62 qtWrapperArgs+=(--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0")
65 # TODO: package mavlink so we can build from a normal source tarball
66 src = fetchFromGitHub {
70 sha256 = "sha256-a0+cpT413qi88PvaWQPxKABHfK7vbPE7B42n84n/SAk=";
71 fetchSubmodules = true;
75 description = "Provides full ground station support and configuration for the PX4 and APM Flight Stacks";
76 homepage = "http://qgroundcontrol.com/";
77 license = licenses.gpl3Plus;
78 platforms = platforms.linux;
79 maintainers = with maintainers; [ lopsided98 ];
80 mainProgram = "QGroundControl";