diff options
| author | Your Name <agrawalshagun07@gmail.com> | 2025-04-26 01:35:36 +0530 |
|---|---|---|
| committer | Your Name <agrawalshagun07@gmail.com> | 2025-04-26 01:35:36 +0530 |
| commit | 0f07ef8ebfcbb7f9077246eec08fd1435cdaee46 (patch) | |
| tree | d4b943c77faab3a9c77b107341c02a9754830e4b /cljcc-compiler/build.clj | |
| parent | 18ae507a42c1e45b6e552fe95c675d1e4db58737 (diff) | |
Compile library to WASM using GraalVM.
Add main functions for library.
Convert to WASM image.
Setup public for cljcc website.
Diffstat (limited to 'cljcc-compiler/build.clj')
| -rw-r--r-- | cljcc-compiler/build.clj | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/cljcc-compiler/build.clj b/cljcc-compiler/build.clj new file mode 100644 index 0000000..68d7f95 --- /dev/null +++ b/cljcc-compiler/build.clj @@ -0,0 +1,28 @@ +(ns build + (:refer-clojure :exclude [test]) + (:require [clojure.tools.build.api :as b])) + +(def lib 'net.clojars.cljcc-lib/cljcc-lib) +(def main 'cljcc.cljcc) +(def class-dir "../target/classes") + +(defn- uber-opts [opts] + (assoc opts + :lib lib :main main + :uber-file "../target/lib/cljcc-lib.jar" + :basis (b/create-basis {}) + :class-dir class-dir + :src-dirs ["src"] + :ns-compile [main])) + +(defn ci "Run the CI pipeline of tests (and build the uberjar)." [opts] + (b/delete {:path "../target"}) + (let [opts (uber-opts opts)] + (println "\nCopying source...") + (b/copy-dir {:src-dirs ["resources" "src"] :target-dir class-dir}) + (println (str "\nCompiling " main "...")) + (b/compile-clj opts) + (println "\nBuilding JAR...") + (b/uber opts) + (println "\nJAR built.")) + opts) |
