~jan0sch/cam_archiver

~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 }