aboutsummaryrefslogtreecommitdiff
path: root/bb.edn
diff options
context:
space:
mode:
authorShagun Agrawal <agrawalshagun07@gmail.com>2024-07-24 21:37:13 +0530
committerShagun Agrawal <agrawalshagun07@gmail.com>2024-07-24 21:37:13 +0530
commite81e86e937584a7f2345df43dc93a13793d10dc2 (patch)
treec1f7658c700ccf78f27d6439b0642583825e642a /bb.edn
parentcc0df196ee35da434bd2ab69887354c296b3fbae (diff)
fix babashka script for building script
Changed babashka directory to create native build inside /target/cljcc folder.
Diffstat (limited to 'bb.edn')
-rw-r--r--bb.edn36
1 files changed, 36 insertions, 0 deletions
diff --git a/bb.edn b/bb.edn
new file mode 100644
index 0000000..c3da3be
--- /dev/null
+++ b/bb.edn
@@ -0,0 +1,36 @@
+{:tasks
+ {:requires ([babashka.fs :as fs]
+ [clojure.string :as str])
+ :init (let [windows? (str/starts-with? (System/getProperty "os.name") "Windows")]
+ (if windows?
+ (do
+ (println "Cannot run on Windows !")
+ (System/exit 1))))
+ clean (do
+ (println "Removing target folder.")
+ (fs/delete-tree "target"))
+
+ run-main {:doc "Run main"
+ :task (apply clojure "-M -m cljcc.cljcc" *command-line-args*)}
+ build-uberjar {:doc "Builds uberjar"
+ :task (when (seq (fs/modified-since "target/cljcc"
+ ["src" "build.clj" "deps.edn" "test" "resources"]))
+ (clojure "-T:build ci"))}
+ run-uberjar {:doc "Run uberjar"
+ :depends [build-uberjar]
+ :task (apply shell "java -jar target/cljcc/cljcc.jar" *command-line-args*)}
+ build-native {:doc "Builds native image"
+ :depends [build-uberjar]
+ :task
+ (shell {:dir "target/cljcc"}
+ "native-image"
+ "-jar" "cljcc.jar"
+ "-o" "cljcc"
+ "-Ob" ; quick compilation flag for development
+ ; "-H:Name=cljcc"
+ "-H:+ReportExceptionStackTraces"
+ "--features=clj_easy.graal_build_time.InitClojureClasses"
+ "--initialize-at-build-time"
+ "--report-unsupported-elements-at-runtime"
+ "--verbose"
+ "--no-fallback")}}}