71 lines
2 KiB
Nix
71 lines
2 KiB
Nix
{ stdenv, fetchurl, unzip, jdk, pkgconfig, gtk
|
|
, libXtst, libXi, mesa, webkit, libsoup, xorg
|
|
, pango, gdk_pixbuf, glib
|
|
}:
|
|
|
|
let
|
|
platformMap = {
|
|
"x86_64-linux" =
|
|
{ platform = "gtk-linux-x86_64";
|
|
sha256 = "0hq48zfqx2p0fqr0rlabnz2pdj0874k19918a4dbj0fhzkhrh959"; };
|
|
"i686-linux" =
|
|
{ platform = "gtk-linux-x86";
|
|
sha256 = "10si8kmc7c9qmbpzs76609wkfb784pln3qpmra73gb3fbk7z8caf"; };
|
|
"x86_64-darwin" =
|
|
{ platform = "cocoa-macosx-x86_64";
|
|
sha256 = "1565gg63ssrl04fh355vf9mnmq8qwwki3zpc3ybm7bylgkfwc9h4"; };
|
|
};
|
|
|
|
metadata = assert platformMap ? ${stdenv.system}; platformMap.${stdenv.system};
|
|
|
|
in stdenv.mkDerivation rec {
|
|
version = "3.7.2";
|
|
fullVersion = "${version}-201202080800";
|
|
name = "swt-${version}";
|
|
|
|
# Alas, the Eclipse Project apparently doesn't produce source-only
|
|
# releases of SWT. So we just grab a binary release and extract
|
|
# "src.zip" from that.
|
|
src = fetchurl {
|
|
url = "http://archive.eclipse.org/eclipse/downloads/drops/R-${fullVersion}/${name}-${metadata.platform}.zip";
|
|
sha256 = metadata.sha256;
|
|
};
|
|
|
|
sourceRoot = ".";
|
|
|
|
buildInputs = [ unzip jdk pkgconfig gtk libXtst libXi mesa webkit libsoup ];
|
|
|
|
NIX_LFLAGS = [ "-lX11" "-I${xorg.libX11}/lib"
|
|
"-lpango-1.0" "-I${pango}/lib"
|
|
"-lgdk_pixbuf-2.0" "-I${gdk_pixbuf}/lib"
|
|
"-lglib-2.0" "-I${glib}/lib"];
|
|
|
|
buildPhase = ''
|
|
unzip src.zip -d src
|
|
|
|
cd src
|
|
sed -i "s#^LFLAGS =#LFLAGS = $NIX_LFLAGS #g" *.mak
|
|
export JAVA_HOME=${jdk}
|
|
|
|
sh ./build.sh
|
|
|
|
mkdir out
|
|
javac -d out/ $(find org/ -name "*.java")
|
|
'';
|
|
|
|
installPhase = ''
|
|
mkdir -p $out/lib
|
|
cp *.so $out/lib
|
|
|
|
mkdir -p $out/jars
|
|
cp version.txt out/
|
|
cd out && jar -c * > $out/jars/swt.jar
|
|
'';
|
|
|
|
meta = with stdenv.lib; {
|
|
homepage = http://www.eclipse.org/swt/;
|
|
description = "An widget toolkit for Java to access the user-interface facilities of the operating systems on which it is implemented";
|
|
license = licenses.epl10;
|
|
maintainers = with maintainers; [ pSub ];
|
|
};
|
|
}
|