diff options
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/gradle/default.nix')
-rw-r--r-- | infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/gradle/default.nix | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/gradle/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/gradle/default.nix new file mode 100644 index 000000000000..d06282739afe --- /dev/null +++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/gradle/default.nix @@ -0,0 +1,85 @@ +{ stdenv, fetchurl, unzip, jdk, java ? jdk, makeWrapper }: + +rec { + gradleGen = {name, src, nativeVersion} : stdenv.mkDerivation { + inherit name src nativeVersion; + + dontBuild = true; + + installPhase = '' + mkdir -pv $out/lib/gradle/ + cp -rv lib/ $out/lib/gradle/ + + gradle_launcher_jar=$(echo $out/lib/gradle/lib/gradle-launcher-*.jar) + test -f $gradle_launcher_jar + makeWrapper ${java}/bin/java $out/bin/gradle \ + --set JAVA_HOME ${java} \ + --add-flags "-classpath $gradle_launcher_jar org.gradle.launcher.GradleMain" + ''; + + fixupPhase = if (!stdenv.isLinux) then ":" else + let arch = if stdenv.is64bit then "amd64" else "i386"; in '' + mkdir patching + pushd patching + jar xf $out/lib/gradle/lib/native-platform-linux-${arch}-${nativeVersion}.jar + patchelf --set-rpath "${stdenv.cc.cc.lib}/lib:${stdenv.cc.cc.lib}/lib64" net/rubygrapefruit/platform/linux-${arch}/libnative-platform.so + jar cf native-platform-linux-${arch}-${nativeVersion}.jar . + mv native-platform-linux-${arch}-${nativeVersion}.jar $out/lib/gradle/lib/ + popd + + # The scanner doesn't pick up the runtime dependency in the jar. + # Manually add a reference where it will be found. + mkdir $out/nix-support + echo ${stdenv.cc.cc} > $out/nix-support/manual-runtime-dependencies + ''; + + buildInputs = [ unzip java makeWrapper ]; + + meta = { + description = "Enterprise-grade build system"; + longDescription = '' + Gradle is a build system which offers you ease, power and freedom. + You can choose the balance for yourself. It has powerful multi-project + build support. It has a layer on top of Ivy that provides a + build-by-convention integration for Ivy. It gives you always the choice + between the flexibility of Ant and the convenience of a + build-by-convention behavior. + ''; + homepage = "http://www.gradle.org/"; + license = stdenv.lib.licenses.asl20; + platforms = stdenv.lib.platforms.unix; + }; + }; + + gradle_latest = gradle_6_7; + + gradle_6_7 = gradleGen rec { + name = "gradle-6.7"; + nativeVersion = "0.22-milestone-8"; + + src = fetchurl { + url = "https://services.gradle.org/distributions/${name}-bin.zip"; + sha256 = "1i6zm55wzy13wvvmf3804b0rs47yrqqablf4gpf374ls05cpgmca"; + }; + }; + + gradle_5_6 = gradleGen rec { + name = "gradle-5.6.4"; + nativeVersion = "0.18"; + + src = fetchurl { + url = "https://services.gradle.org/distributions/${name}-bin.zip"; + sha256 = "1f3067073041bc44554d0efe5d402a33bc3d3c93cc39ab684f308586d732a80d"; + }; + }; + + gradle_4_10 = gradleGen rec { + name = "gradle-4.10.3"; + nativeVersion = "0.14"; + + src = fetchurl { + url = "https://services.gradle.org/distributions/${name}-bin.zip"; + sha256 = "0vhqxnk0yj3q9jam5w4kpia70i4h0q4pjxxqwynh3qml0vrcn9l6"; + }; + }; +} |