Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

98 lines
2.3 KiB
Nix
Raw Permalink Normal View History

2025-05-13 23:26:23 +02:00
{
stdenv,
lib,
gradle,
jdk21_headless,
fetchFromGitHub,
stripJavaArchivesHook,
wrapGAppsHook4,
nix-update-script,
makeWrapper,
pkg-config,
gtk4,
libadwaita,
glib,
pango,
gdk-pixbuf,
atk,
cairo,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "coulomb";
version = "0.6.1";
src = fetchFromGitHub {
owner = "hamza-algohary";
repo = "Coulomb";
tag = "v${finalAttrs.version}";
hash = "sha256-SbtFUUla0uoeDik+7CtibV/lvgUg8N81WWRp2+8wygM=";
};
postPatch = ''
substituteInPlace app/build.gradle.kts \
--replace-fail "languageVersion.set(JavaLanguageVersion.of(19))" "languageVersion.set(JavaLanguageVersion.of(21))"
'';
nativeBuildInputs = [
gradle
jdk21_headless
makeWrapper
pkg-config
stripJavaArchivesHook
wrapGAppsHook4
];
buildInputs = [
gtk4
libadwaita
glib
pango
gdk-pixbuf
atk
cairo
];
mitmCache = gradle.fetchDeps {
inherit (finalAttrs) pname;
data = ./deps.json;
};
gradleFlags = [ "-Dfile.encoding=utf-8" ];
dontWrapGApps = true;
doCheck = true;
installPhase = ''
runHook preInstall
mkdir -p $out/{bin,share/coulomb,lib-jna}
cp app/build/libs/app-all.jar $out/share/coulomb/
mkdir -p $out/share/{applications,icons/{dark,light,hicolor/scalable/apps}}
cp app/build/resources/main/*.desktop $out/share/applications
cp -r app/build/resources/main/icons/vector/* $out/share/icons/
cp app/build/resources/main/icons/vector/light/coulomb.svg $out/share/icons/hicolor/scalable/apps/io.github.hamza_algohary.Coulomb.svg
makeWrapper ${jdk21_headless}/bin/java $out/bin/coulomb \
--add-flags "-Djava.library.path=${lib.makeLibraryPath finalAttrs.buildInputs}" \
--add-flags "-jar $out/share/coulomb/app-all.jar" \
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath finalAttrs.buildInputs}" \
''${gappsWrapperArgs[@]}
runHook postInstall
'';
passthru.updateScript = nix-update-script { };
meta = {
description = "Simple and beautiful circuit simulator app";
homepage = "https://github.com/hamza-algohary/Coulomb";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ thtrf ];
platforms = lib.platforms.linux;
mainProgram = "coulomb";
};
})