summary refs log tree commit diff
path: root/pkgs/applications/editors/eclipse/build-eclipse.nix
diff options
context:
space:
mode:
authorDamien Cassou <damien@cassou.me>2016-01-16 18:35:35 +0100
committerDamien Cassou <damien@cassou.me>2016-01-16 18:35:35 +0100
commit6115684b73e55f196ad8d58c755851ffd96d0697 (patch)
treeedfa3701328e68473d0e755c302f8ee0e746a208 /pkgs/applications/editors/eclipse/build-eclipse.nix
parentace6ed9127bd83e3552d84a27ebeddee8b8e4947 (diff)
downloadnixpkgs-6115684b73e55f196ad8d58c755851ffd96d0697.tar
nixpkgs-6115684b73e55f196ad8d58c755851ffd96d0697.tar.gz
nixpkgs-6115684b73e55f196ad8d58c755851ffd96d0697.tar.bz2
nixpkgs-6115684b73e55f196ad8d58c755851ffd96d0697.tar.lz
nixpkgs-6115684b73e55f196ad8d58c755851ffd96d0697.tar.xz
nixpkgs-6115684b73e55f196ad8d58c755851ffd96d0697.tar.zst
nixpkgs-6115684b73e55f196ad8d58c755851ffd96d0697.zip
Avoid CamelCase in filenames and add buildEclipse
Diffstat (limited to 'pkgs/applications/editors/eclipse/build-eclipse.nix')
-rw-r--r--pkgs/applications/editors/eclipse/build-eclipse.nix54
1 files changed, 54 insertions, 0 deletions
diff --git a/pkgs/applications/editors/eclipse/build-eclipse.nix b/pkgs/applications/editors/eclipse/build-eclipse.nix
new file mode 100644
index 00000000000..558c9fa3de5
--- /dev/null
+++ b/pkgs/applications/editors/eclipse/build-eclipse.nix
@@ -0,0 +1,54 @@
+{ stdenv, makeDesktopItem, freetype, fontconfig, libX11, libXrender, zlib, jre, glib, gtk, libXtst, webkitgtk2, makeWrapper, ... }:
+
+{ name, src ? builtins.getAttr stdenv.system sources, sources ? null, description }:
+
+stdenv.mkDerivation rec {
+  inherit name src;
+
+  desktopItem = makeDesktopItem {
+    name = "Eclipse";
+    exec = "eclipse";
+    icon = "eclipse";
+    comment = "Integrated Development Environment";
+    desktopName = "Eclipse IDE";
+    genericName = "Integrated Development Environment";
+    categories = "Application;Development;";
+  };
+
+  buildInputs = [ makeWrapper ];
+
+  buildCommand = ''
+    # Unpack tarball.
+    mkdir -p $out
+    tar xfvz $src -C $out
+
+    # Patch binaries.
+    interpreter=$(echo ${stdenv.glibc}/lib/ld-linux*.so.2)
+    libCairo=$out/eclipse/libcairo-swt.so
+    patchelf --set-interpreter $interpreter $out/eclipse/eclipse
+    [ -f $libCairo ] && patchelf --set-rpath ${freetype}/lib:${fontconfig}/lib:${libX11}/lib:${libXrender}/lib:${zlib}/lib $libCairo
+
+    # Create wrapper script.  Pass -configuration to store
+    # settings in ~/.eclipse/org.eclipse.platform_<version> rather
+    # than ~/.eclipse/org.eclipse.platform_<version>_<number>.
+    productId=$(sed 's/id=//; t; d' $out/eclipse/.eclipseproduct)
+    productVersion=$(sed 's/version=//; t; d' $out/eclipse/.eclipseproduct)
+
+    makeWrapper $out/eclipse/eclipse $out/bin/eclipse \
+      --prefix PATH : ${jre}/bin \
+      --prefix LD_LIBRARY_PATH : ${glib}/lib:${gtk}/lib:${libXtst}/lib${stdenv.lib.optionalString (webkitgtk2 != null) ":${webkitgtk2}/lib"} \
+      --add-flags "-configuration \$HOME/.eclipse/''${productId}_$productVersion/configuration"
+
+    # Create desktop item.
+    mkdir -p $out/share/applications
+    cp ${desktopItem}/share/applications/* $out/share/applications
+    mkdir -p $out/share/pixmaps
+    ln -s $out/eclipse/icon.xpm $out/share/pixmaps/eclipse.xpm
+  ''; # */
+
+  meta = {
+    homepage = http://www.eclipse.org/;
+    inherit description;
+  };
+
+}