|  | # Copyright 2012 Google Inc. | 
|  | # | 
|  | # Licensed under the Apache License, Version 2.0 (the "License"); you may not | 
|  | # use this file except in compliance with the License. You may obtain a copy of | 
|  | # the License at | 
|  | # | 
|  | # http://www.apache.org/licenses/LICENSE-2.0 | 
|  | # | 
|  | # Unless required by applicable law or agreed to in writing, software | 
|  | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT | 
|  | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the | 
|  | # License for the specific language governing permissions and limitations under | 
|  | # the License. | 
|  |  | 
|  | # Description: | 
|  | #   The GWT compiler and dev mode. | 
|  |  | 
|  | # Google owns the copyright | 
|  | licenses(["unencumbered"]) | 
|  |  | 
|  | package( | 
|  | default_visibility = [ | 
|  | "//third_party/java/gwt:__subpackages__", | 
|  | "//third_party/java_src/gwt:__subpackages__", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | subinclude("//third_party/java_src/gwt:build-macros") | 
|  |  | 
|  | # This target logically corresponds to gwt-dev.jar but doesn't | 
|  | # actually create it, for faster builds after a compiler change. | 
|  | java_import( | 
|  | name = "dev", | 
|  | jars = [ | 
|  | ":gwt-dev-deps.jar", | 
|  | ":gwt-dev-only.jar", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | # Files needed by the ant tests | 
|  | filegroup( | 
|  | name = "ant", | 
|  | srcs = glob( | 
|  | [ | 
|  | "build.xml", | 
|  | "core/src/**/*", | 
|  | "core/super/**/*", | 
|  | "core/test/**/*", | 
|  | ], | 
|  | exclude = [ | 
|  | "**/*~", | 
|  | "**/#*", | 
|  | ], | 
|  | ), | 
|  | ) | 
|  |  | 
|  | # Classes needed by the requestfactory annotation processor | 
|  | java_library( | 
|  | name = "requestfactory-apt-deps", | 
|  | srcs = [ | 
|  | "core/src/com/google/gwt/core/ext/typeinfo/JniConstants.java", | 
|  | "core/src/com/google/gwt/dev/util/Name.java", | 
|  | "core/src/com/google/gwt/dev/util/StringKey.java", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | # Dependencies of gwt-servlet.jar. (Included in server run-time classpaths.) | 
|  | java_library( | 
|  | name = "servlet-deps", | 
|  | srcs = glob( | 
|  | [ | 
|  | "core/src/com/google/gwt/**/shared/**/*.java", | 
|  | "core/src/com/google/gwt/dev/util/Name.java", | 
|  | "core/src/com/google/gwt/dev/util/StringKey.java", | 
|  | "core/src/com/google/gwt/util/tools/Utility.java", | 
|  | "core/src/com/google/gwt/util/tools/shared/**/*.java", | 
|  | ], | 
|  | exclude = [ | 
|  | "**/junit/**", | 
|  | "**/super/**", | 
|  | "**/package-info.java", | 
|  | ], | 
|  | ), | 
|  | deps = [ | 
|  | # GWTBridge & UnsafeNativeLong | 
|  | ":compiler.standalone.super", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | # Builds gwt-dev-deps.jar, which contains third-party deps for gwt-dev.jar. | 
|  | # (This is a separate jar for better build caching.) | 
|  | AugmentedJar( | 
|  | name = "gwt-dev-deps", | 
|  | srcs = [], | 
|  | added_jars = [ | 
|  | "//third_party/java_src/gwt/legacy:libdev-bare.jar", | 
|  | "//third_party/java_src/gwt/legacy:dev-resources.jar", | 
|  | "//third_party/java_src/gwt/svn/tools:dev_jars", | 
|  | "//third_party/java_src/gwt/svn/tools:legacy_dev_jars", | 
|  | ], | 
|  | constraints = [], | 
|  | dojarjar = 1, | 
|  | wrap_javalibrary = 0, | 
|  | ) | 
|  |  | 
|  | # Builds gwt-dev-only.jar, which contains the GWT compiler and tools. | 
|  | # Relies on gwt-dev-deps.jar being in the classpath. | 
|  | AugmentedJar( | 
|  | name = "gwt-dev-only", | 
|  | srcs = [], | 
|  | added_jars = [ | 
|  | ":libgwt-dev-bare.jar", | 
|  | ":gwt-dev-resources.jar", | 
|  | ":libcompiler.standalone.jar", | 
|  | ":libcompiler.standalone.super.jar", | 
|  | ":super-resources.jar", | 
|  | ], | 
|  | constraints = [], | 
|  | dojarjar = 1, | 
|  | resources = ["//tools/gwt:gwt_google_defaults"], | 
|  | wrap_javalibrary = 0, | 
|  | ) | 
|  |  | 
|  | # The gwt-dev classes for GWT internal use only. | 
|  | # They must be jarjar-ed and dependencies stripped before exposing to google3. | 
|  | java_library( | 
|  | name = "gwt-dev-bare", | 
|  | srcs = glob( | 
|  | ["core/src/**/*.java"], | 
|  | exclude = ["**/package-info.java"], | 
|  | ), | 
|  | deps = [ | 
|  | ":compiler.standalone.super", | 
|  | "//third_party/java_src/gwt/svn/tools:dev_deps", | 
|  | "//third_party/java_src/gwt/svn/tools:servlet_api_3", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | # Resource files in core/src. | 
|  | # (Includes .java files.) | 
|  | Zip( | 
|  | name = "gwt-dev-resources.jar", | 
|  | srcs = glob( | 
|  | [ | 
|  | "core/src/**/*.java", | 
|  | "core/src/**/*.html", | 
|  | "core/src/**/*.css", | 
|  | "core/src/**/*.js", | 
|  | "core/src/**/*.png", | 
|  | "core/src/**/*.gif", | 
|  | "core/src/**/*.keystore", | 
|  | "core/src/**/*.proto", | 
|  | "core/src/**/*.properties", | 
|  | "core/src/**/*.xsd", | 
|  | "core/src/**/*.txt", | 
|  | "core/src/com/google/gwt/dev/js/globals/globals.html",  # for testing | 
|  | ], | 
|  | exclude = [ | 
|  | "**/package-info.java", | 
|  | "README.txt", | 
|  | ], | 
|  | ), | 
|  | root = "core/src", | 
|  | ) | 
|  |  | 
|  | java_library( | 
|  | name = "compiler.standalone", | 
|  | srcs = glob( | 
|  | [ | 
|  | "core/src/com/google/gwt/core/ext/**/*.java", | 
|  | "core/src/com/google/gwt/core/linker/**/*.java", | 
|  | "core/src/com/google/gwt/dev/About.java", | 
|  | "core/src/com/google/gwt/dev/CompilerContext.java", | 
|  | "core/src/com/google/gwt/dev/CompileTaskOptions.java", | 
|  | "core/src/com/google/gwt/dev/CompileTaskOptionsImpl.java", | 
|  | "core/src/com/google/gwt/dev/PropertyAndBindingInfo.java", | 
|  | "core/src/com/google/gwt/dev/GwtVersion.java", | 
|  | "core/src/com/google/gwt/dev/MinimalRebuildCache.java", | 
|  | "core/src/com/google/gwt/dev/NullRebuildCache.java", | 
|  | "core/src/com/google/gwt/dev/Permutation.java", | 
|  | "core/src/com/google/gwt/dev/PrecompileTaskOptions.java", | 
|  | "core/src/com/google/gwt/dev/PrecompileTaskOptionsImpl.java", | 
|  | "core/src/com/google/gwt/dev/PrecompilationResult.java", | 
|  | "core/src/com/google/gwt/dev/StringAnalyzableTypeEnvironment.java", | 
|  | "core/src/com/google/gwt/dev/cfg/**/*.java", | 
|  | "core/src/com/google/gwt/dev/common/**/*.java", | 
|  | "core/src/com/google/gwt/dev/javac/**/*.java", | 
|  | "core/src/com/google/gwt/dev/jdt/**/*.java", | 
|  | "core/src/com/google/gwt/dev/jjs/**/*.java", | 
|  | "core/src/com/google/gwt/dev/js/**/*.java", | 
|  | "core/src/com/google/gwt/dev/json/*.java", | 
|  | "core/src/com/google/gwt/dev/resource/**/*.java", | 
|  | "core/src/com/google/gwt/dev/util/**/*.java", | 
|  | "core/src/com/google/gwt/dev/shell/DevModeSession.java", | 
|  | "core/src/com/google/gwt/soyc/**/*.java", | 
|  | "core/src/com/google/gwt/util/**/*.java", | 
|  | "core/src/org/eclipse/jdt/**/*.java", | 
|  | ], | 
|  | exclude = [ | 
|  | "**/testing/**", | 
|  | ], | 
|  | ), | 
|  | deps = [ | 
|  | ":compiler.standalone.super", | 
|  | "//third_party/java_src/gwt/svn/tools:compiler_deps", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | # This is a bootstrap library; it will later be stripped out of the classpath | 
|  | # chain, since the "real" versions are super-source not class files. | 
|  | # TODO(scottb): this thing may be completely obsolete. | 
|  | java_library( | 
|  | name = "compiler.standalone.super", | 
|  | srcs = glob( | 
|  | ["core/super/**/*.java"], | 
|  | exclude = [ | 
|  | "core/super/com/google/gwt/dev/jjs/intrinsic/**", | 
|  | "**/package-info.java", | 
|  | "**/EmulatedCharset.java", | 
|  | ], | 
|  | ), | 
|  | compatible_with = ["//buildenv/target:android"], | 
|  | constraints = ["android"], | 
|  | ) | 
|  |  | 
|  | # Resource files in core/super (including Java source) | 
|  | Zip( | 
|  | name = "super-resources.jar", | 
|  | srcs = glob( | 
|  | [ | 
|  | "core/super/**/*.java", | 
|  | "core/super/**/*.xml", | 
|  | ], | 
|  | exclude = ["**/package-info.java"], | 
|  | ), | 
|  | root = "core/super", | 
|  | ) | 
|  |  | 
|  | # A minimal library for annotations not likely to otherwise need gwt-user.jar | 
|  | # (so i18n annotations are out, they'd need i18n classes and interfaces, but | 
|  | # @GwtScriptOnly is in).  The test is that this target is for POJO Java work | 
|  | # that happens to want a bit of annotations to hint GWT what to do. | 
|  | # | 
|  | # CAUTION: Most internal Google code ends up depending on this, via | 
|  | #  //j/c/g/common/collect:collect-gwt.  You really don't want it to be big! | 
|  | java_library( | 
|  | name = "gwt-dev-interop-annotations", | 
|  | srcs = [ | 
|  | "core/super/com/google/gwt/core/client/GwtScriptOnly.java", | 
|  | "core/super/com/google/gwt/core/client/UnsafeNativeLong.java", | 
|  | ], | 
|  | compatible_with = ["//buildenv/target:android"], | 
|  | constraints = [ | 
|  | "android", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | # A minimal library for a subset of the internal annotations for the | 
|  | # GWT compiler. | 
|  | java_library( | 
|  | name = "gwt-dev-internal-annotations", | 
|  | srcs = [ | 
|  | "core/super/javaemul/internal/annotations/CompilerHint.java", | 
|  | "core/super/javaemul/internal/annotations/DoNotInline.java", | 
|  | ], | 
|  | compatible_with = ["//buildenv/target:android"], | 
|  | constraints = [ | 
|  | "android", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | # All test code in dev. | 
|  | # TODO: split up. | 
|  | AugmentedJar( | 
|  | name = "dev-test-code", | 
|  | testonly = 1, | 
|  | srcs = [], | 
|  | added_jars = [ | 
|  | ":libdev-test-code-bare.jar", | 
|  | # for soycTest | 
|  | "//third_party/java_src/gwt/svn/trunk/samples:hello-src.jar", | 
|  | ], | 
|  | added_roots = [ | 
|  | "core/test", | 
|  | ], | 
|  | constraints = [], | 
|  | dojarjar = 1, | 
|  | export_deps = [ | 
|  | ":dev",  # for the post-jarjar names | 
|  | "//third_party/java/junit", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | # The gwt-dev tests for GWT internal use only. | 
|  | # They must be jarjar-ed and dependencies stripped before exposing to google3. | 
|  | # TODO(skybrian): we should have a separate jar for test infrastructure and | 
|  | # and remove dependencies on this library in gwt-user and google3. | 
|  | java_library( | 
|  | name = "dev-test-code-bare", | 
|  | testonly = 1, | 
|  | srcs = glob([ | 
|  | "core/test/**/*.java", | 
|  | ]), | 
|  | deps = [ | 
|  | ":compiler.standalone.super", | 
|  | ":gwt-dev-bare", | 
|  | "//third_party/java/junit", | 
|  | "//third_party/java_src/gwt/svn/tools:dev_deps", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | # The "dev" directory is tested by loose tests.  Some of them fail because of | 
|  | # classpath expectations that are invalid in Google's distributed build | 
|  | # environment. | 
|  | GWT_DEV_TESTS = glob( | 
|  | [ | 
|  | "core/test/**/*Test.java", | 
|  | ], | 
|  | # TODO(fabbott): These fail due to classpath differences, | 
|  | #    because the distributed build's classpath is jar'ed not loose | 
|  | exclude = [ | 
|  | "core/test/**/ClassPathEntryTest.java", | 
|  | "core/test/**/ResourceOracleImplTest.java", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | test_suite( | 
|  | name = "alltests", | 
|  | tests = [ | 
|  | ":tests", | 
|  | "//third_party/java_src/gwt/svn/trunk/dev/codeserver:tests", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | GwtTestSuites( | 
|  | name = "tests", | 
|  | jvm_flags = ["-ea"], | 
|  | sharding = {"dev.CompilerTest": 12}, | 
|  | tests = GWT_DEV_TESTS, | 
|  | deps = [":dev-test-code"], | 
|  | ) | 
|  |  | 
|  | filegroup( | 
|  | name = "emul", | 
|  | srcs = glob([ | 
|  | "core/super/javaemul/**/*.java", | 
|  | ]), | 
|  | visibility = ["//third_party/java_src/j2cl:__subpackages__"], | 
|  | ) |