mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-12-28 00:24:18 +00:00
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.3";
|
|
|
|
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-pHs9pRL5fAeRtDcNPCdqy4oPYyJ0mbJjLDlotFfjOl4=";
|
|
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";
|
|
};
|
|
}
|