Skip to content

Instantly share code, notes, and snippets.

@kawas44
Created March 25, 2024 22:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kawas44/d2708be3f0a3ae405a6a0070e74e4881 to your computer and use it in GitHub Desktop.
Save kawas44/d2708be3f0a3ae405a6a0070e74e4881 to your computer and use it in GitHub Desktop.
Add tools.build to Missionary
(ns build
(:require [clojure.tools.build.api :as b]))
(def lib 'missionary/missionary)
(def version "b.34p") ;;;; warning: local version
(def class-dir "target/classes")
(def jar-file (format "target/%s-%s.jar" (name lib) version))
;; delay to defer side effects (artifact downloads)
(def basis (delay (b/create-basis {:project "deps.edn"})))
(defn clean [_]
(b/delete {:path "target"}))
(defn compile-java [_]
(b/javac {:basis @basis
:src-dirs ["java/missionary"
"java/missionary/impl"]
:class-dir class-dir}))
(defn jar [_]
(b/write-pom {:class-dir class-dir
:lib lib
:version version
:basis @basis
:src-dirs ["src"]})
(b/copy-dir {:src-dirs ["src"]
:target-dir class-dir})
(compile-java nil)
(b/jar {:class-dir class-dir
:jar-file jar-file}))
{:deps
{org.clojure/clojure {:mvn/version "1.11.2"}
org.reactivestreams/reactive-streams {:mvn/version "1.0.4"}
;;;; warning: using a local version
cloroutine/cloroutine {:local/root "../cloroutine"}}
:paths ["src" "target/classes"]
:aliases
{:tck
{:extra-deps {org.reactivestreams/reactive-streams-tck {:mvn/version "1.0.4"}}}
:build
{:deps {io.github.clojure/tools.build {:git/tag "v0.10.0" :git/sha "3a2c484"}}
:ns-default build}
:clj-test
{:extra-deps {com.cognitect/test-runner
{:git/url "https://github.com/cognitect-labs/test-runner.git"
:sha "028a6d41ac9ac5d5c405dfc38e4da6b4cc1255d5"}}
:extra-paths ["test"]
:main-opts ["-m" "cognitect.test-runner"]}
:clj-test-watch {:extra-deps {lambdaisland/kaocha {:mvn/version "1.69.1069"}}
:extra-paths ["test"]
:exec-fn missionary.test-dev/run}
:cljs-test
{:extra-deps {olical/cljs-test-runner {:mvn/version "3.8.0"}
org.clojure/clojurescript {:mvn/version "1.11.60"}}
:extra-paths ["test" "cljs-test-runner-out/gen"]
:main-opts ["-m" "cljs-test-runner.main"]}}}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment