28b6fb61e6
This is done for the sake of Yosemite, which does not have gcc, and yet this change is also compatible with Linux.
56 lines
1.7 KiB
Nix
56 lines
1.7 KiB
Nix
{
|
|
stdenv, fetchurl
|
|
, fpc
|
|
, gtk, glib, pango, atk, gdk_pixbuf
|
|
, libXi, inputproto, libX11, xproto, libXext, xextproto
|
|
, makeWrapper
|
|
}:
|
|
let
|
|
s =
|
|
rec {
|
|
version = "1.2.6";
|
|
versionSuffix = "-0";
|
|
url = "mirror://sourceforge/lazarus/Lazarus%20Zip%20_%20GZip/Lazarus%20${version}/lazarus-${version}${versionSuffix}.tar.gz";
|
|
sha256 = "1sjyc2l46hyd5ic5hr6vscy4qr9kazyhiyddy7bfs9vgf54fdiy0";
|
|
name = "lazarus-${version}";
|
|
};
|
|
buildInputs = [
|
|
fpc gtk glib libXi inputproto
|
|
libX11 xproto libXext xextproto pango atk
|
|
stdenv.cc makeWrapper gdk_pixbuf
|
|
];
|
|
in
|
|
stdenv.mkDerivation {
|
|
inherit (s) name version;
|
|
inherit buildInputs;
|
|
src = fetchurl {
|
|
inherit (s) url sha256;
|
|
};
|
|
makeFlags = [
|
|
"FPC=fpc"
|
|
"PP=fpc"
|
|
"REQUIRE_PACKAGES+=tachartlazaruspkg"
|
|
"bigide"
|
|
];
|
|
preBuild = ''
|
|
export makeFlags="$makeFlags LAZARUS_INSTALL_DIR=$out/lazarus/ INSTALL_PREFIX=$out/"
|
|
export NIX_LDFLAGS="$NIX_LDFLAGS -lXi -lX11 -lglib-2.0 -lgtk-x11-2.0 -lgdk-x11-2.0 -lc -lXext -lpango-1.0 -latk-1.0 -lgdk_pixbuf-2.0 -lcairo -lgcc_s"
|
|
export LCL_PLATFORM=gtk2
|
|
mkdir -p $out/share "$out/lazarus"
|
|
tar xf ${fpc.src} --strip-components=1 -C $out/share -m
|
|
sed -e 's@/usr/fpcsrc@'"$out/share/fpcsrc@" -i ide/include/unix/lazbaseconf.inc
|
|
'';
|
|
postInstall = ''
|
|
wrapProgram $out/bin/startlazarus --prefix NIX_LDFLAGS ' ' "'$NIX_LDFLAGS'" \
|
|
--prefix LCL_PLATFORM ' ' "'$LCL_PLATFORM'"
|
|
'';
|
|
meta = {
|
|
inherit (s) version;
|
|
license = stdenv.lib.licenses.gpl2Plus ;
|
|
platforms = stdenv.lib.platforms.linux;
|
|
description = "Lazarus graphical IDE for FreePascal language";
|
|
homepage = http://www.lazarus.freepascal.org;
|
|
maintainers = [stdenv.lib.maintainers.raskin];
|
|
};
|
|
}
|