| # 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_src/gwt:__pkg__", |
| "//third_party/java_src/gwt/legacy:__pkg__", |
| ], |
| ) |
| |
| 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/asm/Opcodes.java", |
| "core/src/com/google/gwt/dev/asm/Type.java", |
| "core/src/com/google/gwt/dev/asm/commons/Method.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/asm/**/*.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.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-classes.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, |
| ) |
| |
| # All the dev classes before jarjaring. |
| # This should only be used in code that will itself be jarjar-ed |
| # or in internal tests. |
| # (Exposed because it helps other targets build faster than |
| # if they waited for gwt-dev to be jarjar-ed.) |
| # TODO: split up. |
| java_library( |
| name = "gwt-dev-classes", |
| srcs = glob( |
| ["core/src/**/*.java"], |
| exclude = ["**/package-info.java"], |
| ), |
| # Temporary workaround to ensure Java 6 compatible class files after Java |
| # 7 upgrade. |
| # TODO: only the requestfactory client should be required to be Android |
| # compatible. |
| constraints = ["android"], |
| deps = [ |
| ":compiler.standalone.super", |
| "//third_party/java_src/gwt/svn/tools:dev_deps", |
| ], |
| ) |
| |
| # 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", |
| ], |
| 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/GwtVersion.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/asm/**/*.java", |
| "core/src/com/google/gwt/dev/cfg/**/*.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/**", |
| ], |
| ), |
| javacopts = [ |
| "-encoding utf8", |
| "-source 5", |
| "-target 5", |
| ], |
| 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", |
| ], |
| ), |
| constraints = ["android"], |
| javacopts = [ |
| "-encoding utf8", |
| "-source 5", |
| "-target 5", |
| ], |
| ) |
| |
| # 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 = "interop-annotations", |
| srcs = [ |
| "core/super/com/google/gwt/core/client/GwtScriptOnly.java", |
| "core/super/com/google/gwt/core/client/UnsafeNativeLong.java", |
| ], |
| constraints = [ |
| "android", |
| "gwt", |
| "public", |
| ], |
| gwtxml = ":interop-annotations-gwtxml", |
| javacopts = [ |
| "-encoding utf8", |
| "-source 5", |
| "-target 5", |
| ], |
| ) |
| |
| # (This is a genrule so that it won't be mirrored to svn and git.) |
| genrule( |
| name = "interop-annotations-gwtxml", |
| outs = ["Gwt-dev-interop-annotations.gwt.xml"], |
| cmd = "$(ECHO) '<module><source path=\"client\" /></module>' > $(@)", |
| ) |
| |
| # All test code in dev. |
| # TODO: split up. |
| AugmentedJar( |
| name = "dev-test-code", |
| srcs = glob([ |
| "core/test/**/*.java", |
| ]), |
| added_jars = [ |
| # for soycTest |
| "//third_party/java_src/gwt/svn/trunk/samples:hello-src.jar", |
| ], |
| added_roots = [ |
| "core/test", |
| ], |
| build_deps = [ |
| ":gwt-dev-classes", |
| ":compiler.standalone.super", |
| "//third_party/java_src/gwt/svn/tools:dev_deps", # for pre-jarjar imports |
| ], |
| constraints = [], |
| dojarjar = 1, |
| export_deps = [ |
| ":dev", # for the post-jarjar names |
| ], |
| deps = [ |
| "//third_party/java/junit", |
| ], |
| ) |
| |
| # 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", |
| ], |
| ) |
| |
| GwtTestSuites( |
| name = "tests", |
| jvm_flags = ["-ea"], |
| srcjars = [":dev-test-code"], |
| tests = GWT_DEV_TESTS, |
| ) |