Switch to mkClojureLib
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
{ lib, mkDerivation, callPackage, jre, ruby, clojure, build-tools-jar
|
||||
, writeScript, writeText, readFile, ... }:
|
||||
{ src, name, group, version, clj-deps, src-paths, ... }:
|
||||
|
||||
with lib;
|
||||
let
|
||||
build-tools-deps = writeText "deps.edn" ''
|
||||
{ :aliases
|
||||
{ :build
|
||||
{ :ns-default build
|
||||
:replace-deps {
|
||||
io.github.clojure/tools.build {
|
||||
:local/root "${build-tools-jar}"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
'';
|
||||
|
||||
deps = callPackage clj-deps { };
|
||||
classpath = clj-deps.makeClasspaths { };
|
||||
|
||||
uberjar-script = writeScript "uberjar-builder.rb" ''
|
||||
${ruby}/bin/ruby
|
||||
${readFile ./resources/uberjar-builder.rb}
|
||||
'';
|
||||
|
||||
full-name = "${group}-${name}-${version}-standalone.jar";
|
||||
|
||||
target = "$TEMP/target";
|
||||
|
||||
in mkDerivation {
|
||||
name = name;
|
||||
|
||||
src = src;
|
||||
|
||||
nativeBuildInputs = [ jre ];
|
||||
buildInputs = [ build-tools-jar ] ++ (map (x: x.paths) deps.packages);
|
||||
|
||||
buildPhase = ''
|
||||
HOME=$TEMP/home
|
||||
mkdir -p $HOME
|
||||
mkdir -p ${target}
|
||||
${uberjar-script}
|
||||
--root=$PWD \
|
||||
--classpath=${classpath} \
|
||||
--target=${target} \
|
||||
--project=${group}/${name} \
|
||||
--version=${version} \
|
||||
--build-deps=${built-tools-deps} \
|
||||
--source-paths=${concatStringsSep "," src-paths}
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mv ${target}/${name}-${version}-standalone.jar $out
|
||||
'';
|
||||
}
|
||||
Reference in New Issue
Block a user