-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathschema.xapi
133 lines (121 loc) · 4.25 KB
/
schema.xapi
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
<xapi-schema
name = "xapi"
group = "net.wetheinter"
version = "0.5.1"
defaultRepoUrl = mavenCentral()
schemaLocation = "schema/schema.gradle"
multiplatform = true
platforms = [
<main />,
// purposely using two different forms of references to main,
// so that we can detect and fix any weirdness as we go:
<jre replace = "main" published = true/>,
<gwt replace = main published = true/>,
// TODO: move gwt into client/schema.xapi; add javafx, android, j2cl, j2objc, etc.
// put these in server/schema.xapi:
// server.replace jre
// vertx.replace server
// appengine.replace server
]
modules = [
<api />,
<spi />,
<main include = [ api, spi ] />,
// <sample include = "main" published = true />,
<testTools include = "main" published = true />,
]
projects = {
// the projects below are single-module projects.
standalone: [
// "lang",
],
// the projects below all have gwt, jre and other platforms
multiplatform: [
"util",
"base",
"inject",
"collect",
"model",
"log",
"io",
"process",
// these ones should simply be multi-module
"server",
<gwtc
inherit = false
multiplatform = true
/gwtc>,
// create a single GWT "project" with many one-off modules
<gwt
inherit = false
multiplatform = true
/gwt>,
<jre
inherit = false
multiplatform = true
/jre>,
<samples
inherit = false
multiplatform = true
/samples>
],
// the projects below are effectively parents of multiple child projects.
// it will be left to the schema.xapi of these projects to determine whether
// the child modules are multiplatform, standalone, or nested multiProject
virtual: [
<dev
multiplatform = true
inherit = false
/dev>,
<ui
multiplatform = true
inherit = false
/ui>,
<core
multiplatform = true
inherit = false
/core>
]
// virtual: {
// ui: ["api", "autoui", "html"] // "components", "generator",
// server: ["api", "gen", "vertx"], // hm, perhaps needs to be modeled as a single multiplatform, with more platforms...
// dev: ["api", "bytecode", "file", "gen", "gwtc", "javac", "maven", "shell", "source", "template", "dist"],
// dist: ["gwt", "jre"],
// samples: ["demo"]
// },
}
// declare any external dependencies here,
// so we can handle pre-emptively syncing jars (and maybe source checkouts) to a local cache,
// then just reference these "blessed artifacts" w/out versions anywhere;
// leaving it up to the system
external = [
// preload elements will be downloaded once, on build startup, into a local filesystem repository (xapi.repo)
<preload
name = "gwt"
url = "https://wti.net/repo"
version = "2.8.0"
// limits these artifacts to gwt platform, where they will be auto-available as versionless dependencies
// this inheritance is also given to any platform replacing gwt platform.
platforms = [ "gwt" ]
artifacts = {
"com.google.gwt" : [
"gwt-user",
"gwt-dev",
"gwt-codeserver",
]
}
/preload>
,
<preload
name = "junit"
version = "4.1.12"
// limits these artifacts to test and testTools, where they will be auto-available as versionless dependencies
// this inheritance is also given to any module requiring test or testTools modules.
modules = [ "test", "testTools" ]
artifacts = {
"junit" : "junit"
}
/preload>
,
]
/xapi-schema>