blob: b8c95b85ea98c4e552d3376f2f7ff0f2f48ff8a6 [file] [log] [blame]
Brian Slesinsky6e071292014-04-08 15:02:41 -07001# Copyright 2014 Google Inc.
2#
3# Licensed under the Apache License, Version 2.0 (the "License"); you may not
4# use this file except in compliance with the License. You may obtain a copy of
5# the License at
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12# License for the specific language governing permissions and limitations under
13# the License.
14
15# Description:
16# The standard GWT libraries.
17
18# Google owns the copyright
19licenses(["unencumbered"])
20
21package(
Roberto Lublinermana7a8c9f2014-04-21 09:12:39 -070022 default_visibility = [
23 "//third_party/java/gwt:__subpackages__",
24 "//third_party/java_src/gwt:__subpackages__",
25 ],
Brian Slesinsky6e071292014-04-08 15:02:41 -070026)
27
Roberto Lublinerman37ff62f2016-09-27 13:39:25 -070028load("//third_party/java_src/gwt:build-macros.bzl", "AugmentedJar")
Brian Slesinsky6e071292014-04-08 15:02:41 -070029
Roberto Lublinermand78f9e92018-02-02 12:30:00 -080030JSINTEROP_SRCS_JAVA7 = glob(
31 ["src/jsinterop/**/*.java"],
32 exclude = [
33 "src/jsinterop/annotations/JsNonNull.java",
34 "src/jsinterop/annotations/JsNullable.java",
35 ],
36)
37
Roberto Lublinermanf0d1ea12017-02-21 08:36:33 -080038JSINTEROP_SRCS = glob(["src/jsinterop/**/*.java"])
39
40# GWT JsInterop annotations in a separate library used by hybrid app projects
41java_library(
42 name = "gwt-jsinterop-annotations",
Roberto Lublinermanf0d1ea12017-02-21 08:36:33 -080043 compatible_with = [
44 "//buildenv/target:android",
45 "//buildenv/target:appengine",
46 ],
47 constraints = [
48 "android",
49 ],
Roberto Lublinermand78f9e92018-02-02 12:30:00 -080050 exports = select({
51 "//tools/java_toolchain:java7": [":gwt-jsinterop-annotations_java7"],
52 "//conditions:default": [":gwt-jsinterop-annotations_java8"],
53 }),
54)
55
56java_library(
57 name = "gwt-jsinterop-annotations_java7",
58 srcs = JSINTEROP_SRCS_JAVA7,
59 compatible_with = [
60 "//buildenv/target:android",
61 "//buildenv/target:appengine",
62 ],
63 constraints = [
64 "android",
65 ],
66 visibility = ["//visibility:private"],
67)
68
69java_library(
70 name = "gwt-jsinterop-annotations_java8",
71 srcs = JSINTEROP_SRCS,
72 compatible_with = [
73 "//buildenv/target:android",
74 ],
75 constraints = [
76 "android",
77 ],
78 visibility = ["//visibility:private"],
Roberto Lublinermanf0d1ea12017-02-21 08:36:33 -080079)
80
81java_library(
82 name = "gwt-javaemul-annotations",
83 srcs = glob(["super/com/google/gwt/emul/javaemul/internal/annotations/*.java"]),
Goktug Gokdogan701143c2017-05-04 14:43:27 -070084 compatible_with = [
85 "//buildenv/target:android",
86 "//buildenv/target:appengine",
87 ],
Roberto Lublinermanf0d1ea12017-02-21 08:36:33 -080088)
89
Brian Slesinsky6e071292014-04-08 15:02:41 -070090# The classes in gwt-user.jar that GWT applications can depend on.
91# We want the final output of this NOT to depend on gwt-dev,
92# though it is built with that dependency, because user code can and should
93# depend on this without also touching the compiler and shell internals.
94AugmentedJar(
95 name = "gwt-user-classes-src",
Brian Slesinsky3114e452014-04-23 10:56:53 -070096 srcs = [],
97 added_jars = [
98 ":libgwt-user-bare.jar",
99 "//third_party/java_src/gwt/svn/tools:user_jars",
100 ],
Brian Slesinsky6e071292014-04-08 15:02:41 -0700101 added_roots = [
102 "src",
103 "super",
104 ],
Roberto Lublinerman05592162016-06-15 16:35:59 -0700105 compatible_with = ["//buildenv/target:appengine"],
Brian Slesinsky6e071292014-04-08 15:02:41 -0700106 constraints = [],
107 dojarjar = 1,
108 exclude_glob = [
109 "**/package.html",
Roberto Lublinermana7a8c9f2014-04-21 09:12:39 -0700110 "src/com/google/gwt/junit/**",
111 "super/com/google/gwt/junit/**",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700112 ],
113 java_library_name = "gwt-user-classes",
114 output_name = "gwt-user-classes-src.jar",
115 wrap_javalibrary = 0,
116)
117
Brian Slesinsky3114e452014-04-23 10:56:53 -0700118# The gwt-user classes for GWT internal use only.
119# They must be jarjar-ed and dependencies stripped before exposing to google3.
120java_library(
121 name = "gwt-user-bare",
122 srcs = glob(
Goktug Gokdoganf1381ca2016-03-04 00:58:51 -0800123 [
124 "src/**/*.java",
125 "super/com/google/gwt/emul/javaemul/internal/**/*.java",
126 ],
Brian Slesinsky3114e452014-04-23 10:56:53 -0700127 exclude = [
128 "src/com/google/gwt/junit/**/*.java", # see gwt-testing
Goktug Gokdoganf1381ca2016-03-04 00:58:51 -0800129 "**/EmulatedCharset.java",
Goktug Gokdogan5b327a32016-07-08 22:45:16 -0700130 "**/HashCodes.java", # relies on java8 only APIs
Goktug Gokdogan9acbf242017-06-06 20:26:24 -0700131 "**/NativeRegExp.java", # has default method
Brian Slesinsky3114e452014-04-23 10:56:53 -0700132 "**/RunStyleSelenium.java",
Roberto Lublinermanf0d1ea12017-02-21 08:36:33 -0800133 ] + JSINTEROP_SRCS,
Brian Slesinsky3114e452014-04-23 10:56:53 -0700134 ),
Roberto Lublinerman05592162016-06-15 16:35:59 -0700135 compatible_with = ["//buildenv/target:appengine"],
Roberto Lublinermane2275ab2017-03-24 13:59:42 -0700136 javacopts = [
Roberto Lublinermanb6140dd2017-12-11 10:25:59 -0800137 "-XepAllErrorsAsWarnings",
Roberto Lublinermane2275ab2017-03-24 13:59:42 -0700138 ],
Goktug Gokdogan5b327a32016-07-08 22:45:16 -0700139 plugins = [
140 "//java/com/google/devtools/build/buildjar/plugin/gwt",
141 ],
Brian Slesinsky3114e452014-04-23 10:56:53 -0700142 deps = [
Roberto Lublinermanf0d1ea12017-02-21 08:36:33 -0800143 ":gwt-jsinterop-annotations",
Brian Slesinsky3114e452014-04-23 10:56:53 -0700144 "//third_party/java_src/gwt/svn/tools:dev_deps",
145 "//third_party/java_src/gwt/svn/tools:servlet_api_3",
146 "//third_party/java_src/gwt/svn/tools:user_deps",
147 "//third_party/java_src/gwt/svn/trunk/dev:compiler.standalone.super",
148 "//third_party/java_src/gwt/svn/trunk/dev:gwt-dev-bare",
Daniel Kurka519e16b2015-02-18 20:23:41 +0000149 ],
Brian Slesinsky3114e452014-04-23 10:56:53 -0700150)
151
Brian Slesinsky6e071292014-04-08 15:02:41 -0700152# This target is used by a java_plugin over in java/gwt/BUILD. It's
153# a pretty simple annotation processor, so in order to keep it from being a
154# build bottleneck, it's simply built from scratch.
155java_library(
156 name = "requestfactory-apt",
157 srcs = glob([
158 "src/com/google/web/bindery/requestfactory/apt/*.java",
159 ]) + [
160 "src/com/google/web/bindery/requestfactory/shared/JsonRpcProxy.java",
161 "src/com/google/web/bindery/requestfactory/shared/JsonRpcService.java",
162 "src/com/google/web/bindery/requestfactory/shared/Locator.java",
163 "src/com/google/web/bindery/requestfactory/shared/Service.java",
164 "src/com/google/web/bindery/requestfactory/shared/ServiceLocator.java",
165 "src/com/google/web/bindery/requestfactory/shared/ServiceName.java",
166 "src/com/google/web/bindery/requestfactory/shared/SkipInterfaceValidation.java",
167 "src/com/google/web/bindery/requestfactory/shared/ProxyFor.java",
168 "src/com/google/web/bindery/requestfactory/shared/ProxyForName.java",
169 "src/com/google/web/bindery/requestfactory/vm/impl/ClassComparator.java",
170 "src/com/google/web/bindery/requestfactory/vm/impl/Deobfuscator.java",
171 "src/com/google/web/bindery/requestfactory/vm/impl/OperationData.java",
172 "src/com/google/web/bindery/requestfactory/vm/impl/OperationKey.java",
173 "src/com/google/gwt/core/shared/GwtIncompatible.java",
174 "src/com/google/gwt/user/server/Base64Utils.java",
175 ],
Roberto Lublinerman37ff62f2016-09-27 13:39:25 -0700176 compatible_with = ["//buildenv/target:appengine"],
Roberto Lublinermanb6140dd2017-12-11 10:25:59 -0800177 javacopts = [
178 "-XepAllErrorsAsWarnings",
179 ],
Brian Slesinsky6e071292014-04-08 15:02:41 -0700180 deps = [
181 "//third_party/java_src/gwt/svn/trunk/dev:requestfactory-apt-deps",
182 ],
183)
184
185# Packages just AutoBeans source into a jar with correct java root.
186AugmentedJar(
187 name = "autobean-classes-src",
188 srcs = glob(["src/com/google/web/bindery/autobean/**/*.java"]),
189 added_root_globs = {"src": ["src/com/google/web/bindery/autobean/**/*.java"]},
190 # We only need the Java classes so don't wait for the rest of :gwt-dev.
191 build_deps = [
192 "//third_party/java_src/gwt:gwt-user-full",
193 "//third_party/java_src/gwt/svn/tools:dev_deps",
194 "//third_party/java_src/gwt/svn/trunk/dev:compiler.standalone.super",
Brian Slesinsky3114e452014-04-23 10:56:53 -0700195 "//third_party/java_src/gwt/svn/trunk/dev:gwt-dev-bare",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700196 ],
197 constraints = [],
198 dojarjar = 1,
199 exclude_glob = [
200 "**/package.html",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700201 ],
202 java_library_name = "autobean-classes",
203 output_name = "autobean-classes-src.jar",
204 wrap_javalibrary = 0,
205)
206
207# Repackages the AutoBeans.gwt.xml file with correct java root by placing it in
208# "java/".
209genrule(
210 name = "autobean-gwt-xml",
211 srcs = [":src/com/google/web/bindery/autobean/AutoBean.gwt.xml"],
212 outs = ["java/com/google/web/bindery/autobean/AutoBean.gwt.xml"],
213 cmd = ("cp $(location :src/com/google/web/bindery/autobean/AutoBean.gwt.xml) " +
214 "$(location java/com/google/web/bindery/autobean/AutoBean.gwt.xml)"),
215)
216
Goktug Gokdogand6314fc2015-10-09 14:59:43 -0700217java_import(
218 name = "autobean_import",
219 constraints = [
220 "gwt",
221 "public",
222 ],
223 jars = [":autobean-classes-src.jar"],
224 deps = [
225 "//third_party/java_src/gwt:gwt-dev",
226 "//third_party/java_src/gwt:gwt-user-full",
227 ],
228)
229
Brian Slesinsky6e071292014-04-08 15:02:41 -0700230java_library(
231 name = "autobean",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700232 constraints = [
233 "gwt",
234 "public",
235 ],
236 gwtxml = "java/com/google/web/bindery/autobean/AutoBean.gwt.xml",
Goktug Gokdogand6314fc2015-10-09 14:59:43 -0700237 exports = [":autobean_import"],
Brian Slesinsky6e071292014-04-08 15:02:41 -0700238)
239
John Stalcup5c3e97e2014-04-21 19:16:25 -0700240# Packages just IncrementalBuilder test resource into a jar with correct java root.
241AugmentedJar(
242 name = "incremental-build-system-test-res",
243 srcs = [],
244 added_root_globs = {
245 "test": [
John Stalcup7d432a62014-06-11 15:46:53 -0700246 "test/com/google/gwt/dev/testdata/incrementalbuildsystem/**/*",
John Stalcup5c3e97e2014-04-21 19:16:25 -0700247 ],
248 },
249 # We only need the Java classes so don't wait for the rest of :gwt-dev.
250 build_deps = [
251 "//third_party/java_src/gwt:gwt-user-full",
252 "//third_party/java_src/gwt/svn/tools:dev_deps",
253 "//third_party/java_src/gwt/svn/trunk/dev:compiler.standalone.super",
254 "//third_party/java_src/gwt/svn/trunk/dev:gwt-dev-classes",
255 ],
256 constraints = [],
257 dojarjar = 1,
258 exclude_glob = [
259 "**/package.html",
John Stalcup5c3e97e2014-04-21 19:16:25 -0700260 ],
261 output_name = "incremental-build-system-test-res.jar",
262 wrap_javalibrary = 0,
263)
264
Goktug Gokdogan5b327a32016-07-08 22:45:16 -0700265JVM_REGEXP_SRCS = glob(["src/com/google/gwt/regexp/shared/*.java"])
266
Brian Slesinsky6e071292014-04-08 15:02:41 -0700267# See //third_party/java/gwt:regexp
268java_library(
269 name = "jvm_regexp",
Goktug Gokdogan5b327a32016-07-08 22:45:16 -0700270 srcs = JVM_REGEXP_SRCS,
Roberto Lublinerman05592162016-06-15 16:35:59 -0700271 compatible_with = [
272 "//buildenv/target:android",
273 "//buildenv/target:appengine",
274 ],
Brian Slesinsky6e071292014-04-08 15:02:41 -0700275 constraints = ["android"],
276)
277
278# See //third_party/java/gwt:hibernate-validation-support
279java_library(
280 name = "hibernate-validation-support",
281 srcs = glob(
282 [
283 "src/org/hibernate/validator/**/*_CustomFieldSerializer.java",
284 "src/org/hibernate/validator/engine/ValidationSupport.java",
285 ],
Brian Slesinsky6e071292014-04-08 15:02:41 -0700286 ),
287 deps = [
288 "//third_party/java/hibernate:validator",
289 "//third_party/java/javax_validation",
290 "//third_party/java_src/gwt:gwt-servlet",
291 ],
292)
293
Goktug Gokdogan5b327a32016-07-08 22:45:16 -0700294DTO_SRCS = [
295 "src/com/google/gwt/user/client/rpc/CustomFieldSerializer.java",
296 "src/com/google/gwt/user/client/rpc/GwtTransient.java",
297 "src/com/google/gwt/user/client/rpc/IsSerializable.java",
298 "src/com/google/gwt/user/client/rpc/SerializationException.java",
299 "src/com/google/gwt/user/client/rpc/SerializationStreamReader.java",
300 "src/com/google/gwt/user/client/rpc/SerializationStreamWriter.java",
301] + glob([
302 "src/com/google/gwt/user/client/rpc/core/java/util/*.java",
303])
304
Brian Slesinsky6e071292014-04-08 15:02:41 -0700305# The indirection through libgwt-servlet-impl.jar is needed so that Java symbols in the outputs of
306# this package are distributed in one form (through the class jars, as AugmentedJar does)
307# This prevents them appearing them on classpath as both sources and classes, which confuses javac
308# For example see b/3033925
Goktug Gokdogand6314fc2015-10-09 14:59:43 -0700309java_import(
Brian Slesinsky6e071292014-04-08 15:02:41 -0700310 name = "gwt-servlet-internal",
Roberto Lublinerman05592162016-06-15 16:35:59 -0700311 compatible_with = ["//buildenv/target:appengine"],
Goktug Gokdogand6314fc2015-10-09 14:59:43 -0700312 jars = [":libgwt-servlet-impl.jar"],
Brian Slesinsky6e071292014-04-08 15:02:41 -0700313)
314
315java_library(
316 name = "gwt-servlet-impl",
317 srcs = glob(
318 [
319 "src/com/google/gwt/**/server/**/*.java",
320 "src/com/google/gwt/**/shared/**/*.java",
321 "src/com/google/web/bindery/**/server/**/*.java",
322 "src/com/google/web/bindery/**/shared/**/*.java",
323 "src/com/google/web/bindery/**/vm/**/*.java",
324 "src/com/google/web/bindery/event/shared/**/*.java",
325 "src/javax/validation/**/*_CustomFieldSerializer.java",
326 # Despite the "client" designation, these packages are
327 # also reached by server RPC code:
328 "src/com/google/gwt/canvas/dom/client/*.java",
329 "src/com/google/gwt/debug/client/DebugInfo.java",
330 "src/com/google/gwt/media/dom/client/*.java",
Goktug Gokdogan5b327a32016-07-08 22:45:16 -0700331 "src/com/google/gwt/user/client/rpc/core/**/*.java",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700332 "src/com/google/gwt/user/client/rpc/SerializedTypeViolationException.java",
333 "src/com/google/gwt/user/client/rpc/IncompatibleRemoteServiceException.java",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700334 "src/com/google/gwt/user/client/rpc/RemoteService.java",
335 "src/com/google/gwt/user/client/rpc/AsyncCallback.java",
336 "src/com/google/gwt/user/client/rpc/RemoteServiceRelativePath.java",
337 "src/com/google/gwt/user/client/rpc/RpcToken.java",
338 "src/com/google/gwt/user/client/rpc/RpcTokenException.java",
339 "src/com/google/gwt/user/client/rpc/RpcTokenExceptionHandler.java",
340 "src/com/google/gwt/user/client/rpc/impl/AbstractSerialization*.java",
341 "src/com/google/gwt/user/client/rpc/RpcRequestBuilder.java",
342 "src/com/google/gwt/user/client/rpc/ServiceDefTarget.java",
343 "src/com/google/gwt/user/client/rpc/InvocationException.java",
344 "src/com/google/gwt/user/client/rpc/CustomFieldSerializer.java",
345 "src/com/google/gwt/user/client/rpc/XsrfProtectedService.java",
346 "src/com/google/gwt/user/client/rpc/XsrfToken.java",
347 "src/com/google/gwt/user/client/rpc/XsrfTokenService.java",
348 "src/com/google/gwt/http/client/RequestBuilder.java",
349 "src/com/google/gwt/http/client/Request.java",
350 "src/com/google/gwt/http/client/Header.java",
351 "src/com/google/gwt/http/client/Response.java",
352 "src/com/google/gwt/http/client/ResponseImpl.java",
353 "src/com/google/gwt/http/client/RequestException.java",
354 "src/com/google/gwt/http/client/RequestPermissionException.java",
355 "src/com/google/gwt/http/client/RequestTimeoutException.java",
356 "src/com/google/gwt/http/client/RequestCallback.java",
357 "src/com/google/gwt/http/client/StringValidator.java",
358 "src/com/google/gwt/http/client/URL.java",
359 "src/com/google/gwt/http/client/UrlBuilder.java",
360 "src/com/google/gwt/json/client/JSONArray.java",
361 "src/com/google/gwt/json/client/JSONBoolean.java",
362 "src/com/google/gwt/json/client/JSONException.java",
363 "src/com/google/gwt/json/client/JSONNull.java",
364 "src/com/google/gwt/json/client/JSONNumber.java",
365 "src/com/google/gwt/json/client/JSONObject.java",
366 "src/com/google/gwt/json/client/JSONString.java",
367 "src/com/google/gwt/json/client/JSONValue.java",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700368 "src/com/google/gwt/core/client/JsonUtils.java",
369 "src/com/google/gwt/core/client/impl/WeakMapping.java",
370 "src/com/google/gwt/xhr/client/ReadyStateChangeHandler.java",
371 "src/com/google/gwt/xhr/client/XMLHttpRequest.java",
372 "src/com/google/gwt/user/client/Timer.java",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700373 "src/com/google/gwt/user/client/rpc/impl/ClientSerializationStreamWriter.java",
374 "src/com/google/gwt/user/client/rpc/impl/Serializer.java",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700375 # ...which need:
376 "src/com/google/gwt/core/client/GWT.java",
377 "src/com/google/gwt/core/client/JavaScriptException.java",
378 "src/com/google/gwt/core/client/JavaScriptObject.java",
379 "src/com/google/gwt/core/client/JsArray.java",
380 "src/com/google/gwt/core/client/JsDate.java",
381 "src/com/google/gwt/core/client/Duration.java",
382 "src/com/google/gwt/core/client/Scheduler.java",
383 "src/com/google/gwt/user/client/Window.java",
384 "src/com/google/gwt/user/client/Window*.java",
385 "src/com/google/gwt/user/client/BaseListenerWrapper.java",
386 "src/com/google/gwt/user/client/Element.java",
387 "src/com/google/gwt/user/client/Event.java",
388 "src/com/google/gwt/user/client/EventListener.java",
389 "src/com/google/gwt/user/client/EventPreview.java",
390 "src/com/google/gwt/user/client/NativePreviewEvent.java",
391 "src/com/google/gwt/user/client/History.java",
392 "src/com/google/gwt/user/client/impl/HistoryImpl.java",
393 "src/com/google/gwt/user/client/impl/DomImpl.java",
394 "src/com/google/gwt/user/client/HistoryListener.java",
395 "src/com/google/gwt/user/client/Cookies.java",
Goktug Gokdogan1d660d22015-12-07 15:07:02 -0800396 "src/com/google/gwt/core/client/impl/JavaScriptExceptionBase.java",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700397 "src/com/google/gwt/user/client/ui/AcceptsOneWidget.java",
398 "src/com/google/gwt/user/client/ui/Widget.java",
399 "src/com/google/gwt/user/client/ui/IsWidget.java",
400 "src/com/google/gwt/user/client/ui/HasOneWidget.java",
401 "src/com/google/gwt/user/client/ui/HasVisibility.java",
402 "src/com/google/gwt/user/client/ui/HasWidgets.java",
403 "src/com/google/gwt/user/client/ui/HasText.java",
404 "src/com/google/gwt/user/client/ui/AbsolutePanel.java",
405 "src/com/google/gwt/user/client/ui/ComplexPanel.java",
406 "src/com/google/gwt/user/client/ui/IndexedPanel.java",
407 "src/com/google/gwt/user/client/ui/InsertPanel.java",
408 "src/com/google/gwt/user/client/ui/Panel.java",
409 "src/com/google/gwt/user/client/ui/AttachDetachException.java",
410 "src/com/google/gwt/user/client/ui/UIObject.java",
411 "src/com/google/gwt/user/client/ui/PotentialElement.java",
412 "src/com/google/gwt/user/client/ui/RootPanel.java",
413 "src/com/google/gwt/user/client/ui/WidgetCollection.java",
414 "src/com/google/gwt/event/dom/client/HasNativeEvent.java",
415 "src/com/google/gwt/event/dom/client/PrivateMap.java",
416 "src/com/google/gwt/event/dom/client/DomEvent.java",
417 "src/com/google/gwt/event/dom/client/KeyEvent.java",
418 "src/com/google/gwt/event/dom/client/KeyCodeEvent.java",
419 "src/com/google/gwt/event/dom/client/KeyCodes.java",
420 "src/com/google/gwt/event/dom/client/KeyUpEvent.java",
421 "src/com/google/gwt/event/dom/client/HasKeyUpHandlers.java",
422 "src/com/google/gwt/event/dom/client/KeyUpHandler.java",
423 "src/com/google/gwt/user/client/DOM.java",
424 "src/com/google/gwt/user/client/impl/DOMImpl.java",
425 "src/com/google/gwt/user/client/impl/WindowImpl.java",
426 "src/com/google/gwt/dom/client/*.java",
427 "src/com/google/gwt/core/client/impl/Impl.java",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700428 "src/com/google/gwt/core/client/impl/StackTraceCreator.java",
429 "src/com/google/gwt/core/client/impl/SchedulerImpl.java",
430 "src/com/google/gwt/core/client/impl/AsyncFragmentLoader.java",
431 "src/com/google/gwt/core/client/impl/OnSuccessExecutor.java",
432 "src/com/google/gwt/core/client/impl/SynchronousOnSuccessExecutor.java",
433 "src/com/google/gwt/core/client/JsArrayInteger.java",
434 "src/com/google/gwt/core/client/JsArrayString.java",
435 "src/com/google/gwt/core/client/RunAsyncCallback.java",
436 "src/com/google/gwt/i18n/client/constants/*.java",
437 "src/com/google/gwt/i18n/client/impl/cldr/*.java",
438 "src/com/google/gwt/i18n/client/impl/plurals/*.java",
439 "src/com/google/gwt/i18n/client/impl/*.java",
440 "src/com/google/gwt/i18n/client/*.java",
441 "src/com/google/gwt/i18n/rebind/keygen/*.java",
Goktug Gokdoganf1381ca2016-03-04 00:58:51 -0800442 "super/com/google/gwt/emul/javaemul/internal/ArrayHelper.java",
443 "super/com/google/gwt/emul/javaemul/internal/ArrayStamper.java",
Goktug Gokdogan701143c2017-05-04 14:43:27 -0700444 "super/com/google/gwt/emul/javaemul/internal/JsUtils.java",
445 "super/com/google/gwt/emul/javaemul/internal/NativeArray.java",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700446 # And it's also sensible to want for serialization:
447 "src/com/google/gwt/user/client/ui/SuggestOracle.java",
448 ],
449 exclude = [
450 "**/junit/**",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700451 "src/com/google/web/bindery/requestfactory/server/RequestFactoryJarExtractor.java",
Goktug Gokdogan5b327a32016-07-08 22:45:16 -0700452 ] + DTO_SRCS + JVM_REGEXP_SRCS,
Brian Slesinsky6e071292014-04-08 15:02:41 -0700453 ),
Roberto Lublinerman05592162016-06-15 16:35:59 -0700454 compatible_with = ["//buildenv/target:appengine"],
Roberto Lublinermanb6140dd2017-12-11 10:25:59 -0800455 javacopts = [
456 "-XepAllErrorsAsWarnings",
457 ],
Brian Slesinsky6e071292014-04-08 15:02:41 -0700458 deps = [
Goktug Gokdogan5b327a32016-07-08 22:45:16 -0700459 ":gwt-dto-serializers",
Goktug Gokdogan701143c2017-05-04 14:43:27 -0700460 ":gwt-javaemul-annotations",
461 ":gwt-jsinterop-annotations",
Goktug Gokdogan5b327a32016-07-08 22:45:16 -0700462 ":jvm_regexp",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700463 "//third_party/java/servlet/servlet_api",
464 "//third_party/java_src/gwt/svn/tools:servlet_deps",
465 "//third_party/java_src/gwt/svn/trunk/dev:compiler.standalone.super",
466 "//third_party/java_src/gwt/svn/trunk/dev:servlet-deps",
Daniel Kurka519e16b2015-02-18 20:23:41 +0000467 ],
Brian Slesinsky6e071292014-04-08 15:02:41 -0700468)
469
470# The minimum requirements for GWT-RPC serializable object definition.
471# Includes support for data transfer objects (with default or custom field serialization)
472# but not server interfaces, services, client code, etc.
473#
474# CAUTION: most of google ends up depending on this, via common/base:base-gwt
475# and common/collect:collect-gwt. You really don't want it to be big!
476java_library(
477 name = "gwt-dto-serializers",
Goktug Gokdogan5b327a32016-07-08 22:45:16 -0700478 srcs = DTO_SRCS,
Roberto Lublinerman05592162016-06-15 16:35:59 -0700479 compatible_with = [
480 "//buildenv/target:android",
481 "//buildenv/target:appengine",
482 ],
Brian Slesinsky6e071292014-04-08 15:02:41 -0700483 constraints = [
Roberto Lublinerman15a925d2016-01-11 15:46:51 -0800484 "android",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700485 "gwt",
486 "public",
487 ],
488 gwtxml = "Gwt-dto-serializers.gwt.xml",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700489)
490
Goktug Gokdogan701143c2017-05-04 14:43:27 -0700491# GWT pluggable type annotations in a separate library.
492java_library(
493 name = "gwt-safehtml-pluggabletypes",
494 srcs = glob(["src/com/google/gwt/safehtml/shared/annotations/Is*.java"]),
495 compatible_with = ["//buildenv/target:appengine"],
496)
497
Roberto Lublinermana7a8c9f2014-04-21 09:12:39 -0700498# Creates gwt-testing.jar, which contains GWTTestCase and its infrastructure.
499# (The jar depends on gwt-user.jar but the dependency isn't declared.
500# Instead we assume it will be added by a wrapper rule.)
501AugmentedJar(
502 name = "gwt-testing",
Brian Slesinsky3114e452014-04-23 10:56:53 -0700503 srcs = [],
504 added_jars = [
505 ":libgwt-testing-bare.jar",
506 ],
Roberto Lublinermana7a8c9f2014-04-21 09:12:39 -0700507 added_root_globs = {
508 "src": ["src/com/google/gwt/junit/**"],
509 "super": ["super/com/google/gwt/junit/**"],
510 },
Roberto Lublinerman37ff62f2016-09-27 13:39:25 -0700511 compatible_with = ["//buildenv/target:appengine"],
Roberto Lublinermana7a8c9f2014-04-21 09:12:39 -0700512 dojarjar = 1,
513 exclude_glob = [
514 "**/package.html",
Roberto Lublinermana7a8c9f2014-04-21 09:12:39 -0700515 "**/RunStyleSelenium.java",
516 ],
Goktug Gokdogand2dd6242017-10-10 19:40:49 -0700517 deps = ["//third_party/java/junit:not-testonly"],
Roberto Lublinermana7a8c9f2014-04-21 09:12:39 -0700518)
519
Brian Slesinsky3114e452014-04-23 10:56:53 -0700520# The gwt-testing classes for GWT internal use only.
521# They must be jarjar-ed and dependencies stripped before exposing to google3.
522java_library(
523 name = "gwt-testing-bare",
524 testonly = 1,
525 srcs = glob(
526 ["src/com/google/gwt/junit/**/*.java"],
527 exclude = [
528 "**/super/**",
529 "**/RunStyleSelenium.java",
530 ],
531 ),
Roberto Lublinerman37ff62f2016-09-27 13:39:25 -0700532 compatible_with = ["//buildenv/target:appengine"],
Brian Slesinsky3114e452014-04-23 10:56:53 -0700533 deps = [
534 ":gwt-user-bare",
535 "//third_party/java/junit",
536 "//third_party/java_src/gwt/svn/tools:dev_deps",
537 "//third_party/java_src/gwt/svn/tools:servlet_api_3",
538 "//third_party/java_src/gwt/svn/trunk/dev:compiler.standalone.super",
539 "//third_party/java_src/gwt/svn/trunk/dev:gwt-dev-bare",
540 ],
541)
542
Brian Slesinsky6e071292014-04-08 15:02:41 -0700543# === TESTS ===
544
545AugmentedJar(
546 name = "user-test-code",
Brian Slesinsky3114e452014-04-23 10:56:53 -0700547 testonly = 1,
Brian Slesinsky6e071292014-04-08 15:02:41 -0700548 srcs = glob(
549 [
550 "test/**/*.java",
551 "test_i18n_bar/**/*.java",
552 ],
553 exclude = [
554 "test/**/super/**",
Roberto Lublinermana6f79c52014-05-07 16:51:58 -0700555 "test/**/tck/**",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700556 "**/RunStyleSeleniumTest.java",
557 ],
558 ),
559 added_roots = [
560 "test",
561 "test-super",
562 "test_i18n_bar",
563 ],
Brian Slesinsky3114e452014-04-23 10:56:53 -0700564 # For build_deps we should use pre-jarjar dependencies (-bare)
Brian Slesinsky6e071292014-04-08 15:02:41 -0700565 build_deps = [
Roberto Lublinermanf0d1ea12017-02-21 08:36:33 -0800566 ":gwt-jsinterop-annotations",
Brian Slesinsky3114e452014-04-23 10:56:53 -0700567 ":gwt-user-bare",
568 ":gwt-testing-bare",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700569 "//third_party/java_src/gwt/svn/tools:dev_deps",
Brian Slesinsky3114e452014-04-23 10:56:53 -0700570 "//third_party/java_src/gwt/svn/tools:user_deps",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700571 "//third_party/java_src/gwt/svn/tools:servlet_api_3",
Brian Slesinsky3114e452014-04-23 10:56:53 -0700572 "//third_party/java_src/gwt/svn/trunk/dev:gwt-dev-bare",
573 "//third_party/java_src/gwt/svn/trunk/dev:dev-test-code-bare",
574 # for @GwtScriptOnly
575 "//third_party/java_src/gwt/svn/trunk/dev:compiler.standalone.super",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700576 ],
577 constraints = [
578 "gwt",
579 "public",
580 ],
581 dojarjar = 1,
582 export_deps = [
583 "//third_party/java_src/gwt:gwt-dev", # for the post-jarjar names
Roberto Lublinerman57c8eed2015-03-11 15:56:31 -0700584 "//third_party/java_src/gwt:gwt-testing",
Brian Slesinsky3114e452014-04-23 10:56:53 -0700585 "//third_party/java_src/gwt/svn/trunk/dev:dev-test-code",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700586 ],
Roberto Lublinerman37ff62f2016-09-27 13:39:25 -0700587 javacopts = [
Roberto Lublinermanb6140dd2017-12-11 10:25:59 -0800588 "-XepAllErrorsAsWarnings",
Roberto Lublinerman37ff62f2016-09-27 13:39:25 -0700589 ],
Brian Slesinsky6e071292014-04-08 15:02:41 -0700590 deps = [
591 "//third_party/java/jsr305_annotations",
592 "//third_party/java/junit",
593 "//third_party/java_src/gwt/svn/tools:testtool_deps",
Daniel Kurka519e16b2015-02-18 20:23:41 +0000594 ],
Roberto Lublinermana6f79c52014-05-07 16:51:58 -0700595)
596
597# This target should only be dependent from platform tests that care about tck.
598# This target is separated from user-test-code as its deps pulls in an old version of Guice which
599# breaks the Webdriver for Android.
600AugmentedJar(
601 name = "tck-test-code",
602 testonly = 1,
603 srcs = glob(["test/**/tck/**/*.java"]),
604 # For build_deps we should use pre-jarjar dependencies (-bare)
605 build_deps = [
606 ":gwt-user-bare",
607 ":gwt-testing-bare",
608 "//third_party/java_src/gwt/svn/tools:user_deps",
609 "//third_party/java_src/gwt/svn/trunk/dev:gwt-dev-bare",
610 "//third_party/java_src/gwt/svn/trunk/dev:dev-test-code-bare",
611 ],
612 constraints = [
613 "gwt",
614 "public",
615 ],
616 dojarjar = 1,
617 deps = [
618 "//third_party/java/junit",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700619 "//third_party/java_src/gwt/svn/tools:validator_deps",
620 "//third_party/java_src/gwt/svn/tools:validator_tck_deps",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700621 ],
622)
623
624filegroup(
625 name = "browser_suite_files",
Roberto Lublinermana7a8c9f2014-04-21 09:12:39 -0700626 srcs = glob(
627 ["test/**/*Suite.java"],
Brian Slesinsky6e071292014-04-08 15:02:41 -0700628 exclude = [
Roberto Lublinerman57c8eed2015-03-11 15:56:31 -0700629 "test/**/ConstraintDefinitionsGwtSuite.java",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700630 "test/**/*JreSuite.java",
631 ],
Roberto Lublinermana7a8c9f2014-04-21 09:12:39 -0700632 ),
Brian Slesinsky6e071292014-04-08 15:02:41 -0700633)
634
635filegroup(
Goktug Gokdogan96700c82014-09-12 12:11:46 -0700636 name = "jsinterop_suite_files",
637 srcs = glob(["test/**/*JsInteropSuite.java"]),
638)
639
640filegroup(
Brian Slesinsky6e071292014-04-08 15:02:41 -0700641 name = "nobrowser_suite_files",
642 srcs = glob(["test/**/*JreSuite.java"]),
643)
644
645filegroup(
Goktug Gokdogan26deda22015-10-19 15:48:30 -0700646 name = "dev_suite_files",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700647 srcs = glob(
648 ["test/**/*Suite.java"],
649 exclude = [
Roberto Lublinerman57c8eed2015-03-11 15:56:31 -0700650 "test/**/ConstraintDefinitionsGwtSuite.java",
Roberto Lublinermana6f79c52014-05-07 16:51:58 -0700651 "test/**/*CompilerSuite.java",
John Stalcup99c353a2014-08-01 18:10:32 -0700652 "test/**/RunAsyncSuite.java",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700653 "test/**/*JreSuite.java",
Goktug Gokdogan96700c82014-09-12 12:11:46 -0700654 "test/**/*JsInteropSuite.java",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700655 ],
656 ),
657)
658
659# === ant and checkstyle ===
660
661# Files to be excluded from ant tests.
662ANT_EXCLUDES = [
663 "**/.git/**",
664 "**/.svn/**",
665 # in case eclipse output is mixed into source
666 "**/war/WEB-INF/classes/**",
667 "**/webapp/WEB-INF/classes/**",
668 "**/bin/**",
669 # emacs backup and autosave files
670 "**/*~",
671 "**/#*",
672 "test_i18n_dollar/**",
673]
674
675filegroup(
676 name = "checkstyle_files",
677 srcs = glob(
678 ["*/com/google/gwt/**/*.java"],
679 exclude = ANT_EXCLUDES,
680 exclude_directories = 1,
681 ),
682)
683
684filegroup(
685 name = "checkapi_files",
686 srcs = glob(
687 [
688 "**/*.java",
689 "**/gwt*userApi.conf",
690 ],
691 exclude = ANT_EXCLUDES,
692 exclude_directories = 1,
693 ),
694)
695
696filegroup(
697 name = "ant_files",
698 srcs = glob(
699 [
700 "build.xml",
701 "javadoc/**/*",
702 "src/**/*",
703 "style/**/*",
704 "super/**/*",
705 "test/**/*",
706 "test_i18n_bar/**/*",
707 "test-super/**/*",
708 ],
709 exclude = ANT_EXCLUDES,
710 ),
711)
Daniel Kurka5e5d2632015-08-26 19:40:57 +0200712
713filegroup(
Goktug Gokdoganf1381ca2016-03-04 00:58:51 -0800714 name = "java_emul",
715 srcs = glob(["super/com/google/gwt/emul/java/**/*.java"]),
Daniel Kurka5e5d2632015-08-26 19:40:57 +0200716 visibility = ["//third_party/java_src/j2cl:__subpackages__"],
717)
Daniel Kurkaa0a50792015-09-23 20:05:06 +0200718
719filegroup(
Goktug Gokdoganf1381ca2016-03-04 00:58:51 -0800720 name = "java_emul_internal",
Goktug Gokdogan701143c2017-05-04 14:43:27 -0700721 srcs = glob(["super/com/google/gwt/emul/javaemul/internal/*.java"]),
Goktug Gokdoganf1381ca2016-03-04 00:58:51 -0800722 visibility = ["//third_party/java_src/j2cl:__subpackages__"],
723)
724
725filegroup(
726 name = "java_emul_test",
Daniel Kurkaa0a50792015-09-23 20:05:06 +0200727 srcs = glob(
728 [
729 "test/com/google/gwt/emultest/**/*.java",
730 "test/com/google/gwt/testing/TestUtils.java",
731 "test/org/apache/commons/**/*.java",
732 ],
Daniel Kurka186c2fd2016-06-07 12:40:06 +0200733 ),
734 visibility = ["//third_party/java_src/j2cl:__subpackages__"],
735)