blob: 0237d12bbec950139ebe79a1facad762d5c0e794 [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
30# The classes in gwt-user.jar that GWT applications can depend on.
31# We want the final output of this NOT to depend on gwt-dev,
32# though it is built with that dependency, because user code can and should
33# depend on this without also touching the compiler and shell internals.
34AugmentedJar(
35 name = "gwt-user-classes-src",
Brian Slesinsky3114e452014-04-23 10:56:53 -070036 srcs = [],
37 added_jars = [
38 ":libgwt-user-bare.jar",
39 "//third_party/java_src/gwt/svn/tools:user_jars",
40 ],
Brian Slesinsky6e071292014-04-08 15:02:41 -070041 added_roots = [
42 "src",
43 "super",
44 ],
Roberto Lublinerman05592162016-06-15 16:35:59 -070045 compatible_with = ["//buildenv/target:appengine"],
Brian Slesinsky6e071292014-04-08 15:02:41 -070046 constraints = [],
47 dojarjar = 1,
48 exclude_glob = [
49 "**/package.html",
Roberto Lublinermana7a8c9f2014-04-21 09:12:39 -070050 "src/com/google/gwt/junit/**",
51 "super/com/google/gwt/junit/**",
Brian Slesinsky6e071292014-04-08 15:02:41 -070052 ],
53 java_library_name = "gwt-user-classes",
54 output_name = "gwt-user-classes-src.jar",
55 wrap_javalibrary = 0,
56)
57
Brian Slesinsky3114e452014-04-23 10:56:53 -070058# The gwt-user classes for GWT internal use only.
59# They must be jarjar-ed and dependencies stripped before exposing to google3.
60java_library(
61 name = "gwt-user-bare",
62 srcs = glob(
Goktug Gokdoganf1381ca2016-03-04 00:58:51 -080063 [
64 "src/**/*.java",
65 "super/com/google/gwt/emul/javaemul/internal/**/*.java",
66 ],
Brian Slesinsky3114e452014-04-23 10:56:53 -070067 exclude = [
68 "src/com/google/gwt/junit/**/*.java", # see gwt-testing
Roberto Lublinerman37ff62f2016-09-27 13:39:25 -070069 "**/ConsoleLogger.java", # relies on internal APIs
70 "**/SuperDevModeLogger.java", # relies on ConsoleLogger
Goktug Gokdoganf1381ca2016-03-04 00:58:51 -080071 "**/EmulatedCharset.java",
Goktug Gokdogan5b327a32016-07-08 22:45:16 -070072 "**/HashCodes.java", # relies on java8 only APIs
Brian Slesinsky3114e452014-04-23 10:56:53 -070073 "**/RunStyleSelenium.java",
74 ],
75 ),
Roberto Lublinerman05592162016-06-15 16:35:59 -070076 compatible_with = ["//buildenv/target:appengine"],
Goktug Gokdogan5b327a32016-07-08 22:45:16 -070077 plugins = [
78 "//java/com/google/devtools/build/buildjar/plugin/gwt",
79 ],
Brian Slesinsky3114e452014-04-23 10:56:53 -070080 deps = [
81 "//third_party/java_src/gwt/svn/tools:dev_deps",
82 "//third_party/java_src/gwt/svn/tools:servlet_api_3",
83 "//third_party/java_src/gwt/svn/tools:user_deps",
84 "//third_party/java_src/gwt/svn/trunk/dev:compiler.standalone.super",
85 "//third_party/java_src/gwt/svn/trunk/dev:gwt-dev-bare",
Daniel Kurka519e16b2015-02-18 20:23:41 +000086 ],
Brian Slesinsky3114e452014-04-23 10:56:53 -070087)
88
Brian Slesinsky6e071292014-04-08 15:02:41 -070089# This target is used by a java_plugin over in java/gwt/BUILD. It's
90# a pretty simple annotation processor, so in order to keep it from being a
91# build bottleneck, it's simply built from scratch.
92java_library(
93 name = "requestfactory-apt",
94 srcs = glob([
95 "src/com/google/web/bindery/requestfactory/apt/*.java",
96 ]) + [
97 "src/com/google/web/bindery/requestfactory/shared/JsonRpcProxy.java",
98 "src/com/google/web/bindery/requestfactory/shared/JsonRpcService.java",
99 "src/com/google/web/bindery/requestfactory/shared/Locator.java",
100 "src/com/google/web/bindery/requestfactory/shared/Service.java",
101 "src/com/google/web/bindery/requestfactory/shared/ServiceLocator.java",
102 "src/com/google/web/bindery/requestfactory/shared/ServiceName.java",
103 "src/com/google/web/bindery/requestfactory/shared/SkipInterfaceValidation.java",
104 "src/com/google/web/bindery/requestfactory/shared/ProxyFor.java",
105 "src/com/google/web/bindery/requestfactory/shared/ProxyForName.java",
106 "src/com/google/web/bindery/requestfactory/vm/impl/ClassComparator.java",
107 "src/com/google/web/bindery/requestfactory/vm/impl/Deobfuscator.java",
108 "src/com/google/web/bindery/requestfactory/vm/impl/OperationData.java",
109 "src/com/google/web/bindery/requestfactory/vm/impl/OperationKey.java",
110 "src/com/google/gwt/core/shared/GwtIncompatible.java",
111 "src/com/google/gwt/user/server/Base64Utils.java",
112 ],
Roberto Lublinerman37ff62f2016-09-27 13:39:25 -0700113 compatible_with = ["//buildenv/target:appengine"],
Brian Slesinsky6e071292014-04-08 15:02:41 -0700114 deps = [
115 "//third_party/java_src/gwt/svn/trunk/dev:requestfactory-apt-deps",
116 ],
117)
118
119# Packages just AutoBeans source into a jar with correct java root.
120AugmentedJar(
121 name = "autobean-classes-src",
122 srcs = glob(["src/com/google/web/bindery/autobean/**/*.java"]),
123 added_root_globs = {"src": ["src/com/google/web/bindery/autobean/**/*.java"]},
124 # We only need the Java classes so don't wait for the rest of :gwt-dev.
125 build_deps = [
126 "//third_party/java_src/gwt:gwt-user-full",
127 "//third_party/java_src/gwt/svn/tools:dev_deps",
128 "//third_party/java_src/gwt/svn/trunk/dev:compiler.standalone.super",
Brian Slesinsky3114e452014-04-23 10:56:53 -0700129 "//third_party/java_src/gwt/svn/trunk/dev:gwt-dev-bare",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700130 ],
131 constraints = [],
132 dojarjar = 1,
133 exclude_glob = [
134 "**/package.html",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700135 ],
136 java_library_name = "autobean-classes",
137 output_name = "autobean-classes-src.jar",
138 wrap_javalibrary = 0,
139)
140
141# Repackages the AutoBeans.gwt.xml file with correct java root by placing it in
142# "java/".
143genrule(
144 name = "autobean-gwt-xml",
145 srcs = [":src/com/google/web/bindery/autobean/AutoBean.gwt.xml"],
146 outs = ["java/com/google/web/bindery/autobean/AutoBean.gwt.xml"],
147 cmd = ("cp $(location :src/com/google/web/bindery/autobean/AutoBean.gwt.xml) " +
148 "$(location java/com/google/web/bindery/autobean/AutoBean.gwt.xml)"),
149)
150
Goktug Gokdogand6314fc2015-10-09 14:59:43 -0700151java_import(
152 name = "autobean_import",
153 constraints = [
154 "gwt",
155 "public",
156 ],
157 jars = [":autobean-classes-src.jar"],
158 deps = [
159 "//third_party/java_src/gwt:gwt-dev",
160 "//third_party/java_src/gwt:gwt-user-full",
161 ],
162)
163
Brian Slesinsky6e071292014-04-08 15:02:41 -0700164java_library(
165 name = "autobean",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700166 constraints = [
167 "gwt",
168 "public",
169 ],
170 gwtxml = "java/com/google/web/bindery/autobean/AutoBean.gwt.xml",
Goktug Gokdogand6314fc2015-10-09 14:59:43 -0700171 exports = [":autobean_import"],
Brian Slesinsky6e071292014-04-08 15:02:41 -0700172)
173
John Stalcup5c3e97e2014-04-21 19:16:25 -0700174# Packages just IncrementalBuilder test resource into a jar with correct java root.
175AugmentedJar(
176 name = "incremental-build-system-test-res",
177 srcs = [],
178 added_root_globs = {
179 "test": [
John Stalcup7d432a62014-06-11 15:46:53 -0700180 "test/com/google/gwt/dev/testdata/incrementalbuildsystem/**/*",
John Stalcup5c3e97e2014-04-21 19:16:25 -0700181 ],
182 },
183 # We only need the Java classes so don't wait for the rest of :gwt-dev.
184 build_deps = [
185 "//third_party/java_src/gwt:gwt-user-full",
186 "//third_party/java_src/gwt/svn/tools:dev_deps",
187 "//third_party/java_src/gwt/svn/trunk/dev:compiler.standalone.super",
188 "//third_party/java_src/gwt/svn/trunk/dev:gwt-dev-classes",
189 ],
190 constraints = [],
191 dojarjar = 1,
192 exclude_glob = [
193 "**/package.html",
John Stalcup5c3e97e2014-04-21 19:16:25 -0700194 ],
195 output_name = "incremental-build-system-test-res.jar",
196 wrap_javalibrary = 0,
197)
198
Goktug Gokdogan5b327a32016-07-08 22:45:16 -0700199JVM_REGEXP_SRCS = glob(["src/com/google/gwt/regexp/shared/*.java"])
200
Brian Slesinsky6e071292014-04-08 15:02:41 -0700201# See //third_party/java/gwt:regexp
202java_library(
203 name = "jvm_regexp",
Goktug Gokdogan5b327a32016-07-08 22:45:16 -0700204 srcs = JVM_REGEXP_SRCS,
Roberto Lublinerman05592162016-06-15 16:35:59 -0700205 compatible_with = [
206 "//buildenv/target:android",
207 "//buildenv/target:appengine",
208 ],
Brian Slesinsky6e071292014-04-08 15:02:41 -0700209 constraints = ["android"],
210)
211
212# See //third_party/java/gwt:hibernate-validation-support
213java_library(
214 name = "hibernate-validation-support",
215 srcs = glob(
216 [
217 "src/org/hibernate/validator/**/*_CustomFieldSerializer.java",
218 "src/org/hibernate/validator/engine/ValidationSupport.java",
219 ],
Brian Slesinsky6e071292014-04-08 15:02:41 -0700220 ),
221 deps = [
222 "//third_party/java/hibernate:validator",
223 "//third_party/java/javax_validation",
224 "//third_party/java_src/gwt:gwt-servlet",
225 ],
226)
227
Goktug Gokdogan5b327a32016-07-08 22:45:16 -0700228DTO_SRCS = [
229 "src/com/google/gwt/user/client/rpc/CustomFieldSerializer.java",
230 "src/com/google/gwt/user/client/rpc/GwtTransient.java",
231 "src/com/google/gwt/user/client/rpc/IsSerializable.java",
232 "src/com/google/gwt/user/client/rpc/SerializationException.java",
233 "src/com/google/gwt/user/client/rpc/SerializationStreamReader.java",
234 "src/com/google/gwt/user/client/rpc/SerializationStreamWriter.java",
235] + glob([
236 "src/com/google/gwt/user/client/rpc/core/java/util/*.java",
237])
238
Brian Slesinsky6e071292014-04-08 15:02:41 -0700239# The indirection through libgwt-servlet-impl.jar is needed so that Java symbols in the outputs of
240# this package are distributed in one form (through the class jars, as AugmentedJar does)
241# This prevents them appearing them on classpath as both sources and classes, which confuses javac
242# For example see b/3033925
Goktug Gokdogand6314fc2015-10-09 14:59:43 -0700243java_import(
Brian Slesinsky6e071292014-04-08 15:02:41 -0700244 name = "gwt-servlet-internal",
Roberto Lublinerman05592162016-06-15 16:35:59 -0700245 compatible_with = ["//buildenv/target:appengine"],
Goktug Gokdogand6314fc2015-10-09 14:59:43 -0700246 jars = [":libgwt-servlet-impl.jar"],
Brian Slesinsky6e071292014-04-08 15:02:41 -0700247)
248
249java_library(
250 name = "gwt-servlet-impl",
251 srcs = glob(
252 [
253 "src/com/google/gwt/**/server/**/*.java",
254 "src/com/google/gwt/**/shared/**/*.java",
255 "src/com/google/web/bindery/**/server/**/*.java",
256 "src/com/google/web/bindery/**/shared/**/*.java",
257 "src/com/google/web/bindery/**/vm/**/*.java",
258 "src/com/google/web/bindery/event/shared/**/*.java",
259 "src/javax/validation/**/*_CustomFieldSerializer.java",
260 # Despite the "client" designation, these packages are
261 # also reached by server RPC code:
262 "src/com/google/gwt/canvas/dom/client/*.java",
263 "src/com/google/gwt/debug/client/DebugInfo.java",
264 "src/com/google/gwt/media/dom/client/*.java",
Goktug Gokdogan5b327a32016-07-08 22:45:16 -0700265 "src/com/google/gwt/user/client/rpc/core/**/*.java",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700266 "src/com/google/gwt/user/client/rpc/SerializedTypeViolationException.java",
267 "src/com/google/gwt/user/client/rpc/IncompatibleRemoteServiceException.java",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700268 "src/com/google/gwt/user/client/rpc/RemoteService.java",
269 "src/com/google/gwt/user/client/rpc/AsyncCallback.java",
270 "src/com/google/gwt/user/client/rpc/RemoteServiceRelativePath.java",
271 "src/com/google/gwt/user/client/rpc/RpcToken.java",
272 "src/com/google/gwt/user/client/rpc/RpcTokenException.java",
273 "src/com/google/gwt/user/client/rpc/RpcTokenExceptionHandler.java",
274 "src/com/google/gwt/user/client/rpc/impl/AbstractSerialization*.java",
275 "src/com/google/gwt/user/client/rpc/RpcRequestBuilder.java",
276 "src/com/google/gwt/user/client/rpc/ServiceDefTarget.java",
277 "src/com/google/gwt/user/client/rpc/InvocationException.java",
278 "src/com/google/gwt/user/client/rpc/CustomFieldSerializer.java",
279 "src/com/google/gwt/user/client/rpc/XsrfProtectedService.java",
280 "src/com/google/gwt/user/client/rpc/XsrfToken.java",
281 "src/com/google/gwt/user/client/rpc/XsrfTokenService.java",
282 "src/com/google/gwt/http/client/RequestBuilder.java",
283 "src/com/google/gwt/http/client/Request.java",
284 "src/com/google/gwt/http/client/Header.java",
285 "src/com/google/gwt/http/client/Response.java",
286 "src/com/google/gwt/http/client/ResponseImpl.java",
287 "src/com/google/gwt/http/client/RequestException.java",
288 "src/com/google/gwt/http/client/RequestPermissionException.java",
289 "src/com/google/gwt/http/client/RequestTimeoutException.java",
290 "src/com/google/gwt/http/client/RequestCallback.java",
291 "src/com/google/gwt/http/client/StringValidator.java",
292 "src/com/google/gwt/http/client/URL.java",
293 "src/com/google/gwt/http/client/UrlBuilder.java",
294 "src/com/google/gwt/json/client/JSONArray.java",
295 "src/com/google/gwt/json/client/JSONBoolean.java",
296 "src/com/google/gwt/json/client/JSONException.java",
297 "src/com/google/gwt/json/client/JSONNull.java",
298 "src/com/google/gwt/json/client/JSONNumber.java",
299 "src/com/google/gwt/json/client/JSONObject.java",
300 "src/com/google/gwt/json/client/JSONString.java",
301 "src/com/google/gwt/json/client/JSONValue.java",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700302 "src/com/google/gwt/core/client/JsonUtils.java",
303 "src/com/google/gwt/core/client/impl/WeakMapping.java",
304 "src/com/google/gwt/xhr/client/ReadyStateChangeHandler.java",
305 "src/com/google/gwt/xhr/client/XMLHttpRequest.java",
306 "src/com/google/gwt/user/client/Timer.java",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700307 "src/com/google/gwt/user/client/rpc/impl/ClientSerializationStreamWriter.java",
308 "src/com/google/gwt/user/client/rpc/impl/Serializer.java",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700309 # ...which need:
310 "src/com/google/gwt/core/client/GWT.java",
311 "src/com/google/gwt/core/client/JavaScriptException.java",
312 "src/com/google/gwt/core/client/JavaScriptObject.java",
313 "src/com/google/gwt/core/client/JsArray.java",
314 "src/com/google/gwt/core/client/JsDate.java",
315 "src/com/google/gwt/core/client/Duration.java",
316 "src/com/google/gwt/core/client/Scheduler.java",
317 "src/com/google/gwt/user/client/Window.java",
318 "src/com/google/gwt/user/client/Window*.java",
319 "src/com/google/gwt/user/client/BaseListenerWrapper.java",
320 "src/com/google/gwt/user/client/Element.java",
321 "src/com/google/gwt/user/client/Event.java",
322 "src/com/google/gwt/user/client/EventListener.java",
323 "src/com/google/gwt/user/client/EventPreview.java",
324 "src/com/google/gwt/user/client/NativePreviewEvent.java",
325 "src/com/google/gwt/user/client/History.java",
326 "src/com/google/gwt/user/client/impl/HistoryImpl.java",
327 "src/com/google/gwt/user/client/impl/DomImpl.java",
328 "src/com/google/gwt/user/client/HistoryListener.java",
329 "src/com/google/gwt/user/client/Cookies.java",
Goktug Gokdogan1d660d22015-12-07 15:07:02 -0800330 "src/com/google/gwt/core/client/impl/JavaScriptExceptionBase.java",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700331 "src/com/google/gwt/user/client/ui/AcceptsOneWidget.java",
332 "src/com/google/gwt/user/client/ui/Widget.java",
333 "src/com/google/gwt/user/client/ui/IsWidget.java",
334 "src/com/google/gwt/user/client/ui/HasOneWidget.java",
335 "src/com/google/gwt/user/client/ui/HasVisibility.java",
336 "src/com/google/gwt/user/client/ui/HasWidgets.java",
337 "src/com/google/gwt/user/client/ui/HasText.java",
338 "src/com/google/gwt/user/client/ui/AbsolutePanel.java",
339 "src/com/google/gwt/user/client/ui/ComplexPanel.java",
340 "src/com/google/gwt/user/client/ui/IndexedPanel.java",
341 "src/com/google/gwt/user/client/ui/InsertPanel.java",
342 "src/com/google/gwt/user/client/ui/Panel.java",
343 "src/com/google/gwt/user/client/ui/AttachDetachException.java",
344 "src/com/google/gwt/user/client/ui/UIObject.java",
345 "src/com/google/gwt/user/client/ui/PotentialElement.java",
346 "src/com/google/gwt/user/client/ui/RootPanel.java",
347 "src/com/google/gwt/user/client/ui/WidgetCollection.java",
348 "src/com/google/gwt/event/dom/client/HasNativeEvent.java",
349 "src/com/google/gwt/event/dom/client/PrivateMap.java",
350 "src/com/google/gwt/event/dom/client/DomEvent.java",
351 "src/com/google/gwt/event/dom/client/KeyEvent.java",
352 "src/com/google/gwt/event/dom/client/KeyCodeEvent.java",
353 "src/com/google/gwt/event/dom/client/KeyCodes.java",
354 "src/com/google/gwt/event/dom/client/KeyUpEvent.java",
355 "src/com/google/gwt/event/dom/client/HasKeyUpHandlers.java",
356 "src/com/google/gwt/event/dom/client/KeyUpHandler.java",
357 "src/com/google/gwt/user/client/DOM.java",
358 "src/com/google/gwt/user/client/impl/DOMImpl.java",
359 "src/com/google/gwt/user/client/impl/WindowImpl.java",
360 "src/com/google/gwt/dom/client/*.java",
361 "src/com/google/gwt/core/client/impl/Impl.java",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700362 "src/com/google/gwt/core/client/impl/StackTraceCreator.java",
363 "src/com/google/gwt/core/client/impl/SchedulerImpl.java",
364 "src/com/google/gwt/core/client/impl/AsyncFragmentLoader.java",
365 "src/com/google/gwt/core/client/impl/OnSuccessExecutor.java",
366 "src/com/google/gwt/core/client/impl/SynchronousOnSuccessExecutor.java",
367 "src/com/google/gwt/core/client/JsArrayInteger.java",
368 "src/com/google/gwt/core/client/JsArrayString.java",
369 "src/com/google/gwt/core/client/RunAsyncCallback.java",
370 "src/com/google/gwt/i18n/client/constants/*.java",
371 "src/com/google/gwt/i18n/client/impl/cldr/*.java",
372 "src/com/google/gwt/i18n/client/impl/plurals/*.java",
373 "src/com/google/gwt/i18n/client/impl/*.java",
374 "src/com/google/gwt/i18n/client/*.java",
375 "src/com/google/gwt/i18n/rebind/keygen/*.java",
Goktug Gokdoganf1381ca2016-03-04 00:58:51 -0800376 "super/com/google/gwt/emul/javaemul/internal/ArrayHelper.java",
377 "super/com/google/gwt/emul/javaemul/internal/ArrayStamper.java",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700378 # And it's also sensible to want for serialization:
379 "src/com/google/gwt/user/client/ui/SuggestOracle.java",
380 ],
381 exclude = [
382 "**/junit/**",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700383 "src/com/google/web/bindery/requestfactory/server/RequestFactoryJarExtractor.java",
Goktug Gokdogan5b327a32016-07-08 22:45:16 -0700384 ] + DTO_SRCS + JVM_REGEXP_SRCS,
Brian Slesinsky6e071292014-04-08 15:02:41 -0700385 ),
Roberto Lublinerman05592162016-06-15 16:35:59 -0700386 compatible_with = ["//buildenv/target:appengine"],
Brian Slesinsky6e071292014-04-08 15:02:41 -0700387 deps = [
Goktug Gokdogan5b327a32016-07-08 22:45:16 -0700388 ":gwt-dto-serializers",
389 ":jvm_regexp",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700390 "//third_party/java/servlet/servlet_api",
391 "//third_party/java_src/gwt/svn/tools:servlet_deps",
392 "//third_party/java_src/gwt/svn/trunk/dev:compiler.standalone.super",
393 "//third_party/java_src/gwt/svn/trunk/dev:servlet-deps",
Daniel Kurka519e16b2015-02-18 20:23:41 +0000394 ],
Brian Slesinsky6e071292014-04-08 15:02:41 -0700395)
396
397# The minimum requirements for GWT-RPC serializable object definition.
398# Includes support for data transfer objects (with default or custom field serialization)
399# but not server interfaces, services, client code, etc.
400#
401# CAUTION: most of google ends up depending on this, via common/base:base-gwt
402# and common/collect:collect-gwt. You really don't want it to be big!
403java_library(
404 name = "gwt-dto-serializers",
Goktug Gokdogan5b327a32016-07-08 22:45:16 -0700405 srcs = DTO_SRCS,
Roberto Lublinerman05592162016-06-15 16:35:59 -0700406 compatible_with = [
407 "//buildenv/target:android",
408 "//buildenv/target:appengine",
409 ],
Brian Slesinsky6e071292014-04-08 15:02:41 -0700410 constraints = [
Roberto Lublinerman15a925d2016-01-11 15:46:51 -0800411 "android",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700412 "gwt",
413 "public",
414 ],
415 gwtxml = "Gwt-dto-serializers.gwt.xml",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700416)
417
Ray Cromwellccbd26c2014-05-13 13:37:32 -0700418# GWT JsInterop annotations in a separate library used by hybrid app projects
419java_library(
420 name = "gwt-jsinterop-annotations",
Roberto Lublinermancdfe03e2016-01-19 15:48:25 -0800421 srcs = glob(["src/jsinterop/**/*.java"]),
Roberto Lublinerman05592162016-06-15 16:35:59 -0700422 compatible_with = [
423 "//buildenv/target:android",
424 "//buildenv/target:appengine",
425 ],
Ray Cromwellccbd26c2014-05-13 13:37:32 -0700426 constraints = [
Goktug Gokdogan77525aa2014-10-24 02:13:15 -0700427 "android",
Ray Cromwellccbd26c2014-05-13 13:37:32 -0700428 ],
Ray Cromwellccbd26c2014-05-13 13:37:32 -0700429)
430
Roberto Lublinermana7a8c9f2014-04-21 09:12:39 -0700431# Creates gwt-testing.jar, which contains GWTTestCase and its infrastructure.
432# (The jar depends on gwt-user.jar but the dependency isn't declared.
433# Instead we assume it will be added by a wrapper rule.)
434AugmentedJar(
435 name = "gwt-testing",
Brian Slesinsky3114e452014-04-23 10:56:53 -0700436 srcs = [],
437 added_jars = [
438 ":libgwt-testing-bare.jar",
439 ],
Roberto Lublinermana7a8c9f2014-04-21 09:12:39 -0700440 added_root_globs = {
441 "src": ["src/com/google/gwt/junit/**"],
442 "super": ["super/com/google/gwt/junit/**"],
443 },
Roberto Lublinerman37ff62f2016-09-27 13:39:25 -0700444 compatible_with = ["//buildenv/target:appengine"],
Roberto Lublinermana7a8c9f2014-04-21 09:12:39 -0700445 dojarjar = 1,
446 exclude_glob = [
447 "**/package.html",
Roberto Lublinermana7a8c9f2014-04-21 09:12:39 -0700448 "**/RunStyleSelenium.java",
449 ],
450)
451
Brian Slesinsky3114e452014-04-23 10:56:53 -0700452# The gwt-testing classes for GWT internal use only.
453# They must be jarjar-ed and dependencies stripped before exposing to google3.
454java_library(
455 name = "gwt-testing-bare",
456 testonly = 1,
457 srcs = glob(
458 ["src/com/google/gwt/junit/**/*.java"],
459 exclude = [
460 "**/super/**",
461 "**/RunStyleSelenium.java",
462 ],
463 ),
Roberto Lublinerman37ff62f2016-09-27 13:39:25 -0700464 compatible_with = ["//buildenv/target:appengine"],
Brian Slesinsky3114e452014-04-23 10:56:53 -0700465 deps = [
466 ":gwt-user-bare",
467 "//third_party/java/junit",
468 "//third_party/java_src/gwt/svn/tools:dev_deps",
469 "//third_party/java_src/gwt/svn/tools:servlet_api_3",
470 "//third_party/java_src/gwt/svn/trunk/dev:compiler.standalone.super",
471 "//third_party/java_src/gwt/svn/trunk/dev:gwt-dev-bare",
472 ],
473)
474
Brian Slesinsky6e071292014-04-08 15:02:41 -0700475# === TESTS ===
476
477AugmentedJar(
478 name = "user-test-code",
Brian Slesinsky3114e452014-04-23 10:56:53 -0700479 testonly = 1,
Brian Slesinsky6e071292014-04-08 15:02:41 -0700480 srcs = glob(
481 [
482 "test/**/*.java",
483 "test_i18n_bar/**/*.java",
484 ],
485 exclude = [
486 "test/**/super/**",
Roberto Lublinermana6f79c52014-05-07 16:51:58 -0700487 "test/**/tck/**",
Andrei Korzhevskii332ea022015-10-28 15:23:26 -0700488 "test/**/java8/**",
489 "test/**/*Java8Suite.java",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700490 "**/RunStyleSeleniumTest.java",
491 ],
492 ),
493 added_roots = [
494 "test",
495 "test-super",
496 "test_i18n_bar",
497 ],
Brian Slesinsky3114e452014-04-23 10:56:53 -0700498 # For build_deps we should use pre-jarjar dependencies (-bare)
Brian Slesinsky6e071292014-04-08 15:02:41 -0700499 build_deps = [
Brian Slesinsky3114e452014-04-23 10:56:53 -0700500 ":gwt-user-bare",
501 ":gwt-testing-bare",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700502 "//third_party/java_src/gwt/svn/tools:dev_deps",
Brian Slesinsky3114e452014-04-23 10:56:53 -0700503 "//third_party/java_src/gwt/svn/tools:user_deps",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700504 "//third_party/java_src/gwt/svn/tools:servlet_api_3",
Brian Slesinsky3114e452014-04-23 10:56:53 -0700505 "//third_party/java_src/gwt/svn/trunk/dev:gwt-dev-bare",
506 "//third_party/java_src/gwt/svn/trunk/dev:dev-test-code-bare",
507 # for @GwtScriptOnly
508 "//third_party/java_src/gwt/svn/trunk/dev:compiler.standalone.super",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700509 ],
510 constraints = [
511 "gwt",
512 "public",
513 ],
514 dojarjar = 1,
515 export_deps = [
516 "//third_party/java_src/gwt:gwt-dev", # for the post-jarjar names
Roberto Lublinerman57c8eed2015-03-11 15:56:31 -0700517 "//third_party/java_src/gwt:gwt-testing",
Brian Slesinsky3114e452014-04-23 10:56:53 -0700518 "//third_party/java_src/gwt/svn/trunk/dev:dev-test-code",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700519 ],
Roberto Lublinerman37ff62f2016-09-27 13:39:25 -0700520 javacopts = [
521 "-Xep:SelfComparison:OFF", # go/self-comparison-lsc
522 "-Xep:SelfEquals:OFF", # go/self-equals-lsc
523 "-Xep:IdentityBinaryExpression:OFF",
524 ],
Brian Slesinsky6e071292014-04-08 15:02:41 -0700525 deps = [
526 "//third_party/java/jsr305_annotations",
527 "//third_party/java/junit",
528 "//third_party/java_src/gwt/svn/tools:testtool_deps",
Daniel Kurka519e16b2015-02-18 20:23:41 +0000529 ],
Roberto Lublinermana6f79c52014-05-07 16:51:58 -0700530)
531
532# This target should only be dependent from platform tests that care about tck.
533# This target is separated from user-test-code as its deps pulls in an old version of Guice which
534# breaks the Webdriver for Android.
535AugmentedJar(
536 name = "tck-test-code",
537 testonly = 1,
538 srcs = glob(["test/**/tck/**/*.java"]),
539 # For build_deps we should use pre-jarjar dependencies (-bare)
540 build_deps = [
541 ":gwt-user-bare",
542 ":gwt-testing-bare",
543 "//third_party/java_src/gwt/svn/tools:user_deps",
544 "//third_party/java_src/gwt/svn/trunk/dev:gwt-dev-bare",
545 "//third_party/java_src/gwt/svn/trunk/dev:dev-test-code-bare",
546 ],
547 constraints = [
548 "gwt",
549 "public",
550 ],
551 dojarjar = 1,
552 deps = [
553 "//third_party/java/junit",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700554 "//third_party/java_src/gwt/svn/tools:validator_deps",
555 "//third_party/java_src/gwt/svn/tools:validator_tck_deps",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700556 ],
557)
558
559filegroup(
560 name = "browser_suite_files",
Roberto Lublinermana7a8c9f2014-04-21 09:12:39 -0700561 srcs = glob(
562 ["test/**/*Suite.java"],
Brian Slesinsky6e071292014-04-08 15:02:41 -0700563 exclude = [
Roberto Lublinerman57c8eed2015-03-11 15:56:31 -0700564 "test/**/ConstraintDefinitionsGwtSuite.java",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700565 "test/**/*JreSuite.java",
Andrei Korzhevskii332ea022015-10-28 15:23:26 -0700566 "test/**/*Java8Suite.java",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700567 ],
Roberto Lublinermana7a8c9f2014-04-21 09:12:39 -0700568 ),
Brian Slesinsky6e071292014-04-08 15:02:41 -0700569)
570
571filegroup(
Goktug Gokdogan96700c82014-09-12 12:11:46 -0700572 name = "jsinterop_suite_files",
573 srcs = glob(["test/**/*JsInteropSuite.java"]),
574)
575
576filegroup(
Brian Slesinsky6e071292014-04-08 15:02:41 -0700577 name = "nobrowser_suite_files",
578 srcs = glob(["test/**/*JreSuite.java"]),
579)
580
581filegroup(
Goktug Gokdogan26deda22015-10-19 15:48:30 -0700582 name = "dev_suite_files",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700583 srcs = glob(
584 ["test/**/*Suite.java"],
585 exclude = [
Roberto Lublinerman57c8eed2015-03-11 15:56:31 -0700586 "test/**/ConstraintDefinitionsGwtSuite.java",
Roberto Lublinermana6f79c52014-05-07 16:51:58 -0700587 "test/**/*CompilerSuite.java",
John Stalcup99c353a2014-08-01 18:10:32 -0700588 "test/**/RunAsyncSuite.java",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700589 "test/**/*JreSuite.java",
Goktug Gokdogan96700c82014-09-12 12:11:46 -0700590 "test/**/*JsInteropSuite.java",
Andrei Korzhevskii332ea022015-10-28 15:23:26 -0700591 "test/**/*Java8Suite.java",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700592 ],
593 ),
594)
595
596# === ant and checkstyle ===
597
598# Files to be excluded from ant tests.
599ANT_EXCLUDES = [
600 "**/.git/**",
601 "**/.svn/**",
602 # in case eclipse output is mixed into source
603 "**/war/WEB-INF/classes/**",
604 "**/webapp/WEB-INF/classes/**",
605 "**/bin/**",
606 # emacs backup and autosave files
607 "**/*~",
608 "**/#*",
609 "test_i18n_dollar/**",
610]
611
612filegroup(
613 name = "checkstyle_files",
614 srcs = glob(
615 ["*/com/google/gwt/**/*.java"],
616 exclude = ANT_EXCLUDES,
617 exclude_directories = 1,
618 ),
619)
620
621filegroup(
622 name = "checkapi_files",
623 srcs = glob(
624 [
625 "**/*.java",
626 "**/gwt*userApi.conf",
627 ],
628 exclude = ANT_EXCLUDES,
629 exclude_directories = 1,
630 ),
631)
632
633filegroup(
634 name = "ant_files",
635 srcs = glob(
636 [
637 "build.xml",
638 "javadoc/**/*",
639 "src/**/*",
640 "style/**/*",
641 "super/**/*",
642 "test/**/*",
643 "test_i18n_bar/**/*",
644 "test-super/**/*",
645 ],
646 exclude = ANT_EXCLUDES,
647 ),
648)
Daniel Kurka5e5d2632015-08-26 19:40:57 +0200649
650filegroup(
Goktug Gokdoganf1381ca2016-03-04 00:58:51 -0800651 name = "java_emul",
652 srcs = glob(["super/com/google/gwt/emul/java/**/*.java"]),
Daniel Kurka5e5d2632015-08-26 19:40:57 +0200653 visibility = ["//third_party/java_src/j2cl:__subpackages__"],
654)
Daniel Kurkaa0a50792015-09-23 20:05:06 +0200655
656filegroup(
Goktug Gokdoganf1381ca2016-03-04 00:58:51 -0800657 name = "java_emul_internal",
658 srcs = glob(["super/com/google/gwt/emul/javaemul/**/*.java"]),
659 visibility = ["//third_party/java_src/j2cl:__subpackages__"],
660)
661
662filegroup(
663 name = "java_emul_test",
Daniel Kurkaa0a50792015-09-23 20:05:06 +0200664 srcs = glob(
665 [
666 "test/com/google/gwt/emultest/**/*.java",
667 "test/com/google/gwt/testing/TestUtils.java",
668 "test/org/apache/commons/**/*.java",
669 ],
Goktug Gokdoganf1381ca2016-03-04 00:58:51 -0800670 exclude = [
671 "test/**/java8/**",
672 "test/**/*Java8Suite.java",
Goktug Gokdoganf1381ca2016-03-04 00:58:51 -0800673 ],
Daniel Kurkaa0a50792015-09-23 20:05:06 +0200674 ),
675 visibility = ["//third_party/java_src/j2cl:__subpackages__"],
676)
Daniel Kurka186c2fd2016-06-07 12:40:06 +0200677
678filegroup(
679 name = "java8_emul_test",
680 srcs = [
681 "test/com/google/gwt/emultest/EmulJava8Suite.java",
682 "test/com/google/gwt/testing/TestUtils.java",
683 ] + glob(
684 [
685 "test/com/google/gwt/emultest/java8/**/*.java",
686 "test/org/apache/commons/**/*.java",
687 ],
688 ),
689 visibility = ["//third_party/java_src/j2cl:__subpackages__"],
690)