107 lines
2.4 KiB
Nix
107 lines
2.4 KiB
Nix
|
{
|
||
|
lib,
|
||
|
stdenv,
|
||
|
fetchFromGitHub,
|
||
|
SDL2,
|
||
|
libsForQt5,
|
||
|
gst_all_1,
|
||
|
wayland,
|
||
|
pkg-config,
|
||
|
}:
|
||
|
|
||
|
stdenv.mkDerivation rec {
|
||
|
pname = "qgroundcontrol";
|
||
|
version = "4.4.2";
|
||
|
|
||
|
propagatedBuildInputs = with libsForQt5; [
|
||
|
qtbase
|
||
|
qtcharts
|
||
|
qtlocation
|
||
|
qtserialport
|
||
|
qtsvg
|
||
|
qtquickcontrols2
|
||
|
qtgraphicaleffects
|
||
|
qtspeech
|
||
|
qtx11extras
|
||
|
];
|
||
|
|
||
|
gstInputs = with gst_all_1; [
|
||
|
gstreamer
|
||
|
gst-plugins-base
|
||
|
(gst-plugins-good.override { qt5Support = true; })
|
||
|
gst-plugins-bad
|
||
|
gst-libav
|
||
|
wayland
|
||
|
];
|
||
|
|
||
|
buildInputs = [ SDL2 ] ++ gstInputs ++ propagatedBuildInputs;
|
||
|
nativeBuildInputs =
|
||
|
[ pkg-config ]
|
||
|
++ (with libsForQt5; [
|
||
|
qmake
|
||
|
qttools
|
||
|
wrapQtAppsHook
|
||
|
]);
|
||
|
|
||
|
preConfigure = ''
|
||
|
mkdir build
|
||
|
cd build
|
||
|
'';
|
||
|
|
||
|
qmakeFlags = [
|
||
|
"CONFIG+=StableBuild"
|
||
|
# Default install tries to copy Qt files into package
|
||
|
"CONFIG+=QGC_DISABLE_BUILD_SETUP"
|
||
|
# Tries to download x86_64-only prebuilt binaries
|
||
|
"DEFINES+=DISABLE_AIRMAP"
|
||
|
"../qgroundcontrol.pro"
|
||
|
];
|
||
|
|
||
|
installPhase = ''
|
||
|
runHook preInstall
|
||
|
|
||
|
cd ..
|
||
|
|
||
|
mkdir -p $out/share/applications
|
||
|
sed 's/Exec=.*$/Exec=QGroundControl/g' --in-place deploy/qgroundcontrol.desktop
|
||
|
cp -v deploy/qgroundcontrol.desktop $out/share/applications
|
||
|
|
||
|
mkdir -p $out/bin
|
||
|
cp -v build/staging/QGroundControl "$out/bin/"
|
||
|
|
||
|
mkdir -p $out/share/qgroundcontrol
|
||
|
cp -rv resources/ $out/share/qgroundcontrol
|
||
|
|
||
|
mkdir -p $out/share/pixmaps
|
||
|
cp -v resources/icons/qgroundcontrol.png $out/share/pixmaps
|
||
|
|
||
|
runHook postInstall
|
||
|
'';
|
||
|
|
||
|
postInstall = ''
|
||
|
qtWrapperArgs+=(--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0")
|
||
|
'';
|
||
|
|
||
|
# TODO: package mavlink so we can build from a normal source tarball
|
||
|
src = fetchFromGitHub {
|
||
|
owner = "mavlink";
|
||
|
repo = "qgroundcontrol";
|
||
|
rev = "v${version}";
|
||
|
hash = "sha256-2Bc4uC/2e+PTsvFZ4RjnTzkOiBO9vsYHeLPkcwpDRrg=";
|
||
|
fetchSubmodules = true;
|
||
|
};
|
||
|
|
||
|
meta = {
|
||
|
description = "Provides full ground station support and configuration for the PX4 and APM Flight Stacks";
|
||
|
homepage = "https://qgroundcontrol.com/";
|
||
|
changelog = "https://github.com/mavlink/qgroundcontrol/blob/master/ChangeLog.md";
|
||
|
license = lib.licenses.gpl3Plus;
|
||
|
platforms = lib.platforms.linux;
|
||
|
maintainers = with lib.maintainers; [
|
||
|
lopsided98
|
||
|
pandapip1
|
||
|
];
|
||
|
mainProgram = "QGroundControl";
|
||
|
};
|
||
|
}
|