parent
9d335706a0
commit
17e1fbe0fc
119
pkgs/development/tools/eclipse-mat/default.nix
Normal file
119
pkgs/development/tools/eclipse-mat/default.nix
Normal file
@ -0,0 +1,119 @@
|
||||
{ buildEnv
|
||||
, fetchurl
|
||||
, fontconfig
|
||||
, freetype
|
||||
, glib
|
||||
, gsettings-desktop-schemas
|
||||
, gtk3
|
||||
, jdk11
|
||||
, lib
|
||||
, libX11
|
||||
, libXrender
|
||||
, libXtst
|
||||
, makeDesktopItem
|
||||
, makeWrapper
|
||||
, shared-mime-info
|
||||
, stdenv
|
||||
, unzip
|
||||
, webkitgtk
|
||||
, zlib
|
||||
}:
|
||||
|
||||
with lib;
|
||||
let
|
||||
pVersion = "1.10.0.20200225";
|
||||
pVersionTriple = splitVersion pVersion;
|
||||
majorVersion = elemAt pVersionTriple 0;
|
||||
minorVersion = elemAt pVersionTriple 1;
|
||||
patchVersion = elemAt pVersionTriple 2;
|
||||
baseVersion = "${majorVersion}.${minorVersion}.${patchVersion}";
|
||||
jdk = jdk11;
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "eclipse-mat";
|
||||
version = "${pVersion}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://ftp.halifax.rwth-aachen.de/eclipse//mat/${baseVersion}/rcp/MemoryAnalyzer-${version}-linux.gtk.x86_64.zip";
|
||||
sha256 = "11cg01gjjvlm6lr6z6rwqs1r31xx5pxddnz55ca0s33lrnywf9fx";
|
||||
};
|
||||
|
||||
desktopItem = makeDesktopItem {
|
||||
name = "eclipse-mat";
|
||||
exec = "eclipse-mat";
|
||||
icon = "eclipse";
|
||||
comment = "Eclipse Memory Analyzer";
|
||||
desktopName = "Eclipse MAT";
|
||||
genericName = "Java Memory Analyzer";
|
||||
categories = "Development;";
|
||||
};
|
||||
|
||||
unpackPhase = ''
|
||||
unzip $src
|
||||
'';
|
||||
|
||||
buildCommand = ''
|
||||
mkdir -p $out
|
||||
unzip $src
|
||||
mv mat $out
|
||||
|
||||
# Patch binaries.
|
||||
interpreter=$(echo ${stdenv.glibc.out}/lib/ld-linux*.so.2)
|
||||
libCairo=$out/eclipse/libcairo-swt.so
|
||||
patchelf --set-interpreter $interpreter $out/mat/MemoryAnalyzer
|
||||
[ -f $libCairo ] && patchelf --set-rpath ${
|
||||
stdenv.lib.makeLibraryPath [ freetype fontconfig libX11 libXrender zlib ]
|
||||
} $libCairo
|
||||
|
||||
# Create wrapper script. Pass -configuration to store settings in ~/.eclipse-mat/<version>
|
||||
makeWrapper $out/mat/MemoryAnalyzer $out/bin/eclipse-mat \
|
||||
--prefix PATH : ${jdk}/bin \
|
||||
--prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath ([ glib gtk3 libXtst webkitgtk ])} \
|
||||
--prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" \
|
||||
--add-flags "-configuration \$HOME/.eclipse-mat/''${version}/configuration"
|
||||
|
||||
# Create desktop item.
|
||||
mkdir -p $out/share/applications
|
||||
cp ${desktopItem}/share/applications/* $out/share/applications
|
||||
mkdir -p $out/share/pixmaps
|
||||
find $out/mat/plugins -name 'eclipse*.png' -type f -exec cp {} $out/share/pixmaps \;
|
||||
mv $out/share/pixmaps/eclipse64.png $out/share/pixmaps/eclipse.png
|
||||
'';
|
||||
|
||||
buildInputs = [
|
||||
fontconfig
|
||||
freetype
|
||||
glib
|
||||
gsettings-desktop-schemas
|
||||
gtk3
|
||||
jdk
|
||||
libX11
|
||||
libXrender
|
||||
libXtst
|
||||
makeWrapper
|
||||
zlib
|
||||
unzip
|
||||
shared-mime-info
|
||||
webkitgtk
|
||||
];
|
||||
|
||||
dontBuild = true;
|
||||
dontConfigure = true;
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Fast and feature-rich Java heap analyzer";
|
||||
longDescription = ''
|
||||
The Eclipse Memory Analyzer is a tool that helps you find memory
|
||||
leaks and reduce memory consumption. Use the Memory Analyzer to
|
||||
analyze productive heap dumps with hundreds of millions of
|
||||
objects, quickly calculate the retained sizes of objects, see
|
||||
who is preventing the Garbage Collector from collecting objects,
|
||||
run a report to automatically extract leak suspects.
|
||||
'';
|
||||
homepage = "https://www.eclipse.org/mat";
|
||||
license = licenses.epl20;
|
||||
maintainers = [ maintainers.ktor ];
|
||||
platforms = [ "x86_64-linux" ];
|
||||
};
|
||||
|
||||
}
|
@ -183,6 +183,8 @@ in
|
||||
|
||||
deadcode = callPackage ../development/tools/deadcode { };
|
||||
|
||||
eclipse-mat = callPackage ../development/tools/eclipse-mat { };
|
||||
|
||||
glade = callPackage ../development/tools/glade { };
|
||||
|
||||
hobbes = callPackage ../development/tools/hobbes { };
|
||||
|
Loading…
Reference in New Issue
Block a user