Merge BUILD files from google/pu.
Change-Id: I1d8cbabdd5625dafe3a4e17ff87127065af29086
diff --git a/build_tools/BUILD b/build_tools/BUILD
new file mode 100644
index 0000000..feb182d
--- /dev/null
+++ b/build_tools/BUILD
@@ -0,0 +1,33 @@
+# 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:
+#
+# Tools used by the ant build.
+
+# Google owns the copyright
+licenses(["unencumbered"])
+
+package(
+ default_visibility = ["//third_party/java_src/gwt:__pkg__"],
+)
+
+filegroup(
+ name = "ant",
+ srcs = glob([
+ "build.xml",
+ "ant_gwt/**/*",
+ "doctool/**/*",
+ ]),
+)
diff --git a/dev/BUILD b/dev/BUILD
new file mode 100644
index 0000000..0ca17f3
--- /dev/null
+++ b/dev/BUILD
@@ -0,0 +1,320 @@
+# 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"],
+ ),
+ 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",
+ ],
+ exclude = ["**/package-info.java"],
+ ),
+ 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/GwtVersion.java",
+ "core/src/com/google/gwt/dev/Permutation.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",
+ ],
+ ),
+ 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></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,
+)
diff --git a/dev/codeserver/BUILD b/dev/codeserver/BUILD
new file mode 100644
index 0000000..4bd0713
--- /dev/null
+++ b/dev/codeserver/BUILD
@@ -0,0 +1,61 @@
+# 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:
+# Open Source Code for Super Dev Mode.
+# http://go/superdevmode
+# (Within Google, depend on //java/com/google/gwt/dev/codeserver.)
+
+# released under various licenses, but Google owns the copyright
+licenses(["unencumbered"])
+
+package_group(
+ name = "friends",
+ packages = [
+ "//java/com/google/gwt/dev/codeserver",
+ ],
+)
+
+package(
+ default_visibility = [
+ ":friends",
+ ],
+)
+
+java_library(
+ name = "codeserver",
+ srcs = glob(["java/**/*.java"]),
+ resources = glob([
+ "java/**/*.html",
+ "java/**/*.ico",
+ "java/**/*.js",
+ ]),
+ deps = [
+ # approved dependencies (for open source code)
+ "//third_party/java_src/gwt:gwt-dev",
+ # no other dependencies allowed
+ ],
+)
+
+# allow the top-level ant build to call us
+filegroup(
+ name = "ant",
+ srcs = glob([
+ "java/**/*.java",
+ "java/**/*.html",
+ "java/**/*.ico",
+ "java/**/*.js",
+ ]) + ["build.xml"],
+ visibility = ["//third_party/java_src/gwt:__pkg__"],
+)
diff --git a/doc/BUILD b/doc/BUILD
new file mode 100644
index 0000000..2a7537f
--- /dev/null
+++ b/doc/BUILD
@@ -0,0 +1,32 @@
+# 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:
+# Contains static files used in javadoc.
+
+# Google owns the copyright
+licenses(["unencumbered"])
+
+package(
+ default_visibility = ["//third_party/java_src/gwt:__pkg__"],
+)
+
+filegroup(
+ name = "ant",
+ srcs = glob([
+ "*.xml",
+ "src/*",
+ "**/package-list",
+ ]),
+)
diff --git a/eclipse/BUILD b/eclipse/BUILD
new file mode 100644
index 0000000..00c4bc9
--- /dev/null
+++ b/eclipse/BUILD
@@ -0,0 +1,28 @@
+# 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:
+# Contains checked-in Eclipse projects and defines the GWT code style rules.
+
+# Google owns the copyright
+licenses(["unencumbered"])
+
+package(
+ default_visibility = ["//third_party/java_src/gwt:__pkg__"],
+)
+
+filegroup(
+ name = "ant",
+ srcs = glob(["settings/code-style/*.xml"]),
+)
diff --git a/elemental/BUILD b/elemental/BUILD
new file mode 100644
index 0000000..43b2b3a
--- /dev/null
+++ b/elemental/BUILD
@@ -0,0 +1,81 @@
+# 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:
+# Elemental bindings for GWT # released under various licenses, derived from Dart project
+licenses(["notice"]) # BSD (with Chrome/WebKit IDL files under LGPL)
+
+package(default_visibility = [
+ "//visibility:public",
+])
+
+ELEMENTAL_EXTRA_XML = """
+ <inherits name='com.google.gwt.resources.Resources' />
+ <set-configuration-property name='user.agent.runtimeWarning' value='false' />
+ <set-property name='user.agent' value='safari' />
+ <source path='client' />
+ <source path='js' />
+ <source path='canvas'/>
+ <source path='css'/>
+ <source path='dom'/>
+ <source path='events'/>
+ <source path='html'/>
+ <source path='json'/>
+ <source path='ranges'/>
+ <source path='stylesheets'/>
+ <source path='svg'/>
+ <source path='traversal'/>
+ <source path='xpath'/>
+ <source path='xml'/>
+ <source path='util'/>
+ <super-source path='super'/>
+"""
+
+genrule(
+ name = "elemental_extra_xml",
+ outs = ["ElementalExtra.gwt.xml"],
+ cmd = "echo \"" + ELEMENTAL_EXTRA_XML + "\" > $@",
+)
+
+gwt_module(
+ name = "elemental",
+ srcs = [":buildsrcjar"] + glob(
+ ["src/**/*.java"],
+ exclude = ["**/super/**"],
+ ),
+ base_inherits = ["com.google.gwt.core.Core"],
+ extra_module_contents = [":ElementalExtra.gwt.xml"],
+ resources = [
+ "src/elemental/super/elemental/json/Json.java",
+ "src/elemental/super/elemental/json/impl/JreJsonValue.java",
+ ],
+ deps = ["//third_party/java/gwt"],
+)
+
+genrule(
+ name = "buildsrcjar",
+ srcs = glob(["idl/**/*"]),
+ outs = ["elementaldom.srcjar"],
+ cmd = " && ".join([
+ "mkdir -p $@.tmp",
+ "export CC=$(CC)",
+ "export JAR=$(JAR)",
+ "idl/buildsrcjar $@.tmp $@",
+ ]),
+ tools = [
+ "//third_party/crosstool",
+ "//tools/defaults:jdk",
+ "//tools/defaults:python_runtime",
+ ],
+)
diff --git a/jni/BUILD b/jni/BUILD
new file mode 100644
index 0000000..fcad202
--- /dev/null
+++ b/jni/BUILD
@@ -0,0 +1,32 @@
+# 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:
+#
+# Not sure what this does.
+
+# Google owns the copyright
+licenses(["unencumbered"])
+
+package(
+ default_visibility = ["//third_party/java_src/gwt:__pkg__"],
+)
+
+filegroup(
+ name = "ant",
+ srcs = glob([
+ "**/*.xml",
+ "windows/prebuilt/*.dll",
+ ]),
+)
diff --git a/maven/BUILD b/maven/BUILD
new file mode 100644
index 0000000..a16536e
--- /dev/null
+++ b/maven/BUILD
@@ -0,0 +1,21 @@
+# 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:
+# Contains code to push a GWT release to Maven.
+#
+# (This is just a dummy BUILD file so that build rules won't see it.)
+
+# Google owns the copyright
+licenses(["unencumbered"])
diff --git a/reference/BUILD b/reference/BUILD
new file mode 100644
index 0000000..58d3816
--- /dev/null
+++ b/reference/BUILD
@@ -0,0 +1,20 @@
+# 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:
+#
+# Unused code kept around for reference.
+
+# Google owns the copyright
+licenses(["unencumbered"])
diff --git a/samples/BUILD b/samples/BUILD
new file mode 100644
index 0000000..d39d623
--- /dev/null
+++ b/samples/BUILD
@@ -0,0 +1,93 @@
+# 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:
+# Sample apps for GWT. (Mirrored to svn.)
+
+# Google owns the copyright
+licenses(["unencumbered"])
+
+package(
+ default_visibility = ["//third_party/java_src/gwt:__pkg__"],
+)
+
+subinclude("//third_party/java_src/gwt:build-macros")
+
+package_group(
+ name = "showcase_friends",
+ packages = ["//javatests/com/google/gwt/tourguide/..."],
+)
+
+# Files in this directory for running ant
+# Note: ant_test.sh replaces this build.xml file with its own stub.
+filegroup(
+ name = "ant",
+ srcs = ["build.xml"],
+)
+
+Zip(
+ name = "hello-src.jar",
+ srcs = glob([
+ "hello/src/**/*.java",
+ "hello/src/**/*.xml",
+ ]),
+ root = "hello/src",
+ visibility = ["//third_party/java_src/gwt/svn/trunk/dev:__pkg__"],
+)
+
+# Allow friends to import the showcase app as a GWT module
+gwt_module(
+ name = "showcase_module",
+ extra_inherits = ["com.google.gwt.sample.showcase.Showcase"],
+ rename_to = "showcase",
+ visibility = [":showcase_friends"],
+ deps = [":showcase_lib"],
+)
+
+gwt_application(
+ name = "showcase_app",
+ module_target = ":showcase_module",
+)
+
+java_library(
+ name = "showcase_lib",
+ srcs = [":showcase.jar"],
+)
+
+AugmentedJar(
+ name = "showcase",
+ srcs = glob(
+ ["showcase/src/**/*.java"],
+ exclude_directories = 1,
+ ),
+ added_roots = ["showcase/src"],
+ deps = [
+ "//third_party/java_src/gwt",
+ "//third_party/java_src/gwt:gwt-dev",
+ ],
+)
+
+# Provides the contents of the showcase war directory as a handy zip file
+# (Doesn't include appengine-web.xml so you can replace it.)
+Zip(
+ name = "showcase-wardir.zip",
+ srcs = glob(
+ ["showcase/war/**"],
+ exclude = glob(["showcase/war/**/*~"]) + [
+ "showcase/war/WEB-INF/appengine-web.xml",
+ ],
+ ),
+ root = "showcase/war",
+ visibility = [":showcase_friends"],
+)