-
Notifications
You must be signed in to change notification settings - Fork 34
/
Copy pathbuild.sbt
97 lines (91 loc) · 2.54 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
import chrome._
import chrome.permissions.Permission
import chrome.permissions.Permission.{API, Host}
import net.lullabyte.{Chrome, ChromeSbtPlugin}
lazy val examples = project.in(file(".")).aggregate(exampleApp, extension)
lazy val scalaJsChrome = ProjectRef(file("../."), "bindings")
lazy val exampleApp = project.in(file("app"))
.dependsOn(scalaJsChrome)
.enablePlugins(ChromeSbtPlugin)
.settings(
name := "Example App",
version := "0.1.0",
scalaVersion := "2.12.2",
scalacOptions ++= Seq(
"-language:implicitConversions",
"-language:existentials",
"-Xlint",
"-deprecation",
"-Xfatal-warnings",
"-feature"
),
scalaJSUseMainModuleInitializer := true,
scalaJSUseMainModuleInitializer in Test := false,
relativeSourceMaps := true,
skip in packageJSDependencies := false,
chromeManifest := new AppManifest {
val name = Keys.name.value
val version = Keys.version.value
val app = App(
background = Background(
scripts = Chrome.defaultScripts
)
)
override val defaultLocale = Some("en")
override val icons = Chrome.icons(
"icons",
"app.png",
Set(256)
)
override val permissions = Set[Permission](
API.System.CPU,
API.System.Display,
API.System.Memory,
API.System.Network,
API.Storage
)
}
)
lazy val extension = project.in(file("extension"))
.dependsOn(scalaJsChrome)
.enablePlugins(ChromeSbtPlugin)
.settings(
name := "Example Extension",
version := "0.1.0",
scalaVersion := "2.12.2",
scalacOptions ++= Seq(
"-language:implicitConversions",
"-language:existentials",
"-Xlint",
"-deprecation",
"-Xfatal-warnings",
"-feature"
),
scalaJSUseMainModuleInitializer := true,
scalaJSUseMainModuleInitializer in Test := false,
relativeSourceMaps := true,
skip in packageJSDependencies := false,
chromeManifest := new ExtensionManifest {
val background = Background(
scripts = Chrome.defaultScripts
)
override val contentScripts = List(
ContentScript(
matches = Set("https://www.example.org/*"),
js = Chrome.defaultScripts
)
)
val name = Keys.name.value
val version = Keys.version.value
override val icons = Chrome.icons(
"icons",
"app.png",
Set(256)
)
override val permissions = Set[Permission](
API.Tabs,
API.Management,
API.Storage
)
}
)