-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.sbt
127 lines (103 loc) · 2.91 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
/*
build.sbt adapted from https://github.com/pbassiner/sbt-multi-project-example/blob/master/build.sbt
*/
name := "hgnc-gene-set"
ThisBuild / organization := "de.dnpm.dip"
ThisBuild / scalaVersion := "2.13.13"
ThisBuild / version := "1.0-SNAPSHOT"
//-----------------------------------------------------------------------------
// PROJECTS
//-----------------------------------------------------------------------------
lazy val global = project
.in(file("."))
.settings(
settings,
publish / skip := true
)
.aggregate(
impl,
tests
)
lazy val impl = project
.settings(
name := "hgnc-gene-set-impl",
settings,
libraryDependencies ++= Seq(
dependencies.scalatest,
dependencies.core,
)
)
lazy val tests = project
.settings(
name := "tests",
settings,
libraryDependencies ++= Seq(
dependencies.scalatest,
),
publish / skip := true
)
.dependsOn(
impl % Test,
)
//-----------------------------------------------------------------------------
// DEPENDENCIES
//-----------------------------------------------------------------------------
lazy val dependencies =
new {
val scalatest = "org.scalatest" %% "scalatest" % "3.2.18" % Test
val core = "de.dnpm.dip" %% "core" % "1.0-SNAPSHOT"
}
//-----------------------------------------------------------------------------
// SETTINGS
//-----------------------------------------------------------------------------
lazy val settings = commonSettings
// Compiler options from: https://alexn.org/blog/2020/05/26/scala-fatal-warnings/
lazy val compilerOptions = Seq(
// Feature options
"-encoding", "utf-8",
"-explaintypes",
"-feature",
"-language:existentials",
"-language:experimental.macros",
"-language:higherKinds",
"-language:implicitConversions",
"-Ymacro-annotations",
// Warnings as errors!
"-Xfatal-warnings",
// Linting options
"-unchecked",
"-Xcheckinit",
"-Xlint:adapted-args",
"-Xlint:constant",
"-Xlint:delayedinit-select",
"-Xlint:deprecation",
"-Xlint:doc-detached",
"-Xlint:inaccessible",
"-Xlint:infer-any",
"-Xlint:missing-interpolator",
"-Xlint:nullary-unit",
"-Xlint:option-implicit",
"-Xlint:package-object-classes",
"-Xlint:poly-implicit-overload",
"-Xlint:private-shadow",
"-Xlint:stars-align",
"-Xlint:type-parameter-shadow",
"-Wdead-code",
"-Wextra-implicit",
"-Wnumeric-widen",
"-Wunused:imports",
"-Wunused:locals",
"-Wunused:patvars",
"-Wunused:privates",
"-Wunused:implicits",
"-Wvalue-discard",
// Deactivated to avoid many false positives from 'evidence' parameters in context bounds
// "-Wunused:params",
)
lazy val commonSettings = Seq(
scalacOptions ++= compilerOptions,
resolvers ++=
Seq("Local Maven Repository" at "file://" + Path.userHome.absolutePath + "/.m2/repository") ++
Resolver.sonatypeOssRepos("releases") ++
Resolver.sonatypeOssRepos("snapshots")
)