-
Notifications
You must be signed in to change notification settings - Fork 0
/
project.clj
248 lines (197 loc) · 13.2 KB
/
project.clj
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
(defproject no.andante.george/george-application "2019.1.5"
:description "George - the main application code"
:url "https://bitbucket.org/andante-george/george-application"
:license {:name "Eclipse Public License"
:url "http://www.eclipse.org/legal/epl-v10.html"}
:dependencies [;; https://clojure.org/community/downloads
[org.clojure/clojure "1.10.0"]
;; https://github.com/clojure/core.async
[org.clojure/core.async "0.4.490" :exclusions [org.ow2.asm/asm-all]]
;; https://github.com/clojure/tools.reader
[org.clojure/tools.reader "1.3.2"]
;; https://github.com/mmcgrana/clj-stacktrace
[clj-stacktrace "0.2.8"]
;; https://github.com/cemerick/nREPL
[nrepl "0.5.3"]
;; https://github.com/FXMisc/RichTextFX
[org.fxmisc.richtext/richtextfx "0.10.0"]
;; https://github.com/TomasMikula/Flowless
[org.fxmisc.flowless/flowless "0.6.1"]
;; https://github.com/droitfintech/clj-diff
[tech.droit/clj-diff "1.0.0"]
;; https://github.com/clojure/core.rrb-vector
[org.clojure/core.rrb-vector "0.0.13"]
;; https://github.com/clojure/data.json
[org.clojure/data.json "0.2.6"]
;; https://github.com/weavejester/environ
[environ "1.1.0" :exclusions [org.clojure/clojure]]
;; https://github.com/ztellman/potemkin
[potemkin "0.4.5"]
;; https://github.com/yogthos/markdown-clj
[markdown-clj "1.0.5"]
;; https://github.com/amalloy/ordered
[org.flatland/ordered "1.5.7"]
;; https://github.com/zcaudate/hara
;; http://docs.caudate.me/hara/hara-io-watch.html
[zcaudate/hara.common.watch "2.8.7"]
[zcaudate/hara.io.watch "2.8.7"]
;; https://github.com/terjedahl/junique
[it.sauronsoftware/junique "1.0.4"]
;; https://github.com/aalmiray/ikonli
[org.kordamp.ikonli/ikonli-javafx "11.1.0"]
;; https://fontawesome.com/
[org.kordamp.ikonli/ikonli-fontawesome5-pack "11.1.0"]
;; https://asm.ow2.io/index.html
[org.ow2.asm/asm "7.1"]
[org.ow2.asm/asm-tree "7.1"]
;; https://github.com/java-diff-utils/java-diff-utils
[io.github.java-diff-utils/java-diff-utils "4.0"]]
:jar-exclusions [#".DS_Store" #"arm.spraklab.*(clj|java)$"]
:plugins [;; Required as plugins
;; https://github.com/weavejester/environ
[lein-environ "1.1.0"]
;; https://github.com/weavejester/codox
[lein-codox "0.10.5"]
;; https://github.com/technomancy/leiningen/tree/stable/lein-pprint
[lein-pprint "1.2.0"]
;; Required by custom tasks
[environ "1.1.0" :exclusions [org.clojure/clojure]]
;; https://github.com/yogthos/Selmer
[selmer "1.12.5"]
;; https://www.eclipse.org/jetty
[org.eclipse.jetty/jetty-server "9.0.0.v20130308"]
;; https://github.com/cemerick/pomegranate
[com.cemerick/pomegranate "1.1.0"]
;; https://github.com/kumarshantanu/lein-exec
[lein-exec "0.3.7"]
;; https://github.com/xsc/lein-ancient
[lein-ancient "0.6.15"]]
:repositories [;; junique
["github-terjedahl-junique"
{:url "https://raw.githubusercontent.com/terjedahl/junique/master/maven2"
:snapshots false}]]
:deploy-repositories [["snapshots" :clojars]
["releases" :clojars]]
:source-paths ["src/clj" "src_spraklab/clj" "src_common"]
:java-source-paths ["src/java" "src_spraklab/java"]
:resource-paths ["src/rsc" "src_spraklab/rsc"
"src/include" "src_spraklab/include"]
:javac-options ["-source" "11" "-target" "11"]
;"-Xlint:unchecked" "-Xlint:deprecation"]
;; --module-path and --add-modules= ar appended via middleware
:jvm-opts [;; should give crisper text on Mac
"-Dapple.awt.graphics.UseQuartz=true"
;; Prevent rendering issue seen on Windows and in lein run (from IDE shell) ... and even MacOS
;; TODO: Investigate more!
"-Dprism.dirtyopts=false"]
;; --module-path and --add-modules=are appended via middleware
:prep-task ["javac" "compile"]
:aot [no.andante.george.Launch]
:main no.andante.george.Launch
;; Is used by 'lein jar' and others
:target-path "target/default/%s/"
;; Is used by 'lein clean'
:clean-targets ^:replace ["target/"]
;; We want to use the target-path for different things, but not have it totally cleaned whenever we run 'uberjar'.
;; Of course we then need to clean it ourselves when necessary.
:auto-clean false
;; Custom middleware
:middleware [leiningen.george.middleware/inject-javafx-modules]
;:implicit-middleware false
;; Default config for 'lein server'
:server {:port 9998
:dir "."}
;; One of these are selected based on [:build :properties :app]
;; and written (via middleware in :dev) or when building JAR to file rsc/george-server
:george-servers {"George" "https://server.george.andante.no"
"George-TEST" "https://test.server.george.andante.no"
;; Uncomment this if you are not running george-server locally.
;"George-DEV" "https://dev.server.george.andante.no"
:default "http://localhost:6500"}
:build {:properties {:app "George-DEV"}
:msi-upgrade-codes {"George-TEST" "CB327885-311F-4724-AD4F-C15C7EAB33AB"
"George" "14DE2AD0-4422-4D1F-8D80-F8EC5B9186BA"
:default "92DB4AE3-F596-4FCA-8CB1-5E7B45A95340"}
:splash-image "george_icon_128.png"
;; Config for 'lein site'
:site {:port 9999}}
:modules {;; Download SKSs and jmods from: https://gluonhq.com/products/javafx/
;; Required for javac, compile, java (building JAR and running lein and/or repl)
:libs {"Windows" "javafx-libs\\Windows\\javafx-sdk-12.0.1\\lib"
"MacOS" "javafx-libs/MacOS/javafx-sdk-12.0.1/lib"
"Linux" "javafx-libs/Linux/javafx-sdk-12.0.1/lib"}
;; Required for jlink (building JRE)
:mods {"Windows" "javafx-libs\\Windows\\javafx-jmods-12.0.1"
"MacOS" "javafx-libs/MacOS/javafx-jmods-12.0.1"
"Linux" "javafx-libs/Linux/javafx-jmods-12.0.1"}
;; https://docs.oracle.com/en/java/javase/11/docs/api/index.html
:java [;; Currently required
:java.sql
:java.scripting
:jdk.scripting.nashorn
:java.desktop
;; Required for Marlin rendering engine and Clojure
;; (JavaFX modules themselves are dependencies as per Java 11)
:jdk.unsupported
;; Required for Swing JavaFX interop. Will not be needed for JavaFX 12
;; https://bugs.openjdk.java.net/browse/JDK-8210759
:jdk.unsupported.desktop
;; Currently not required
:java.logging
;; Required to get javac
:jdk.compiler
;; Required to get jdeps, jlink, jmod, et al
:jdk.jlink
;; Required for no.andante.george.Agent
:java.instrument]
;; https://openjfx.io
:javafx [:javafx.controls
:javafx.fxml
:javafx.swing ;; required for george.javafx and Språklab
:javafx.web
:javafx.media]}
:aliases {"george" ^{:doc " Print a list of custom tasks for the George project."}
["george"]
"run-splash" ^{:doc " Same as (lein) 'run', but includes the splash screen."}
["with-profile" "with-splash" "run"]}
;; to get PID for this port in unix shell, do: sudo lsof -n -i :55055
;:repl-options {:port 55055}
:codox {:doc-paths ["docs"]
:output-path "target/docs"
:namespaces [george.application.turtle.turtle]
:source-uri
"https://bitbucket.org/andante-george/george-application/src/default/{filepath}?at=default#{basename}-{line}"
:html {:namespace-list :flat}}
:profiles {:repl {:env {:repl? "true"}}
:dev [:dev-common :dev-overrides]
;; Use this to optionally override anything in :dev-common this in your profiles.clj
:dev-overrides {}
:dev-common {;; Is used by 'lein javac', 'lein compile', 'lein run'
:target-path "target/classes/%s/"
:java-source-paths ["src_dev/java"]
:source-paths ["src_dev/clj" "src_lein"]
:resource-paths ["src_dev/rsc"]
;; https://github.com/technomancy/leiningen/wiki/Faster
:jvm-opts ["-Xverify:none"]
:dependencies [;; Not required, but included here (also) for IDE support
[selmer "1.12.5"]
;; https://repo.clojars.org/leiningen/leiningen/
[leiningen "2.8.1" :exclusions [org.clojure/clojure clj-stacktrace]]
[org.eclipse.jetty/jetty-server "9.0.0.v20130308"]
[org.openjfx/javafx-controls "12.0.1"]
[org.openjfx/javafx-fxml "12.0.1"]
[org.openjfx/javafx-swing "12.0.1"]
[org.openjfx/javafx-web "12.0.1"]
[org.openjfx/javafx-media "12.0.1"]]}
;; You may want to override this in your profiles.clj
;; - as :dev-overrides, not :dev or :dev-common
:uberjar {;; Is applied by 'uberjar' TODO: Investigate: Doesn't seem to have any effect.
:target-path "target/uberjar/"
:prep-task ^:replace ["clean" "javac" "compile"]
:aot :all
:manifest {;; Required to pick up the Java9+ version from RichTextFX MRJ
"Multi-Release" "true"
;; Required for no.andante.george.Agent
"Premain-Class" "no.andante.george.Agent"
"Can-Retransform-Classes" "true"}}
:with-splash {:with-splash true}})