aboutsummaryrefslogtreecommitdiff
path: root/cli
diff options
context:
space:
mode:
authorYour Name <agrawalshagun07@gmail.com>2025-03-16 14:53:45 +0530
committerYour Name <agrawalshagun07@gmail.com>2025-03-16 14:53:45 +0530
commit277319fa392f5ee9f21eedf2c4d224739f045690 (patch)
treef2e3a89de7946647d7560db242e7ce22fda25a5c /cli
parent39b6930e14cfda58fd066805f5da447c685ab67f (diff)
Add common functions for handling cljcc compiler
Diffstat (limited to 'cli')
-rw-r--r--cli/build.clj27
-rw-r--r--cli/deps.edn4
-rw-r--r--cli/src/cli/cli.clj2
-rw-r--r--cli/src/cli/driver.clj3
4 files changed, 34 insertions, 2 deletions
diff --git a/cli/build.clj b/cli/build.clj
new file mode 100644
index 0000000..47c8537
--- /dev/null
+++ b/cli/build.clj
@@ -0,0 +1,27 @@
+(ns build
+ (:refer-clojure :exclude [test])
+ (:require [clojure.tools.build.api :as b]))
+
+(def lib 'net.clojars.cljcc/cljcc)
+(def main 'cljcc.cljcc)
+(def class-dir "../target/classes")
+
+(defn- uber-opts [opts]
+ (assoc opts
+ :lib lib :main main
+ :uber-file "../target/cljcc/cljcc.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))
+ opts)
diff --git a/cli/deps.edn b/cli/deps.edn
index 8d06ce6..b0313f3 100644
--- a/cli/deps.edn
+++ b/cli/deps.edn
@@ -1,4 +1,8 @@
{:paths ["src"]
+ :deps {org.clojure/clojure {:mvn/version "1.11.1"}
+ org.clojure/tools.cli {:mvn/version "1.1.230"}
+ com.github.clj-easy/graal-build-time {:mvn/version "1.0.5"}
+ cljcc/cljcc {:local/root "../cljcc-compiler"}}
:aliases
{:run
{:main-opts ["-m" "cli.cli"]}}}
diff --git a/cli/src/cli/cli.clj b/cli/src/cli/cli.clj
index f7aba04..5f27187 100644
--- a/cli/src/cli/cli.clj
+++ b/cli/src/cli/cli.clj
@@ -2,7 +2,7 @@
(:require
[clojure.tools.cli :refer [parse-opts]]
[clojure.string :as string]
- [cljcc.util :refer [exit]]
+ [cli.core.shell :refer [exit]]
[cli.driver :as driver])
(:gen-class))
diff --git a/cli/src/cli/driver.clj b/cli/src/cli/driver.clj
index 41a916f..76723f5 100644
--- a/cli/src/cli/driver.clj
+++ b/cli/src/cli/driver.clj
@@ -1,3 +1,4 @@
-(ns cli.driver)
+(ns cli.driver
+ (:require [cljcc.cljcc :as cljcc]))
(defn run [& args])