phanirithvij d75957a3bb treewide: remove rec when using finalAttrs
Signed-off-by: phanirithvij <phanirithvij2000@gmail.com>
2025-06-06 15:19:52 +02:00

130 lines
3.3 KiB
Nix

{
lib,
stdenv,
callPackage,
fetchFromGitHub,
libsForQt5,
makeDesktopItem,
}:
let
atools = callPackage ./atools.nix { };
marble = libsForQt5.marble.overrideAttrs (self: {
version = "0.25.5";
src = fetchFromGitHub {
owner = "albar965";
repo = "marble";
rev = "722acf7f8d79023f6c6a761063645a1470bb3935"; # branch lnm/1.1
hash = "sha256-5GSa+xIQS9EgJXxMFUOA5jTtHJ6Dl4C9yAkFPIOrgo8=";
};
# https://github.com/albar965/littlenavmap/wiki/Compiling#compile-marble
cmakeFlags =
let
disable = n: lib.cmakeBool n false;
enable = n: lib.cmakeBool n true;
in
map enable [
"STATIC_BUILD"
"MARBLE_EMPTY_MAPTHEME"
"QTONLY"
]
++ map disable [
"BUILD_MARBLE_EXAMPLES"
"BUILD_INHIBIT_SCREENSAVER_PLUGIN"
"BUILD_MARBLE_APPS"
"BUILD_MARBLE_EXAMPLES"
"BUILD_MARBLE_TESTS"
"BUILD_MARBLE_TOOLS"
"BUILD_TESTING"
"BUILD_WITH_DBUS"
"MOBILE"
"WITH_DESIGNER_PLUGIN"
"WITH_Phonon"
"WITH_Qt5Location"
"WITH_Qt5Positioning"
"WITH_Qt5SerialPort"
"WITH_ZLIB"
"WITH_libgps"
"WITH_libshp"
"WITH_libwlocate"
];
});
desktopItem = makeDesktopItem {
name = "Little Navmap";
desktopName = "Little Navmap";
icon = "littlenavmap";
terminal = false;
exec = "littlenavmap";
categories = [
"Qt"
"Utility"
"Geography"
"Maps"
];
};
in
stdenv.mkDerivation (finalAttrs: {
pname = "littlenavmap";
version = "3.0.17";
src = fetchFromGitHub {
owner = "albar965";
repo = "littlenavmap";
tag = "v${finalAttrs.version}";
hash = "sha256-/1YB2uEQzT0K6IylpWDqOaMSENDR9GuyJNty+2C8kXM=";
};
nativeBuildInputs = [
libsForQt5.qmake
libsForQt5.wrapQtAppsHook
];
# https://github.com/albar965/littlenavmap/wiki/Compiling#default-paths-and-environment-variables-2
env = {
ATOOLS_INC_PATH = "${atools}/include";
ATOOLS_LIB_PATH = "${atools}/lib";
MARBLE_INC_PATH = "${marble.dev}/include";
MARBLE_LIB_PATH = "${marble}/lib";
inherit (atools) ATOOLS_NO_CRASHHANDLER;
};
patches = [ ./deploy.patch ];
configurePhase = ''
runHook preConfigure
# we have to build out of source tree
cd build
qmake "''${flagsArray[@]}" ..
runHook postConfigure
'';
postInstall = ''
mkdir -p $out/bin $out/lib $out/share/icons/scaleable/apps
mv "../../deploy/Little Navmap" $out/lib/littlenavmap
ln -s $out/lib/littlenavmap/littlenavmap $out/bin
cp -ra ${desktopItem}/* $out
mv $out/lib/littlenavmap/littlenavmap.svg $out/share/icons/scaleable/apps
'';
enableParallelBuilding = true;
enableParallelInstalling = true;
installTargets = "deploy";
passthru.local-packages = { inherit atools marble; };
meta = {
description = "Free flight planner, navigation tool, moving map, airport search and airport information system for Flight Simulator X, Microsoft Flight Simulator 2020, Prepar3D and X-Plane";
homepage = "https://github.com/albar965/littlenavmap";
changelog = "https://github.com/albar965/littlenavmap/blob/${finalAttrs.src.tag}/CHANGELOG.txt";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ ck3d ];
mainProgram = "littlenavmap";
platforms = lib.platforms.linux;
};
})