From e81e86e937584a7f2345df43dc93a13793d10dc2 Mon Sep 17 00:00:00 2001 From: Shagun Agrawal Date: Wed, 24 Jul 2024 21:37:13 +0530 Subject: fix babashka script for building script Changed babashka directory to create native build inside /target/cljcc folder. --- bb.edn | 36 ++++++++++++++++++++++++++++++++++++ build.clj | 2 +- deps.edn | 3 --- src/cljcc/cljcc.clj | 7 +------ 4 files changed, 38 insertions(+), 10 deletions(-) create mode 100644 bb.edn 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")}}} diff --git a/build.clj b/build.clj index adbcbf1..be2c688 100644 --- a/build.clj +++ b/build.clj @@ -20,7 +20,7 @@ (defn- uber-opts [opts] (assoc opts :lib lib :main main - :uber-file (format "target/%s-%s.jar" lib version) + :uber-file "target/cljcc/cljcc.jar" :basis (b/create-basis {}) :class-dir class-dir :src-dirs ["src"] diff --git a/deps.edn b/deps.edn index 2f7d422..e6b7e08 100644 --- a/deps.edn +++ b/deps.edn @@ -4,9 +4,6 @@ com.github.clj-easy/graal-build-time {:mvn/version "1.0.5"}} :aliases {:run-m {:main-opts ["-m" "cljcc.cljcc"]} - :run-x {:ns-default cljcc.cljcc - :exec-fn greet - :exec-args {:name "Clojure"}} :build {:deps {io.github.clojure/tools.build {:mvn/version "0.10.3"}} :ns-default build} diff --git a/src/cljcc/cljcc.clj b/src/cljcc/cljcc.clj index 5d0be54..bfecc3b 100644 --- a/src/cljcc/cljcc.clj +++ b/src/cljcc/cljcc.clj @@ -5,13 +5,8 @@ (set! *warn-on-reflection* true) -(defn greet - "Callable entry point to the application." - [data] - (println (str "Hello, " (or (:name data) "World") "!"))) - (defn -main - "I don't do a whole lot ... yet." + "Main entrypoint for cljcc compiler." [& args] (let [input-file-path (first args)] (try -- cgit v1.2.3