{ src, buildDartApplication, sqlite, callPackage, path, }: buildDartApplication { pname = "jadb-database-tool"; version = "1.0.0"; inherit src; dartEntryPoints."bin/jadb" = "bin/jadb.dart"; # NOTE: the default dart hooks are using `dart compile`, which is not able to call the # new dart build hooks required to use package:sqlite3 >= 3.0.0. So we override # these phases to use `dart build` instead. buildPhase = '' runHook preBuild mkdir -p "$out/bin" dart build cli --target "bin/jadb.dart" runHook postBuild ''; installPhase = '' runHook preInstall mkdir -p "$out" mv build/cli/*/bundle/* "$out/" runHook postInstall ''; autoPubspecLock = ../pubspec.lock; customSourceBuilders.sqlite3 = callPackage "${path}/pkgs/development/compilers/dart/package-source-builders/sqlite3/default.nix" { inherit sqlite; }; meta.mainProgram = "jadb"; }