~jan0sch/cam_archiver
~jan0sch/cam_archiver/build.sbt
~jan0sch/cam_archiver/build.sbt
0 | // ***************************************************************************** |
1 | // Build settings |
2 | // ***************************************************************************** |
3 |
|
4 | addCommandAlias("check", "Compile/scalafix --check; Test/scalafix --check; scalafmtCheckAll") |
5 | addCommandAlias("fix", "Compile/scalafix; Test/scalafix; scalafmtSbt; scalafmtAll") |
6 |
|
7 | // Enable the semanticdb compiler plugin needed by the metals language server. |
8 | Global / semanticdbEnabled := true |
9 |
|
10 | inThisBuild( |
11 | Seq( |
12 | scalaVersion := "3.3.6", |
13 | organization := "de.jan0sch", |
14 | organizationName := "Contributors as noted in the AUTHORS.md file", |
15 | version := "1.0.0", |
16 | scalacOptions ++= Seq( |
17 | "-deprecation", |
18 | "-explain", |
19 | "-explain-types", |
20 | "-feature", |
21 | "-language:higherKinds", |
22 | "-language:implicitConversions", |
23 | "-no-indent", // Prevent usage of indent based syntax. |
24 | "-old-syntax", // Enforce classic syntax. |
25 | "-unchecked", |
26 | "-Wunused:imports", // Warn on unused imports including given and wildcard imports. |
27 | "-Wunused:linted", // TODO: Find out what this does! |
28 | "-Wunused:locals", // Warn on unused local definitions. |
29 | "-Wunused:nowarn", // Warn on unused (useless) `@nowarn` annotations. |
30 | "-Wunused:params", // Warn on unused parameters. |
31 | "-Wunused:privates", // Warn on unused private definitions. |
32 | "-Wunused:unsafe-warn-patvars", // TODO: Find out what this does! |
33 | "-Wvalue-discard", // Warn on discarding computed values. |
34 | //"-Xfatal-warnings", // NOTE: You might want to disable this when changing much! |
35 | "-Ykind-projector" |
36 | ), |
37 | scalafmtOnCompile := false, |
38 | bomFormat := "xml", |
39 | coverageExcludedPackages := "<empty>;.*\\.views\\.html.*;.*\\.views\\.txt.*;.*\\.views\\.xml.*;", |
40 | Test / fork := true, |
41 | Test / parallelExecution := false, |
42 | Test / testOptions += Tests.Argument(TestFrameworks.MUnit, "-b") |
43 | ) |
44 | ) |
45 |
|
46 | // ***************************************************************************** |
47 | // Projects |
48 | // ***************************************************************************** |
49 |
|
50 | lazy val cameraArchiver = |
51 | project |
52 | .in(file(".")) |
53 | .enablePlugins( |
54 | DebianPlugin, |
55 | JavaAppPackaging |
56 | ) |
57 | .settings( |
58 | name := "camera-archiver", |
59 | startYear := Option(2025), |
60 | libraryDependencies := Seq( |
61 | library.catsCore, |
62 | library.catsEffect, |
63 | library.decline, |
64 | library.declineEffect, |
65 | library.logback, |
66 | library.osLib, |
67 | ) |
68 | ) |
69 |
|
70 | // ***************************************************************************** |
71 | // Library dependencies |
72 | // ***************************************************************************** |
73 |
|
74 | lazy val library = |
75 | new { |
76 | object Version { |
77 | val cats = "2.13.0" |
78 | val catsEffect = "3.6.1" |
79 | val decline = "2.5.0" |
80 | val logback = "1.5.18" |
81 | val munit = "1.1.1" |
82 | val munitCatsEffect = "2.1.0" |
83 | val munitScalaCheck = "1.1.0" |
84 | val osLib = "0.11.4" |
85 | val scalaCheck = "1.18.1" |
86 | val scalaCheckEffect = "1.0.4" |
87 | } |
88 | val catsCore = "org.typelevel" %% "cats-core" % Version.cats |
89 | val catsEffect = "org.typelevel" %% "cats-effect" % Version.catsEffect |
90 | val decline = "com.monovore" %% "decline" % Version.decline |
91 | val declineEffect = "com.monovore" %% "decline-effect" % Version.decline |
92 | val logback = "ch.qos.logback" % "logback-classic" % Version.logback |
93 | val munit = "org.scalameta" %% "munit" % Version.munit |
94 | val munitCatsEffect = "org.typelevel" %% "munit-cats-effect" % Version.munitCatsEffect |
95 | val munitScalaCheck = "org.scalameta" %% "munit-scalacheck" % Version.munitScalaCheck |
96 | val osLib = "com.lihaoyi" %% "os-lib" % Version.osLib |
97 | val scalaCheck = "org.scalacheck" %% "scalacheck" % Version.scalaCheck |
98 | val scalaCheckEffect = "org.typelevel" %% "scalacheck-effect-munit" % Version.scalaCheckEffect |
99 | } |