| package(default_visibility = ["//visibility:public"]) | 
 |  | 
 | filegroup( | 
 |     name = "srcs", | 
 |     srcs = glob(["**"]) + [ | 
 |         "//third_party/css/bootstrap:srcs", | 
 |         "//third_party/css/font_awesome:srcs", | 
 |         "//third_party/ijar:srcs", | 
 |         "//third_party/iossim:srcs", | 
 |         "//third_party/grpc:srcs", | 
 |         "//third_party/java/android_databinding:srcs", | 
 |         "//third_party/java/apkbuilder:srcs", | 
 |         "//third_party/java/apksig:srcs", | 
 |         "//third_party/java/buck-ios-support:srcs", | 
 |         "//third_party/java/dd_plist:srcs", | 
 |         "//third_party/java/j2objc:srcs", | 
 |         "//third_party/java/jarjar:srcs", | 
 |         "//third_party/java/jdk/langtools:srcs", | 
 |         "//third_party/java/jdk/javabuilder:srcs", | 
 |         "//third_party/javascript/bootstrap:srcs", | 
 |         "//third_party/checker_framework_dataflow:srcs", | 
 |         "//third_party/checker_framework_javacutil:srcs", | 
 |         "//third_party/jformatstring:srcs", | 
 |         "//third_party/protobuf:srcs", | 
 |         "//third_party/py/concurrent:srcs", | 
 |         "//third_party/py/gflags:srcs", | 
 |         "//third_party/py/mock:srcs", | 
 |         "//third_party/py/six:srcs", | 
 |         "//third_party/zlib:srcs", | 
 |         "//third_party/nanopb:srcs", | 
 |     ], | 
 | ) | 
 |  | 
 | # Filegroup to ship the sources to the Bazel embededded tools | 
 | # This filegroup should contains all GPL with classpath exception | 
 | # and LGPL code that we use in Bazel. | 
 | filegroup( | 
 |     name = "gpl-srcs", | 
 |     srcs = [ | 
 |         "//third_party/checker_framework_dataflow:srcs", | 
 |         "//third_party/checker_framework_javacutil:srcs", | 
 |         "//third_party/jformatstring:srcs", | 
 |     ], | 
 | ) | 
 |  | 
 | filegroup( | 
 |     name = "d3-js", | 
 |     srcs = glob(["javascript/d3/**/*.js"]), | 
 | ) | 
 |  | 
 | filegroup( | 
 |     name = "jquery", | 
 |     srcs = glob(["javascript/jquery/**/*.jslib"]), | 
 | ) | 
 |  | 
 | java_import( | 
 |     name = "aether", | 
 |     jars = [ | 
 |         "aether/aether-api-1.0.0.v20140518.jar", | 
 |         "aether/aether-spi-1.0.0.v20140518.jar", | 
 |         "aether/aether-transport-http-1.0.0.v20140518.jar", | 
 |         "aether/aether-connector-basic-1.0.0.v20140518.jar", | 
 |         "aether/aether-transport-classpath-1.0.0.v20140518.jar", | 
 |         "aether/aether-transport-wagon-1.0.0.v20140518.jar", | 
 |         "aether/aether-impl-1.0.0.v20140518.jar", | 
 |         "aether/aether-transport-file-1.0.0.v20140518.jar", | 
 |         "aether/aether-util-1.0.0.v20140518.jar", | 
 |     ], | 
 | ) | 
 |  | 
 | java_import( | 
 |     name = "android_common_25_0_0", | 
 |     jars = [ | 
 |         "android_common/com.android_annotations_25.0.0.jar", | 
 |         "android_common/com.android.tools.build_builder_2.0.0.jar", | 
 |         "android_common/com.android.tools.build_builder-model_2.0.0.jar", | 
 |         "android_common/com.android.tools.build_builder-test-api_2.0.0.jar", | 
 |         "android_common/com.android.tools.build_manifest-merger_25.0.0.jar", | 
 |         "android_common/com.android.tools_common_25.0.0.jar", | 
 |         "android_common/com.android.tools_ddmlib_25.0.0.jar", | 
 |         "android_common/com.android.tools_dvlib_25.0.0.jar", | 
 |         "android_common/com.android.tools_repository_25.0.0.jar", | 
 |         "android_common/com.android.tools_sdk-common_25.0.0.jar", | 
 |         "android_common/com.android.tools_sdklib_25.0.0.jar", | 
 |         "android_common/com.android.tools.layoutlib_layoutlib_25.0.0.jar", | 
 |     ], | 
 | ) | 
 |  | 
 | java_import( | 
 |     name = "apache_commons_codec", | 
 |     jars = ["apache_commons_codec/commons-codec-1.9.jar"], | 
 | ) | 
 |  | 
 | java_import( | 
 |     name = "apache_commons_collections", | 
 |     jars = ["apache_commons_collections/commons-collections-3.2.2.jar"], | 
 | ) | 
 |  | 
 | java_import( | 
 |     name = "apache_commons_lang", | 
 |     jars = ["apache_commons_lang/commons-lang-2.6.jar"], | 
 | ) | 
 |  | 
 | java_import( | 
 |     name = "apache_commons_compress", | 
 |     jars = ["apache_commons_compress/apache-commons-compress-1.9.jar"], | 
 | ) | 
 |  | 
 | java_import( | 
 |     name = "apache_commons_logging", | 
 |     jars = ["apache_commons_logging/commons-logging-1.1.1.jar"], | 
 | ) | 
 |  | 
 | java_import( | 
 |     name = "apache_commons_pool2", | 
 |     jars = ["apache_commons_pool2/commons-pool2-2.3.jar"], | 
 | ) | 
 |  | 
 | java_import( | 
 |     name = "apache_httpclient", | 
 |     jars = ["apache_httpclient/httpclient-4.2.5.jar"], | 
 | ) | 
 |  | 
 | java_import( | 
 |     name = "apache_httpcore", | 
 |     jars = ["apache_httpcore/httpcore-4.2.4.jar"], | 
 | ) | 
 |  | 
 | java_import( | 
 |     name = "apache_velocity", | 
 |     jars = ["apache_velocity/velocity-1.7.jar"], | 
 |     deps = [ | 
 |         ":apache_commons_collections", | 
 |         ":apache_commons_lang", | 
 |     ], | 
 | ) | 
 |  | 
 | java_import( | 
 |     name = "asm", | 
 |     jars = ["asm/asm-5.0.4.jar"], | 
 | ) | 
 |  | 
 | java_import( | 
 |     name = "asm-commons", | 
 |     jars = ["asm/asm-commons-5.0.4.jar"], | 
 | ) | 
 |  | 
 | java_import( | 
 |     name = "asm-util", | 
 |     jars = ["asm/asm-util-5.0.4.jar"], | 
 | ) | 
 |  | 
 | java_plugin( | 
 |     name = "auto_annotation_plugin", | 
 |     processor_class = "com.google.auto.value.processor.AutoAnnotationProcessor", | 
 |     deps = [ | 
 |         ":apache_commons_collections", | 
 |         ":apache_velocity", | 
 |         ":asm", | 
 |         ":auto_common", | 
 |         ":auto_service", | 
 |         ":auto_value_value", | 
 |         ":guava", | 
 |         ":jsr305", | 
 |         ":tomcat_annotations_api", | 
 |     ], | 
 | ) | 
 |  | 
 | java_import( | 
 |     name = "auto_common", | 
 |     jars = ["auto/auto-common-0.3.jar"], | 
 | ) | 
 |  | 
 | java_import( | 
 |     name = "auto_service", | 
 |     jars = ["auto/auto-service-1.0-rc2.jar"], | 
 | ) | 
 |  | 
 | java_plugin( | 
 |     name = "auto_service_plugin", | 
 |     processor_class = "com.google.auto.service.processor.AutoServiceProcessor", | 
 |     deps = [ | 
 |         ":auto_common", | 
 |         ":auto_service", | 
 |         ":guava", | 
 |     ], | 
 | ) | 
 |  | 
 | java_plugin( | 
 |     name = "auto_value_plugin", | 
 |     processor_class = "com.google.auto.value.processor.AutoValueProcessor", | 
 |     deps = [ | 
 |         ":apache_commons_collections", | 
 |         ":apache_velocity", | 
 |         ":asm", | 
 |         ":auto_common", | 
 |         ":auto_service", | 
 |         ":auto_value_value", | 
 |         ":guava", | 
 |         ":tomcat_annotations_api", | 
 |     ], | 
 | ) | 
 |  | 
 | java_library( | 
 |     name = "auto_value", | 
 |     exported_plugins = [ | 
 |         ":auto_annotation_plugin", | 
 |         ":auto_value_plugin", | 
 |     ], | 
 |     exports = [ | 
 |         ":auto_value_value", | 
 |         ":tomcat_annotations_api", | 
 |     ], | 
 | ) | 
 |  | 
 | java_import( | 
 |     name = "auto_value_value", | 
 |     jars = ["auto/auto-value-1.2.jar"], | 
 | ) | 
 |  | 
 | # For bootstrapping JavaBuilder | 
 | filegroup( | 
 |     name = "auto_value-jars", | 
 |     srcs = ["auto/auto-value-1.2.jar"], | 
 | ) | 
 |  | 
 | java_library( | 
 |     name = "dagger", | 
 |     exported_plugins = [":dagger_plugin"], | 
 |     exports = [ | 
 |         ":dagger_api", | 
 |         ":jsr330_inject", | 
 |     ], | 
 | ) | 
 |  | 
 | java_plugin( | 
 |     name = "dagger_plugin", | 
 |     processor_class = "dagger.internal.codegen.ComponentProcessor", | 
 |     deps = [ | 
 |         ":dagger_api", | 
 |         ":dagger_compiler", | 
 |         ":dagger_producers", | 
 |         ":guava", | 
 |         ":jsr330_inject", | 
 |     ], | 
 | ) | 
 |  | 
 | java_import( | 
 |     name = "dagger_api", | 
 |     jars = ["dagger/dagger-2.5.jar"], | 
 | ) | 
 |  | 
 | java_import( | 
 |     name = "dagger_compiler", | 
 |     jars = ["dagger/dagger-compiler-2.5.jar"], | 
 | ) | 
 |  | 
 | java_import( | 
 |     name = "dagger_producers", | 
 |     jars = ["dagger/dagger-producers-2.5.jar"], | 
 | ) | 
 |  | 
 | java_import( | 
 |     name = "bytebuddy", | 
 |     jars = ["bytebuddy/byte-buddy-dep-0.7-rc6.jar"], | 
 |     deps = [ | 
 |         ":asm", | 
 |         ":asm-commons", | 
 |         ":asm-util", | 
 |     ], | 
 | ) | 
 |  | 
 | java_import( | 
 |     name = "gson", | 
 |     jars = ["gson/gson-2.2.4.jar"], | 
 | ) | 
 |  | 
 | java_import( | 
 |     name = "hazelcast", | 
 |     jars = [ | 
 |         "hazelcast/hazelcast-3.6.4.jar", | 
 |         "hazelcast/hazelcast-client-3.6.4.jar", | 
 |     ], | 
 | ) | 
 |  | 
 | java_import( | 
 |     name = "error_prone", | 
 |     jars = [ | 
 |         "error_prone/error_prone_core-2.0.13.jar", | 
 |         "error_prone/error_prone_annotations-2.0.13.jar", | 
 |         "error_prone/error_prone_annotation-2.0.13.jar", | 
 |     ], | 
 |     exports = [ | 
 |         ":guava", | 
 |         ":jcip_annotations", | 
 |         ":jsr305", | 
 |         ":pcollections", | 
 |         "//third_party/checker_framework_dataflow", | 
 |         "//third_party/jformatstring", | 
 |     ], | 
 | ) | 
 |  | 
 | java_import( | 
 |     name = "jcip_annotations", | 
 |     jars = [ | 
 |         "jcip_annotations/jcip-annotations-1.0-1.jar", | 
 |     ], | 
 | ) | 
 |  | 
 | java_import( | 
 |     name = "pcollections", | 
 |     jars = [ | 
 |         "pcollections/pcollections-2.1.2.jar", | 
 |     ], | 
 | ) | 
 |  | 
 | filegroup( | 
 |     name = "guava_and_error_prone-jars", | 
 |     srcs = [ | 
 |         "guava/guava-21.0-20161101.jar", | 
 |         "error_prone/error_prone_annotation-2.0.13.jar", | 
 |         "error_prone/error_prone_annotations-2.0.13.jar", | 
 |         # error_prone_core contains a copy of an earlier version of guava, so | 
 |         # it's very important that it occur *after* the guava jar in the | 
 |         # -classpath arg for both 'javac' and 'java'. The latter is especially | 
 |         # important when dealing with pre-built jars that themselves assume | 
 |         # they'll be provided guava classes at runtime via -classpath (e.g. | 
 |         # guava-testlib uses stuff from guava). | 
 |         "error_prone/error_prone_core-2.0.13.jar", | 
 |         "jcip_annotations/jcip-annotations-1.0-1.jar", | 
 |         "jsr305/jsr-305.jar", | 
 |         "pcollections/pcollections-2.1.2.jar", | 
 |         "//third_party/checker_framework_dataflow", | 
 |         "//third_party/jformatstring", | 
 |     ], | 
 | ) | 
 |  | 
 | # For bootstrapping JavaBuilder | 
 | filegroup( | 
 |     name = "bootstrap_guava_and_error_prone-jars", | 
 |     srcs = [ | 
 |         "guava/guava-21.0-20161101.jar", | 
 |         "error_prone/error_prone_annotation-2.0.13.jar", | 
 |         "error_prone/error_prone_annotations-2.0.13.jar", | 
 |         # See the comment about error_prone_core in 'guava_and_error_prone-jars' | 
 |         # above. | 
 |         "error_prone/error_prone_core-2.0.13.jar", | 
 |         "jcip_annotations/jcip-annotations-1.0-1.jar", | 
 |         "jsr305/jsr-305.jar", | 
 |         "pcollections/pcollections-2.1.2.jar", | 
 |         "//third_party/checker_framework_dataflow:bootstrap", | 
 |         "//third_party/jformatstring:bootstrap", | 
 |     ], | 
 | ) | 
 |  | 
 | # As of Guava 20.0, Guava code uses Error Prone annotations. This isn't a | 
 | # problem when compiling with java 8, but is a problem when compiling Bazel | 
 | # with java 7 (the Error Prone jars need to be on the javac classpath). So, | 
 | # until we drop support for compiling Bazel with java 7, we unfortunately need | 
 | # to ensure that the Error Prone jars are always used together with the Guava | 
 | # jars. | 
 | java_import( | 
 |     name = "guava", | 
 |     jars = [":guava_and_error_prone-jars"], | 
 | ) | 
 |  | 
 | # For bootstrapping JavaBuilder | 
 | filegroup( | 
 |     name = "guava-jars", | 
 |     srcs = ["guava/guava-21.0-20161101.jar"], | 
 | ) | 
 |  | 
 | java_import( | 
 |     name = "jgit", | 
 |     jars = ["jgit/org.eclipse.jgit-4.0.1.201506240215-r.jar"], | 
 | ) | 
 |  | 
 | java_import( | 
 |     name = "jimfs", | 
 |     jars = ["jimfs/jimfs-1.1-rc1.jar"], | 
 | ) | 
 |  | 
 | java_import( | 
 |     name = "joda_time", | 
 |     jars = ["joda_time/joda-time-2.3.jar"], | 
 | ) | 
 |  | 
 | java_import( | 
 |     name = "jsch", | 
 |     jars = ["jsch/jsch-0.1.51.jar"], | 
 | ) | 
 |  | 
 | java_import( | 
 |     name = "jsr305", | 
 |     jars = ["jsr305/jsr-305.jar"], | 
 | ) | 
 |  | 
 | # For bootstrapping JavaBuilder | 
 | filegroup( | 
 |     name = "jsr305-jars", | 
 |     srcs = ["jsr305/jsr-305.jar"], | 
 | ) | 
 |  | 
 | java_import( | 
 |     name = "jsr330_inject", | 
 |     jars = ["jsr330_inject/javax.inject.jar"], | 
 | ) | 
 |  | 
 | java_import( | 
 |     name = "maven", | 
 |     jars = glob(["maven/*.jar"]), | 
 | ) | 
 |  | 
 | java_import( | 
 |     name = "maven_model", | 
 |     jars = [ | 
 |         "maven_model/maven-aether-provider-3.2.3.jar", | 
 |         "maven_model/maven-model-3.2.3.jar", | 
 |         "maven_model/maven-model-builder-3.2.3.jar", | 
 |         "maven_model/maven-repository-metadata-3.2.3.jar", | 
 |     ], | 
 | ) | 
 |  | 
 | java_import( | 
 |     name = "netty", | 
 |     jars = ["netty/netty-all-4.1.0.CR6.jar"], | 
 | ) | 
 |  | 
 | java_import( | 
 |     name = "plexus_component_annotations", | 
 |     jars = ["plexus_component_annotations/plexus-component-annotations-1.6.jar"], | 
 | ) | 
 |  | 
 | java_import( | 
 |     name = "plexus_interpolation", | 
 |     jars = ["plexus_interpolation/plexus-interpolation-1.22.jar"], | 
 | ) | 
 |  | 
 | java_import( | 
 |     name = "plexus_utils", | 
 |     jars = ["plexus_utils/plexus-utils-3.0.21.jar"], | 
 | ) | 
 |  | 
 | java_import( | 
 |     name = "slf4j", | 
 |     jars = [ | 
 |         "slf4j/slf4j-api-1.7.7.jar", | 
 |         "slf4j/slf4j-jdk14-1.7.7.jar", | 
 |     ], | 
 | ) | 
 |  | 
 | java_import( | 
 |     name = "tomcat_annotations_api", | 
 |     jars = ["tomcat_annotations_api/tomcat-annotations-api-8.0.5.jar"], | 
 | ) | 
 |  | 
 | # Testing | 
 |  | 
 | java_import( | 
 |     name = "guava-testlib", | 
 |     jars = ["guava/guava-testlib-21.0-20161101.jar"], | 
 | ) | 
 |  | 
 | java_import( | 
 |     name = "junit4", | 
 |     jars = [ | 
 |         "hamcrest/hamcrest-core-1.3.jar", | 
 |         "junit/junit-4.11.jar", | 
 |     ], | 
 | ) | 
 |  | 
 | java_import( | 
 |     name = "mockito", | 
 |     jars = ["mockito/mockito-all-1.10.19.jar"], | 
 | ) | 
 |  | 
 | java_import( | 
 |     name = "truth", | 
 |     jars = ["truth/truth-0.28.jar"], | 
 | ) | 
 |  | 
 | java_import( | 
 |     name = "xz", | 
 |     jars = ["xz/xz-1.5.jar"], | 
 | ) | 
 |  | 
 | cc_library( | 
 |     name = "gtest", | 
 |     srcs = [ | 
 |         "gtest/gtest-all.cc", | 
 |         "gtest/gtest_main.cc", | 
 |     ], | 
 |     hdrs = [ | 
 |         "gtest/gtest.h", | 
 |     ], | 
 |     data = [ | 
 |         "//tools:test_sharding_compliant", | 
 |     ], | 
 |     includes = ["."], | 
 |     # gtest detects pthread, and the linker fails without it. | 
 |     linkopts = ["-lpthread"], | 
 | ) | 
 |  | 
 | # To be used by the skylark example. | 
 | filegroup( | 
 |     name = "junit4-jars", | 
 |     srcs = [ | 
 |         "hamcrest/hamcrest-core-1.3.jar", | 
 |         "junit/junit-4.11.jar", | 
 |     ], | 
 | ) | 
 |  | 
 | config_setting( | 
 |     name = "windows_mingw", | 
 |     values = {"compiler": "windows_mingw"}, | 
 | ) | 
 |  | 
 | config_setting( | 
 |     name = "windows_msys64", | 
 |     values = {"compiler": "windows_msys64"}, | 
 | ) | 
 |  | 
 | config_setting( | 
 |     name = "windows_msys64_mingw64", | 
 |     values = {"compiler": "windows_msys64_mingw64"}, | 
 | ) | 
 |  | 
 | config_setting( | 
 |     name = "windows_clang", | 
 |     values = {"compiler": "windows_clang"}, | 
 | ) | 
 |  | 
 | config_setting( | 
 |     name = "darwin", | 
 |     values = {"host_cpu": "darwin"}, | 
 | ) | 
 |  | 
 | config_setting( | 
 |     name = "k8", | 
 |     values = {"host_cpu": "k8"}, | 
 | ) | 
 |  | 
 | config_setting( | 
 |     name = "piii", | 
 |     values = {"host_cpu": "piii"}, | 
 | ) | 
 |  | 
 | config_setting( | 
 |     name = "arm", | 
 |     values = {"host_cpu": "arm"}, | 
 | ) | 
 |  | 
 | config_setting( | 
 |     name = "freebsd", | 
 |     values = {"host_cpu": "freebsd"}, | 
 | ) | 
 |  | 
 | config_setting( | 
 |     name = "s390x", | 
 |     values = {"host_cpu": "s390x"}, | 
 | ) |