jextract: convert to gradle setup hook

This commit is contained in:
chayleaf 2024-06-27 03:19:41 +07:00
parent ac7944dab4
commit f9c2c4a8be
No known key found for this signature in database
GPG key ID: 78171AD46227E68E

View file

@ -1,41 +1,12 @@
{ lib
, stdenv
, fetchFromGitHub
, emptyDirectory
, writeText
, makeBinaryWrapper
, gradle
, jdk22
, llvmPackages
}:
let
gradleInit = writeText "init.gradle" ''
logger.lifecycle 'Replacing Maven repositories with empty directory...'
gradle.projectsLoaded {
rootProject.allprojects {
buildscript {
repositories {
clear()
maven { url '${emptyDirectory}' }
}
}
repositories {
clear()
maven { url '${emptyDirectory}' }
}
}
}
settingsEvaluated { settings ->
settings.pluginManagement {
repositories {
maven { url '${emptyDirectory}' }
}
}
}
'';
in
stdenv.mkDerivation {
pname = "jextract";
version = "unstable-2024-03-13";
@ -52,27 +23,14 @@ stdenv.mkDerivation {
makeBinaryWrapper
];
env = {
ORG_GRADLE_PROJECT_llvm_home = llvmPackages.libclang.lib;
ORG_GRADLE_PROJECT_jdk22_home = jdk22;
};
buildPhase = ''
runHook preBuild
export GRADLE_USER_HOME=$(mktemp -d)
gradle --console plain --init-script "${gradleInit}" assemble
runHook postBuild
'';
gradleFlags = [
"-Pllvm_home=${llvmPackages.libclang.lib}"
"-Pjdk22_home=${jdk22}"
];
doCheck = true;
checkPhase = ''
runHook preCheck
gradle --console plain --init-script "${gradleInit}" verify
runHook postCheck
'';
gradleCheckTask = "verify";
installPhase = ''
runHook preInstall