Build-time helper: run the Souther annotation processor to generate the classes for a .sou
module, without Maven. This drives javac through the JDK compiler API (javax.tools), so the
only thing the caller must provide is the souther-compiler jar on the invoking classpath --
typically via a deps.edn alias -- where the processor is discovered by ServiceLoader.
Unlike the rest of souther-clj this namespace is not used at runtime; it depends on nothing beyond the JDK (it never imports the processor class, only names it to javac).
Build-time helper: run the Souther annotation processor to generate the classes for a `.sou` module, without Maven. This drives javac through the JDK compiler API (`javax.tools`), so the only thing the caller must provide is the `souther-compiler` jar on the invoking classpath -- typically via a deps.edn alias -- where the processor is discovered by ServiceLoader. Unlike the rest of souther-clj this namespace is not used at runtime; it depends on nothing beyond the JDK (it never imports the processor class, only names it to javac).
(generate! {:keys [source-dir trigger-dir class-dir]
:or {source-dir "src/main/souther"
trigger-dir "src/main/java"
class-dir "target/classes"}})Compile the .sou files in :source-dir into :class-dir by running SoutherProcessor over the
:trigger-dir Java sources. Defaults match the example layout. Returns :class-dir on success and
throws on failure. Requires a JDK (a system Java compiler) and souther-compiler on the classpath.
Compile the `.sou` files in :source-dir into :class-dir by running SoutherProcessor over the :trigger-dir Java sources. Defaults match the example layout. Returns :class-dir on success and throws on failure. Requires a JDK (a system Java compiler) and souther-compiler on the classpath.
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |