|
1 | 1 | (ns build |
2 | | - "build electric.jar library artifact" |
3 | | - (:require [clojure.tools.build.api :as b] |
4 | | - [deps-deploy.deps-deploy :as dd])) |
| 2 | + (:require [clojure.tools.build.api :as tools.build] |
| 3 | + [hyperfiddle.build :as build])) |
| 4 | + |
| 5 | +;; Expose generic tasks |
| 6 | +(def clean #'build/clean) |
| 7 | +(def install #'build/install) |
| 8 | +(def deploy #'build/deploy) |
| 9 | + |
| 10 | +(defn build [opts] ; custom build task because of AOT |
| 11 | + (build/clean opts) |
| 12 | + (let [basis (partial build/create-basis :project "deps.edn", :extra "../electric-secret/deps.edn") |
| 13 | + {:keys [class-dir src-dirs] :as opts} (build/defaults (basis :aliases [:release]) opts)] |
| 14 | + (tools.build/write-pom opts) |
| 15 | + (tools.build/copy-dir {:src-dirs src-dirs, :target-dir class-dir}) |
| 16 | + (tools.build/compile-clj {:basis (basis :aliases [:release :build-deps]) |
| 17 | + :class-dir class-dir |
| 18 | + :ns-compile '[hyperfiddle.electric.impl.entrypoint hyperfiddle.electric.impl.auth hyperfiddle.electric.impl.jwt hyperfiddle.electric.impl.auth0 hyperfiddle.electric.shadow-cljs.hooks3] |
| 19 | + :filter-nses '[hyperfiddle.electric.impl.entrypoint hyperfiddle.electric.impl.auth hyperfiddle.electric.impl.jwt hyperfiddle.electric.impl.auth0 hyperfiddle.electric.shadow-cljs.hooks3]}) |
| 20 | + (tools.build/jar opts))) |
5 | 21 |
|
6 | | -(def lib 'com.hyperfiddle/electric) |
7 | | -(def version "v3-alpha-SNAPSHOT" #_(b/git-process {:git-args "describe --long --always --dirty"})) |
8 | | -(def basis (b/create-basis {:project "deps.edn", :extra "../electric-secret/deps.edn", :aliases [:release]})) |
9 | | -(def aot-basis (b/create-basis {:project "deps.edn", :extra "../electric-secret/deps.edn", :aliases [:release :build-deps]})) |
10 | | - |
11 | | -(def class-dir "target/classes") |
12 | | - |
13 | | -(def defaults {:src-pom "src-build/pom-template.xml" :lib lib :class-dir class-dir}) |
14 | | - |
15 | | -(defn clean [opts] (b/delete {:path "target"})) |
16 | | - |
17 | | -(defn build [{:keys [version] :or {version version} :as opts}] |
18 | | - (clean opts) |
19 | | - (let [jar-file (format "target/%s-%s.jar" (name lib) version) |
20 | | - opts (assoc defaults |
21 | | - :version version |
22 | | - :basis basis |
23 | | - :class-dir class-dir |
24 | | - :jar-file jar-file |
25 | | - :scm {:tag version} |
26 | | - :src-dirs ["src"])] |
27 | | - (println "Writing pom.xml") |
28 | | - (b/write-pom opts) |
29 | | - (println "Copying resources to" class-dir) |
30 | | - (b/copy-dir {:src-dirs ["src"], :target-dir class-dir}) |
31 | | - (b/compile-clj {:basis aot-basis |
32 | | - :class-dir class-dir |
33 | | - :ns-compile '[hyperfiddle.electric.impl.entrypoint hyperfiddle.electric.impl.auth hyperfiddle.electric.impl.jwt hyperfiddle.electric.impl.auth0 hyperfiddle.electric.shadow-cljs.hooks3] |
34 | | - :filter-nses '[hyperfiddle.electric.impl.entrypoint hyperfiddle.electric.impl.auth hyperfiddle.electric.impl.jwt hyperfiddle.electric.impl.auth0 hyperfiddle.electric.shadow-cljs.hooks3]}) |
35 | | - (println "Building jar" jar-file) |
36 | | - (b/jar opts))) |
37 | | - |
38 | | -(defn install [{:keys [version] :or {version version}}] |
39 | | - (let [jar-file (format "target/%s-%s.jar" (name lib) version)] |
40 | | - (b/install {:basis basis |
41 | | - :lib lib |
42 | | - :version version |
43 | | - :jar-file jar-file |
44 | | - :class-dir class-dir}))) |
45 | | - |
46 | | -(defn deploy [opts] ; clojars |
47 | | - (let [{:keys [lib version class-dir installer jar-file] :as opts} (merge defaults opts)] |
48 | | - (assert version ":version is required to deploy") |
49 | | - (when (and installer (not= :remote installer)) |
50 | | - (println ":installer" installer "is deprecated -- use install task for local deployment")) |
51 | | - (let [jar-file (or jar-file (format "target/%s-%s.jar" (name (or lib 'application)) version))] |
52 | | - (dd/deploy (merge {:installer :remote :artifact (b/resolve-path jar-file) |
53 | | - :pom-file (b/pom-path {:lib lib :class-dir class-dir})} |
54 | | - opts))))) |
55 | | - |
56 | | -;; For reference |
57 | | -#_ |
58 | | -(defn compile-java [_] |
59 | | - (b/javac {:src-dirs ["src"] |
60 | | - :class-dir "src" |
61 | | - :basis basis |
62 | | - :javac-opts ["-source" "8" "-target" "8"]})) |
0 commit comments