You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

83 lines
2.5 KiB

{ stdenv, fetchurl, makeWrapper, pkgconfig
, freeglut, freealut, libGLU, libICE, libjpeg, openal, openscenegraph, plib
, libSM, libunwind, libX11, xproto, libXext, xextproto, libXi, inputproto
, libXmu, libXt, simgear, zlib, boost, cmake, libpng, udev, fltk13, apr
, makeDesktopItem, qtbase, qtdeclarative, glew, sqlite, speex
}:
let
version = "2017.2.1";
shortVersion = "2017.2";
data = stdenv.mkDerivation rec {
name = "flightgear-base-${version}";
src = fetchurl {
url = "mirror://sourceforge/flightgear/release-${shortVersion}/FlightGear-${version}-data.tar.bz2";
sha256 = "196imk6ppin98djrci52ixm75a4183kvjysya6y7xnd1012hwdf9";
};
phases = [ "installPhase" ];
installPhase = ''
mkdir -p "$out/share/FlightGear"
tar xf "${src}" -C "$out/share/FlightGear/" --strip-components=1
'';
};
in
stdenv.mkDerivation rec {
name = "flightgear-${version}";
# inheriting data for `nix-prefetch-url -A pkgs.flightgear.data.src`
inherit version data;
src = fetchurl {
url = "mirror://sourceforge/flightgear/release-${shortVersion}/${name}.tar.bz2";
sha256 = "0nqz66xlqfyip9srbx4wk0d4m21npghzil07cwih5zfa6qvsdnf7";
};
# Of all the files in the source and data archives, there doesn't seem to be
# a decent icon :-)
iconsrc = fetchurl {
url = "http://wiki.flightgear.org/images/6/62/FlightGear_logo.png";
sha256 = "1ikz413jia55vfnmx8iwrlxvx8p16ggm81mbrj66wam3q7s2dm5p";
};
desktopItem = makeDesktopItem {
name = "flightgear";
exec = "fgfs";
icon = "${iconsrc}";
comment = "FlightGear Flight Simulator";
desktopName = "FlightGear";
genericName = "Flight simulator";
categories = "Game;Simulation";
};
buildInputs = [
makeWrapper pkgconfig
freeglut freealut libGLU libICE libjpeg openal openscenegraph plib
libSM libunwind libX11 xproto libXext xextproto libXi inputproto
libXmu libXt simgear zlib boost cmake libpng udev fltk13 apr qtbase
qtdeclarative glew sqlite speex
];
cmakeFlags="-DFG_BUILD_TYPE=Release -DSYSTEM_SQLITE=ON -DSYSTEM_SPEEX=ON";
postInstall = ''
mkdir -p "$out/share/applications/"
cp "${desktopItem}"/share/applications/* "$out/share/applications/" #*/
for f in $out/bin/* #*/
do
wrapProgram $f --set FG_ROOT "${data}/share/FlightGear"
done
'';
meta = with stdenv.lib; {
description = "Flight simulator";
maintainers = with maintainers; [ raskin the-kenny ];
platforms = platforms.linux;
hydraPlatforms = []; # disabled from hydra because it's so big
license = licenses.gpl2;
};
}