diff options
| author | Shagun Agrawal <agrawalshagun07@gmail.com> | 2024-07-24 21:37:13 +0530 |
|---|---|---|
| committer | Shagun Agrawal <agrawalshagun07@gmail.com> | 2024-07-24 21:37:13 +0530 |
| commit | e81e86e937584a7f2345df43dc93a13793d10dc2 (patch) | |
| tree | c1f7658c700ccf78f27d6439b0642583825e642a | |
| parent | cc0df196ee35da434bd2ab69887354c296b3fbae (diff) | |
fix babashka script for building script
Changed babashka directory to create native build inside /target/cljcc
folder.
| -rw-r--r-- | bb.edn | 36 | ||||
| -rw-r--r-- | build.clj | 2 | ||||
| -rw-r--r-- | deps.edn | 3 | ||||
| -rw-r--r-- | src/cljcc/cljcc.clj | 7 |
4 files changed, 38 insertions, 10 deletions
@@ -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")}}} @@ -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"] @@ -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 |
