-
Notifications
You must be signed in to change notification settings - Fork 22
/
build.sbt
617 lines (525 loc) · 24 KB
/
build.sbt
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
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
import Utils.utils
import sbt.Keys.{scalacOptions, _}
import scala.io.Source
ThisBuild / utils := Utils((src / baseDirectory).value)
// If in doubt, always use utils.root or the other File properties on utils to construct
// paths!
// This ensures other SBT projects being able to use MMT as a subproject in a multiproject SBT
// build, see https://github.com/UniFormal/MMT/pull/449.
// =================================
// META-DATA and Versioning
// =================================
ThisBuild / version := {
Source.fromFile(baseDirectory.value / "mmt-api/resources/versioning/system.txt").getLines.mkString.trim
}
val now = {
import java.text.SimpleDateFormat
import java.util.Date
new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(new Date())
}
packageOptions in Global ++= Seq(
// Specification Version can be any string, and hence includes the build time
Package.ManifestAttributes("Implementation-Version" -> (version.value + s" (built $now)")),
// implementation version *has to be* ascii digits seperated by ascii periods
Package.ManifestAttributes("Specification-Version" -> version.value),
// custom build-time attribute
Package.ManifestAttributes("Build-Time" -> now)
)
ThisBuild / organization := "info.kwarc.mmt"
lazy val mmtMainClass = "info.kwarc.mmt.api.frontend.Run"
// =================================
// GLOBAL SETTINGS
// =================================
// !!!WARNING!!!
// If you update scalaVersion, also
// (1) update apiJars and redownload updated deps
// (2) verify whether there is a Scala paradise plugin available on Maven central for the new Scala version
// Search for "paradise" way to below to find the dependency "org.scalamacros" % "paradise_****" in this build.sbt file.
//
Global / scalaVersion := "2.13.4"
Global / scalacOptions := Seq(
"-feature",
"-language:postfixOps", "-language:implicitConversions", "-language:reflectiveCalls", "-language:existentials",
"-deprecation", // turn on deprecation warnings
// turn down the severity of specific warnings
"-Wconf:msg=early initializers are deprecated*:i", // Info all "early initializers are deprecated" (need to fix in scala3)
"-Wconf:cat=other-match-analysis:i", // Info all "non-exhaustive match" warnings
"-Wconf:msg=Exhaustivity analysis reached max recursion depth*:s", // Disable "Exhaustivity analysis reached max recursion depth"
"-Wconf:msg=.*MMT_TODO.*:i", // Info all the MMT_TODOs
// "-Wconf:msg=.*MMT_TODO.*:s", // to temporarily disable
// "-Xno-patmat-analysis", // to temporarily disable
// "-Xmax-classfile-name", "128", // fix long classnames on weird filesystems // does not exist anymore since scala 2.13.*
"-sourcepath", baseDirectory.value.getAbsolutePath // make sure that all scaladoc source paths are relative
)
Global / parallelExecution := false
Global / javaOptions ++= Seq("-Xmx2g")
publish := {}
Test / fork := true
Test / testOptions += Tests.Argument("-oI")
// =================================
// DEPLOY TASKS
// =================================
val deploy = TaskKey[Unit]("deploy", "copies packaged jars for MMT projects to deploy location.")
val deployLFCatalog = TaskKey[Unit]("deployLFCatalog", "builds a stand-alone lfcatalog.jar")
val install = TaskKey[Unit]("install", "copies jedit jars to local jedit installation folder.")
val testSetup = TaskKey[Unit]("testSetup", "tests the MMT :setup command")
// =================================
// DOCUMENTATION TASKS
// =================================
ScalaUnidoc / unidoc / scalacOptions ++=
"-diagrams" +:
Opts.doc.title("MMT") ++:
Opts.doc.sourceUrl({
val repo = System.getenv("GITHUB_REPOSITORY")
s"https://github.com/${if (repo != null) repo else "UniFormal/MMT"}/blob/master/src€{FILE_PATH}.scala"
})
ScalaUnidoc / unidoc / target := file("../apidoc")
lazy val cleandoc = taskKey[Unit]("remove api documentation.")
cleandoc := Utils.delRecursive(streams.value.log, file("../apidoc"))
lazy val apidoc = taskKey[Unit]("generate post processed api documentation.")
apidoc := Unit
apidoc := apidoc.dependsOn(cleandoc, src / Compile / unidoc ).value
// =================================
// SHARED SETTINGS
// =================================
/** settings shared by all projects */
def commonSettings(nameStr: String) = Seq(
name := nameStr,
sourcesInBase := false,
autoAPIMappings := true,
exportJars := true,
libraryDependencies += "org.scalatest" %% "scalatest" % "3.2.12" % "test",
fork := true,
assembly / test := {},
assembly / assemblyMergeStrategy := {
case PathList("META-INF","services", _*) => MergeStrategy.first
case
PathList("rootdoc.txt") | // 2 versions from from scala jars
PathList("META-INF", _*) => // should never be merged anyway
MergeStrategy.discard
// work around Florian's obsession with unmanaged jars
// otherwise, we wouldn't need this
case _ => MergeStrategy.first
},
// errors for assembly only
assembly / logLevel := Level.Error
)
/** settings reused by MMT projects */
def mmtProjectsSettings(nameStr: String) = commonSettings(nameStr) ++ Seq(
Compile / scalaSource := baseDirectory.value / "src",
Test / scalaSource := baseDirectory.value / "test" / "scala",
Compile / resourceDirectory := baseDirectory.value / "resources",
unmanagedBase := baseDirectory.value / "lib",
publishTo := Some(Resolver.file("file", utils.value.deploy.toJava / " main")),
install := {},
deploy := Utils.deployPackage("main/" + nameStr + ".jar").value,
testSetup := utils.value.testSetup
)
// =================================
// EXCLUDED PROJECTS
// =================================
import VersionSpecificProject._
lazy val excludedProjects = {
Exclusions()
.java7(repl, odk)
.java9(concepts)
}
// =================================
// Main MMT Projects
// =================================
// the aggregating meta project, used for manual testing and building api documentation
lazy val src = (project in file(".")).
enablePlugins(ScalaUnidocPlugin).
exclusions(excludedProjects).
aggregatesAndDepends(
mmt, api,
lf, concepts, owl, mizar, frameit, mathscheme, pvs, tps, imps, isabelle, odk, specware, stex, mathhub, latex, openmath, oeis, repl, aldor, coq, glf,
tiscaf, lfcatalog,
jedit, intellij,buildserver
).
settings(
ScalaUnidoc / unidoc / unidocProjectFilter := excludedProjects.toFilter,
// add the test folder to the test sources
// but don't actually run any of them
Test / scalaSource := baseDirectory.value / "test",
test := {},
// This silences a dependency semver version conflict from the frameit project.
// It is necessary to have this silencing mechanism both in the frameit project
// and here in the super project (I guess because the version conflict somehow
// bubbles up?)
libraryDependencySchemes ++= Seq(
// see https://github.com/circe/circe-iteratee/issues/261
"io.circe" %% "circe-jawn" % VersionScheme.Always,
// see https://github.com/sbt/sbt/issues/7140#issuecomment-1464119328
"io.circe" % "circe-jawn_2.13" % VersionScheme.Always
)
)
// This is the main project. 'mmt/deploy' compiles all relevants subprojects, builds a self-contained jar file, and puts into the deploy folder, from where it can be run.
lazy val mmt = (project in file("mmt")).
exclusions(excludedProjects).
dependsOn(stex, pvs, specware, oeis, odk, jedit, latex, openmath, mizar, imps, isabelle, repl, concepts, mathhub, python, intellij, aldor, coq, lean, glf, lsp, buildserver).
settings(mmtProjectsSettings("mmt"): _*).
settings(
exportJars := false,
publish := {},
deploy := Def.taskDyn {
val jar = (Compile / assembly).value
val u = utils.value
Def.task {
Utils.deployTo(u.deploy / "mmt.jar")(jar)
}
}.value,
assembly / assemblyExcludedJars := {
val cp = (assembly / fullClasspath).value
cp filter { j => jeditJars.contains(j.data.getName) }
},
Compile / mainClass := Some(mmtMainClass),
run / connectInput := true,
assembly / mainClass := Some(mmtMainClass)
)
// =================================
// MMT Projects: central projects
// =================================
// MMT is split into multiple subprojects to that are managed independently.
def apiJars(u: Utils) = Seq(
"scala-compiler.jar",
"scala-library.jar",
"scala-parser-combinators.jar",
"scala-xml.jar",
"xz.jar",
"scala-parallel-collections.jar",
).map(u.lib.toJava / _)
// The kernel upon which everything else depends. Maintainer: Florian
lazy val api = (project in file("mmt-api")).
settings(mmtProjectsSettings("mmt-api"): _*).
dependsOn(tiscaf).
dependsOn(lfcatalog).
settings(
Compile / scalacOptions ++= Seq("-language:existentials"),
Compile / scalaSource := baseDirectory.value / "src" / "main",
Compile / unmanagedJars ++= apiJars(utils.value),
Test / unmanagedJars ++= apiJars(utils.value),
libraryDependencies += "org.eclipse.rdf4j" % "rdf4j-repository-sail" % "4.3.3",
libraryDependencies += "org.eclipse.rdf4j" % "rdf4j-sail-memory" % "4.3.3",
libraryDependencies += "org.eclipse.rdf4j" % "rdf4j-sparqlbuilder" % "4.3.3",
libraryDependencies += "org.eclipse.rdf4j" % "rdf4j-rio-rdfxml" % "4.3.3",
libraryDependencies += "org.eclipse.rdf4j" % "rdf4j-rio-binary" % "4.3.3"
)
// Some foundation-specific extensions. Maintainer: Florian
lazy val lf = (project in file("mmt-lf")).
dependsOn(api % "compile -> compile; test -> test").
dependsOn(tiscaf).
dependsOn(lfcatalog).
settings(mmtProjectsSettings("mmt-lf"): _*).
settings(
// libraryDependencies += "org.scala-lang" % "scala-parser-combinators" % "1.2.0-M1" % "test",
)
// =================================
// MMT Projects: plugins for using MMT in other applications
// =================================
// jars to be used in Compile but not in the fat jar
val jeditJars = Seq(
"Console.jar",
"ErrorList.jar",
"Hyperlinks.jar",
"jedit.jar",
"SideKick.jar",
"jsr.jar"
)
// using MMT inside jEdit. Maintainer: Florian
lazy val jedit = (project in file("jEdit-mmt")).
dependsOn(api, lf).
settings(commonSettings("jEdit-mmt"): _*).
settings(
Compile / scalaSource := baseDirectory.value / "src",
Compile / resourceDirectory := baseDirectory.value / "src/resources",
Compile / unmanagedJars ++= jeditJars map (baseDirectory.value / "lib" / _),
deploy := Utils.deployPackage("main/MMTPlugin.jar").value,
install := utils.value.installJEditJars
)
// MMT IntelliJ-Plugin. Maintainer: Dennis
lazy val intellij = (project in file("intellij-mmt")).
dependsOn(api, lf).
settings(mmtProjectsSettings("intellij-mmt"): _*)
// MMT build server. Maintainer: Dennis
lazy val buildserver = (project in file("mmt-buildserver")).
dependsOn(api, lf, stex).
settings(mmtProjectsSettings("mmt-buildserver"): _*).
settings(
Compile / unmanagedJars += utils.value.lib.toJava / "jgit.jar",
Compile / unmanagedJars += utils.value.lib.toJava / "slf4j.jar",
Test / unmanagedJars += utils.value.lib.toJava / "jgit.jar",
)
/*.
settings(
libraryDependencies ++= Seq(
"io.methvin" %% "directory-watcher-better-files" % "0.15.1"
)
)*/
lazy val coq = (project in file("mmt-coq")).
dependsOn(api, lf).
settings(mmtProjectsSettings("mmt-coq"): _*)
lazy val lean = (project in file("mmt-lean")).
dependsOn(api, lf).
settings(mmtProjectsSettings("mmt-lean"): _*)
lazy val aldor = (project in file("mmt-aldor")).
dependsOn(api, lf).
settings(mmtProjectsSettings("mmt-aldor"): _*)
lazy val lsp = (project in file("mmt-lsp")).
dependsOn(api,lf).
settings(mmtProjectsSettings("mmt-lsp"): _*).
settings(
libraryDependencies += "org.eclipse.lsp4j" % "org.eclipse.lsp4j" % "0.20.1",
libraryDependencies += "org.eclipse.lsp4j" % "org.eclipse.lsp4j.websocket" % "0.20.1",
//libraryDependencies += "org.eclipse.jetty" % "jetty-server" % "11.0.9",
//libraryDependencies += "org.eclipse.jetty" % "jetty-servlet" % "11.0.9",
libraryDependencies += "org.eclipse.jetty.websocket" % "javax-websocket-server-impl" % "9.4.50.v20221201",
libraryDependencies += "org.scala-lang.modules" %% "scala-java8-compat" % "1.0.2"
)
/*
settings(unmanagedJars in Compile += baseDirectory.value / "lib" / "lsp4j.jar").
settings(unmanagedJars in Compile += baseDirectory.value / "lib" / "jsonrpc.jar").
settings(unmanagedJars in Compile += baseDirectory.value / "lib" / "gson.jar").
settings(unmanagedJars in Compile += baseDirectory.value / "lib" / "compat.jar").
settings(unmanagedJars in Compile += baseDirectory.value / "lib" / "xtext.jar").
settings(unmanagedJars in Compile += baseDirectory.value / "lib" / "guava.jar").
settings(unmanagedJars in Compile += baseDirectory.value / "lib" / "lsp4j-websocket.jar").
settings(unmanagedJars in Compile += baseDirectory.value / "lib" / "javax-websocket.jar").
settings(unmanagedJars in Compile += baseDirectory.value / "lib" / "jetty-server.jar") */
// using MMT as a part of LaTeX. Maintainer: Florian
lazy val latex = (project in file("latex-mmt")).
dependsOn(stex).
settings(mmtProjectsSettings("latex-mmt"): _*)
// using MMT in the OpenDreamKit project, includes language plugins for various systems such as GAP or Sage. Maintainer: Dennis
lazy val odk = (project in file("mmt-odk")).
dependsOn(api, lf % "compile -> compile; test -> test").
settings(mmtProjectsSettings("mmt-odk"): _*)
// MMT-Mathhub backend. Maintainer: Tom
lazy val mathhub = (project in file("mathhub-mmt")).
dependsOn(api).
settings(mmtProjectsSettings("mathhub-mmt"): _*)
// using MMT in the planetary/MathHub systems. Orginally developed by Mihnea, functional but should be reviewed
lazy val planetary = (project in file("planetary-mmt")).
dependsOn(stex).
settings(mmtProjectsSettings("planetary-mmt"): _*)
// GLF (Grammatical Framework etc.). Maintainer: Frederik
lazy val glf = (project in file("mmt-glf")).
dependsOn(api, lf, repl).
settings(mmtProjectsSettings("mmt-glf"): _*)
// using MMT from Python via Py4J, maintainer: Florian
lazy val python = (project in file("python-mmt")).
dependsOn(api, odk).
settings(mmtProjectsSettings("python-mmt"): _*).
settings(Compile / unmanagedJars += baseDirectory.value / "lib" / "py4j0.10.7.jar")
// graph optimization. Maintainer: Michael Banken
lazy val got = (project in file("mmt-got")).
dependsOn(api).
settings(mmtProjectsSettings("mmt-got"): _*)
// =================================
// MMT projects: additional (optional) functionality that is factored out into separate projects due to dependencies
// =================================
// auto-completion in the shell. Maintainer: Tom
lazy val repl = (project in file("mmt-repl")).
dependsOn(api).
settings(mmtProjectsSettings("mmt-repl")).
settings(
libraryDependencies ++= Seq(
"org.jline" % "jline" % "3.18.0"
)
)
// alignment-based concept browser. Maintainer: Dennis
lazy val concepts = (project in file("concept-browser")).
dependsOn(api).
dependsOn(tiscaf).
dependsOn(lfcatalog).
settings(mmtProjectsSettings("concept-browser"): _*).
settings(
libraryDependencies ++= Seq(
"org.ccil.cowan.tagsoup" % "tagsoup" % "1.2"
),
Compile / unmanagedJars += utils.value.lib.toJava / "scala-xml.jar"
)
// =================================
// MMT Projects: plugins for working with other languages in MMT
// =================================
// plugin for reading OWL. Originally developed by Füsun
lazy val owl = (project in file("mmt-owl")).
dependsOn(api, lf).
settings(mmtProjectsSettings("mmt-owl"): _*).
settings(
Compile / unmanagedJars += baseDirectory.value / "lib" / "owlapi-bin.jar"
)
// plugin for reading Mizar. Originally developed by Mihnea
lazy val mizar = (project in file("mmt-mizar")).
dependsOn(api, lf).
settings(mmtProjectsSettings("mmt-mizar"): _*)
// use of MMT in the frameit system, here for ease of deployment but not part of the main mmt target
// reponsible: Navid
// finch is an HTTP server library (https://github.com/finagle/finch), a FrameIT dependency
val finchVersion = "0.34.1"
lazy val frameit = (project in file("frameit-mmt"))
.dependsOn(api, lf, odk)
.settings(mmtProjectsSettings("frameit-mmt"): _*)
.settings(
libraryDependencies ++= Seq(
// a server infrastructure library
"com.twitter" %% "twitter-server" % "22.12.0",
// an incarnation of an HTTP server library for the above infrastructure
"com.github.finagle" %% "finch-core" % finchVersion,
// with ability to automatically encode/decode JSON payloads via the circe library below
"com.github.finagle" %% "finch-circe" % finchVersion,
"com.github.finagle" %% "finch-generic" % finchVersion,
// and with testing abilities
"com.github.finagle" %% "finch-test" % finchVersion % "test",
"com.github.finagle" %% "finch-json-test" % finchVersion % "test",
"org.scalatest" %% "scalatest" % "3.2.3" % "test",
// io.circe is a JSON library
"io.circe" %% "circe-core" % "0.14.5",
"io.circe" %% "circe-parser" % "0.14.5",
// with extras to support encoding/decoding a case class hierarchy
"io.circe" %% "circe-generic-extras" % "0.14.3"
// (as for why the versions for circe-core and circe-generic-extras are different, see
// https://github.com/circe/circe-generic-extras/issues/279)
),
// This silences a dependency semver version conflict.
// It is necessary to have this silencing mechanism both here and in the super project src
// (I guess because the version conflict somehow bubbles up?)
libraryDependencySchemes ++= Seq(
// see https://github.com/circe/circe-iteratee/issues/261
"io.circe" %% "circe-jawn" % VersionScheme.Always,
// see https://github.com/sbt/sbt/issues/7140#issuecomment-1464119328
"io.circe" % "circe-jawn_2.13" % VersionScheme.Always
),
Compile / scalacOptions ++= Seq(
// "-Xplugin-require:macroparadise"
"-Ymacro-annotations"
),
deploy := Def.taskDyn {
val jar = (Compile / assembly).value
Def.task {
Utils.deployTo(utils.value.deploy / "frameit.jar")(jar)
}
}.value,
Compile / mainClass := Some("info.kwarc.mmt.frameit.communication.server.Server"),
assembly / mainClass := Some("info.kwarc.mmt.frameit.communication.server.Server")
)
// plugin for mathscheme-related functionality. Obsolete
lazy val mathscheme = (project in file("mmt-mathscheme")).
dependsOn(api, lf).
settings(mmtProjectsSettings("mmt-mathscheme"): _*)
// plugin for reading PVS. Maintainer: Dennis
lazy val pvs = (project in file("mmt-pvs")).
dependsOn(api, lf).
settings(mmtProjectsSettings("mmt-pvs"): _*)
// plugin for reading metamath
/*lazy val mmscala = RootProject(uri("https://github.com/UniFormal/mm-scala#master"))
lazy val metamath = (project in file("mmt-metamath")).
dependsOn(api, lf, mmscala).
settings(mmtProjectsSettings("mmt-metamath"): _*) */
// plugin for reading isabelle. Author: Makarius Wenzel
// This only works if an Isabelle environment is present. If not, we use an empty dummy project.
lazy val isabelle_root =
System.getenv().getOrDefault("ISABELLE_ROOT", System.getProperty("isabelle.root", ""))
lazy val isabelle_jars =
if (isabelle_root == "") Nil else List(file(isabelle_root) / "lib" / "classes" / "isabelle.jar")
lazy val isabelle =
(project in file(if (isabelle_root == "") "mmt-isabelle/dummy" else "mmt-isabelle")).
dependsOn(api, lf).
settings(mmtProjectsSettings("mmt-isabelle"): _*).
settings(Compile / unmanagedJars ++= isabelle_jars)
// plugin for reading TPS
lazy val tps = (project in file("mmt-tps")).
dependsOn(api, lf).
settings(mmtProjectsSettings("mmt-tps"): _*)
// plugin for reading IMPS. Maintainer: Jonas
lazy val imps = (project in file("mmt-imps")).
dependsOn(api, lf).
settings(mmtProjectsSettings("mmt-imps"): _*)
// plugin for reading specware. Maintainer: Florian
lazy val specware = (project in file("mmt-specware")).
dependsOn(api).
settings(mmtProjectsSettings("mmt-specware"): _*)
// plugin for reading stex. Maintainer: Dennis
lazy val stex = (project in file("mmt-stex")).
dependsOn(api,odk,lsp,tiscaf).
settings(
mmtProjectsSettings("mmt-stex"),
libraryDependencies += "org.eclipse.jgit" % "org.eclipse.jgit" % "6.1.0.202203080745-r",
libraryDependencies += "org.slf4j" % "slf4j-simple" % "1.7.30",
Compile / unmanagedJars += baseDirectory.value / "lib" / "lucene-core-9.2.0.jar",
Compile / unmanagedJars += baseDirectory.value / "lib" / "lucene-queries-9.2.0.jar",
Compile / unmanagedJars += baseDirectory.value / "lib" / "lucene-sandbox-9.2.0.jar",
Compile / unmanagedJars += baseDirectory.value / "lib" / "lucene-queryparser-9.2.0.jar",
Compile / unmanagedJars += baseDirectory.value / "lib" / "lucene-grouping-9.2.0.jar",
Test / unmanagedJars += baseDirectory.value / "lib" / "lucene-core-9.2.0.jar",
Test / unmanagedJars += baseDirectory.value / "lib" / "lucene-queries-9.2.0.jar",
Test / unmanagedJars += baseDirectory.value / "lib" / "lucene-queryparser-9.2.0.jar",
Test / unmanagedJars += baseDirectory.value / "lib" / "lucene-sandbox-9.2.0.jar",
Test / unmanagedJars += baseDirectory.value / "lib" / "lucene-grouping-9.2.0.jar",
/*Compile / unmanagedJars += utils.value.lib.toJava / "jgit.jar",
Compile / unmanagedJars += utils.value.lib.toJava / "slf4j.jar",
Test / unmanagedJars += utils.value.lib.toJava / "jgit.jar",*/
/*libraryDependencies ++= Seq(
"org.ccil.cowan.tagsoup" % "tagsoup" % "1.2"
),*/
Compile / unmanagedJars += baseDirectory.value / "lib" / "RusTeX.jar"
)
// plugin for writing OpenMath CDs. Maintainer: Florian
lazy val openmath = (project in file("mmt-openmath")).
dependsOn(api).
settings(mmtProjectsSettings("mmt-openmath"): _*)
// plugin for reading the OEIS
lazy val oeis = (project in file("mmt-oeis")).
dependsOn(planetary).
settings(mmtProjectsSettings("mmt-oeis"): _*).
settings(
Compile / unmanagedJars += utils.value.lib.toJava / "scala-parser-combinators.jar"
)
// =================================
// DEPENDENT PROJECTS (projects that are used by mmt-api)
// =================================
// this is a dependency of MMT that is copied into the MMT repository for convenience; it only has to be rebuilt when updated (which rarely happens)
lazy val tiscaf = (project in file("tiscaf")).
settings(commonSettings("tiscaf"): _*).
settings(
Compile / scalacOptions ++= Seq("-language:reflectiveCalls"),
Compile / scalaSource := baseDirectory.value / "src/main/scala",
libraryDependencies ++= Seq(
// "net.databinder.dispatch" %% "dispatch-core" % "0.11.3" % "test",
"org.slf4j" % "slf4j-simple" % "1.7.30" % "test",
"org.scala-lang" % "scala-compiler" % scalaVersion.value
),
test := {} // disable tests for tiscaf
)
// this is a dependency of Twelf if used in conjunction with the module system; it is automatically started when using the Twelf importer
lazy val lfcatalog = (project in file("lfcatalog")).
dependsOn(tiscaf).
settings(commonSettings("lfcatalog")).
settings(
Compile / scalaSource := baseDirectory.value / "src",
publishTo := Some(Resolver.file("file", utils.value.deploy.toJava / " main")),
deployLFCatalog := Def.taskDyn {
val jar = (Compile / assembly).value
val u = utils.value
Def.task {
Utils.deployTo(u.deploy / "lfcatalog" / "lfcatalog.jar")(jar)
}
}.value,
Compile / unmanagedJars += utils.value.lib.toJava / "scala-xml.jar"
)
// =================================
// deleted projects that are still accessible in the history
// deleted from the devel branch 2022-03-23
// mmt-leo, mmt-got, mmt-tptp, mmt-interviews, planetary-mmt
// mmt-webEdit: using MMT in editing frontends, orginally developed by Mihnea (?), functional but obsolete
// mmt-argsemcomp: argumentation semantics by Max
//
// deleted some other time
// mmt-reflection
//
// deleted from the devel branch 2021-11-17
// hets-mmt: Aivaras's work for integrating with Hets, owned by DFKI but has become obsolete.
// marpa-mmt
// mmt-guidedTours
// mmt-lfs: merged into mmt-lf
// =================================