Fix/simplify/improve Bazel build
PiperOrigin-RevId: 595656443
diff --git a/.github/workflows/build_test.yml b/.github/workflows/build_test.yml
index b3d8915..03bac2e 100644
--- a/.github/workflows/build_test.yml
+++ b/.github/workflows/build_test.yml
@@ -86,17 +86,17 @@
cxx_compiler: g++
os: macos-latest
- - name: cmake-win64:msvc2019-rel
+ - name: cmake-win64:msvc-rel
build_system: cmake
- cmake_generator: Visual Studio 16 2019
+ cmake_generator: Visual Studio 17 2022
cmake_config: Release
- os: windows-2019
+ os: windows-latest
- - name: cmake-win64:msvc2019-dbg
+ - name: cmake-win64:msvc-dbg
build_system: cmake
- cmake_generator: Visual Studio 16 2019
+ cmake_generator: Visual Studio 17 2022
cmake_config: Debug
- os: windows-2019
+ os: windows-latest
- name: fuzz:clang15
build_system: fuzz
@@ -288,9 +288,9 @@
with open(match) as manifest:
for entry in manifest:
entry = entry.strip()
- if not entry.startswith("org_brotli_java"):
+ if not entry.startswith("_main"):
continue
- if entry.startswith('org_brotli_java/external'):
+ if entry.startswith("_main/external"):
continue
(alias, space, link) = entry.partition(' ')
if alias.endswith('.jar') or alias.endswith('.exe'):
diff --git a/BUILD.bazel b/BUILD.bazel
index 34e4a54..003c1b9 100644
--- a/BUILD.bazel
+++ b/BUILD.bazel
@@ -1,8 +1,6 @@
# Description:
# Brotli is a generic-purpose lossless compression algorithm.
-load(":compiler_config_setting.bzl", "create_msvc_config")
-
package(
default_visibility = ["//visibility:public"],
)
@@ -12,37 +10,21 @@
exports_files(["LICENSE"])
config_setting(
- name = "darwin",
- values = {"cpu": "darwin"},
+ name = "clang-cl",
+ flag_values = {
+ "@bazel_tools//tools/cpp:compiler": "clang-cl",
+ },
visibility = ["//visibility:public"],
)
config_setting(
- name = "darwin_x86_64",
- values = {"cpu": "darwin_x86_64"},
+ name = "msvc",
+ flag_values = {
+ "@bazel_tools//tools/cpp:compiler": "msvc-cl",
+ },
visibility = ["//visibility:public"],
)
-config_setting(
- name = "windows",
- values = {"cpu": "x64_windows"},
- visibility = ["//visibility:public"],
-)
-
-config_setting(
- name = "windows_msvc",
- values = {"cpu": "x64_windows_msvc"},
- visibility = ["//visibility:public"],
-)
-
-config_setting(
- name = "windows_msys",
- values = {"cpu": "x64_windows_msys"},
- visibility = ["//visibility:public"],
-)
-
-create_msvc_config()
-
STRICT_C_OPTIONS = select({
":msvc": [],
":clang-cl": [
diff --git a/compiler_config_setting.bzl b/compiler_config_setting.bzl
deleted file mode 100644
index b7bb7b9..0000000
--- a/compiler_config_setting.bzl
+++ /dev/null
@@ -1,40 +0,0 @@
-# Copyright 2018 Google Inc. All Rights Reserved.
-#
-# Distributed under MIT license.
-# See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
-
-"""Creates config_setting that allows selecting based on 'compiler' value."""
-
-def create_msvc_config():
- # The "do_not_use_tools_cpp_compiler_present" attribute exists to
- # distinguish between older versions of Bazel that do not support
- # "@bazel_tools//tools/cpp:compiler" flag_value, and newer ones that do.
- # In the future, the only way to select on the compiler will be through
- # flag_values{"@bazel_tools//tools/cpp:compiler"} and the else branch can
- # be removed.
- if hasattr(cc_common, "do_not_use_tools_cpp_compiler_present"):
- native.config_setting(
- name = "clang-cl",
- flag_values = {
- "@bazel_tools//tools/cpp:compiler": "clang-cl",
- },
- visibility = ["//visibility:public"],
- )
- native.config_setting(
- name = "msvc",
- flag_values = {
- "@bazel_tools//tools/cpp:compiler": "msvc-cl",
- },
- visibility = ["//visibility:public"],
- )
- else:
- native.config_setting(
- name = "clang-cl",
- values = {"compiler": "clang-cl"},
- visibility = ["//visibility:public"],
- )
- native.config_setting(
- name = "msvc",
- values = {"compiler": "msvc-cl"},
- visibility = ["//visibility:public"],
- )
diff --git a/go/WORKSPACE.bazel b/go/WORKSPACE.bazel
index 570e250..a633dbb 100644
--- a/go/WORKSPACE.bazel
+++ b/go/WORKSPACE.bazel
@@ -9,10 +9,10 @@
http_archive(
name = "io_bazel_rules_go",
- sha256 = "2b1641428dff9018f9e85c0384f03ec6c10660d935b750e3fa1492a281a53b0f",
+ sha256 = "c8035e8ae248b56040a65ad3f0b7434712e2037e5dfdcebfe97576e620422709",
urls = [
- "https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.29.0/rules_go-v0.29.0.zip",
- "https://github.com/bazelbuild/rules_go/releases/download/v0.29.0/rules_go-v0.29.0.zip",
+ "https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.44.0/rules_go-v0.44.0.zip",
+ "https://github.com/bazelbuild/rules_go/releases/download/v0.44.0/rules_go-v0.44.0.zip",
],
)
@@ -20,14 +20,14 @@
go_rules_dependencies()
-go_register_toolchains(version = "1.17.1")
+go_register_toolchains(version = "1.21.5")
http_archive(
name = "bazel_gazelle",
- sha256 = "de69a09dc70417580aabf20a28619bb3ef60d038470c7cf8442fafcf627c21cb",
+ sha256 = "b7387f72efb59f876e4daae42f1d3912d0d45563eac7cb23d1de0b094ab588cf",
urls = [
- "https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/v0.24.0/bazel-gazelle-v0.24.0.tar.gz",
- "https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.24.0/bazel-gazelle-v0.24.0.tar.gz",
+ "https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/v0.34.0/bazel-gazelle-v0.34.0.tar.gz",
+ "https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.34.0/bazel-gazelle-v0.34.0.tar.gz",
],
)
diff --git a/java/BUILD.bazel b/java/BUILD.bazel
index 0ae6c15..ea87b15 100644
--- a/java/BUILD.bazel
+++ b/java/BUILD.bazel
@@ -2,6 +2,36 @@
default_visibility = ["//visibility:public"],
)
+config_setting(
+ name = "darwin",
+ values = {"cpu": "darwin"},
+ visibility = ["//visibility:public"],
+)
+
+config_setting(
+ name = "darwin_x86_64",
+ values = {"cpu": "darwin_x86_64"},
+ visibility = ["//visibility:public"],
+)
+
+config_setting(
+ name = "windows",
+ values = {"cpu": "x64_windows"},
+ visibility = ["//visibility:public"],
+)
+
+config_setting(
+ name = "windows_msvc",
+ values = {"cpu": "x64_windows_msvc"},
+ visibility = ["//visibility:public"],
+)
+
+config_setting(
+ name = "windows_msys",
+ values = {"cpu": "x64_windows_msys"},
+ visibility = ["//visibility:public"],
+)
+
# >>> JNI headers
genrule(
@@ -14,11 +44,11 @@
genrule(
name = "copy_link_jni_md_header",
srcs = select({
- "@org_brotli//:darwin": ["@openjdk_macosx_jni_md_h//file"],
- "@org_brotli//:darwin_x86_64": ["@openjdk_macosx_jni_md_h//file"],
- "@org_brotli//:windows_msys": ["@openjdk_windows_jni_md_h//file"],
- "@org_brotli//:windows_msvc": ["@openjdk_windows_jni_md_h//file"],
- "@org_brotli//:windows": ["@openjdk_windows_jni_md_h//file"],
+ ":darwin": ["@openjdk_macosx_jni_md_h//file"],
+ ":darwin_x86_64": ["@openjdk_macosx_jni_md_h//file"],
+ ":windows_msys": ["@openjdk_windows_jni_md_h//file"],
+ ":windows_msvc": ["@openjdk_windows_jni_md_h//file"],
+ ":windows": ["@openjdk_windows_jni_md_h//file"],
"//conditions:default": ["@openjdk_solaris_jni_md_h//file"],
}),
outs = ["jni/jni_md.h"],
diff --git a/java/WORKSPACE.bazel b/java/WORKSPACE.bazel
index 3ac9d4b..5860423 100644
--- a/java/WORKSPACE.bazel
+++ b/java/WORKSPACE.bazel
@@ -30,27 +30,27 @@
http_file(
name = "openjdk_jni_h",
downloaded_file_path = "jni.h",
- urls = ["https://hg.openjdk.java.net/jdk8/jdk8/jdk/raw-file/687fd7c7986d/src/share/javavm/export/jni.h"],
+ urls = ["https://raw.githubusercontent.com/openjdk/jdk/jdk8-b120/jdk/src/share/javavm/export/jni.h"],
sha256 = "ed99792df48670072b78028faf704a8dcb6868fe140ccc7eced9b01dfa62fef4",
)
http_file(
name = "openjdk_solaris_jni_md_h",
downloaded_file_path = "jni_md.h",
- urls = ["https://hg.openjdk.java.net/jdk8/jdk8/jdk/raw-file/687fd7c7986d/src/solaris/javavm/export/jni_md.h"],
- sha256 = "ecbe6944fe1a4290644d5a6b3c8f68576798a53b9da12cd31c58c48569595ff7",
+ urls = ["https://raw.githubusercontent.com/openjdk/jdk/jdk8-b120/jdk/src/solaris/javavm/export/jni_md.h"],
+ sha256 = "b6cf7b06e5bba38d2daa2ff0789f99d396b3cb3bcc37d0367c8360fdccdef294",
)
http_file(
name = "openjdk_macosx_jni_md_h",
downloaded_file_path = "jni_md.h",
- urls = ["https://hg.openjdk.java.net/jdk8/jdk8/jdk/raw-file/687fd7c7986d/src/macosx/javavm/export/jni_md.h"],
+ urls = ["https://raw.githubusercontent.com/openjdk/jdk/jdk8-b120/jdk/src/macosx/javavm/export/jni_md.h"],
sha256 = "8f718071022e7e7f2fc9a229984b7e83582db91ed83861b49ce1461436fe8dc4",
)
http_file(
name = "openjdk_windows_jni_md_h",
downloaded_file_path = "jni_md.h",
- urls = ["https://hg.openjdk.java.net/jdk8/jdk8/jdk/raw-file/687fd7c7986d/src/windows/javavm/export/jni_md.h"],
+ urls = ["https://raw.githubusercontent.com/openjdk/jdk/jdk8-b120/jdk/src/windows/javavm/export/jni_md.h"],
sha256 = "5479fb385ea1e11619f5c0cdfd9ccb3ea3a3fea0f5bc6176fb3ce62be29d759b",
)
diff --git a/java/org/brotli/integration/BUILD.bazel b/java/org/brotli/integration/BUILD.bazel
index 5b77325..4607cda 100644
--- a/java/org/brotli/integration/BUILD.bazel
+++ b/java/org/brotli/integration/BUILD.bazel
@@ -37,8 +37,8 @@
java_test(
name = "bundle_checker_data_test",
- args = ["org/brotli/integration/test_data.zip"],
- data = ["test_data.zip"],
+ args = ["$(location :test_data)"],
+ data = [":test_data"],
main_class = "org.brotli.integration.BundleChecker",
use_testrunner = 0,
runtime_deps = [":bundle_checker"],
@@ -48,26 +48,28 @@
name = "bundle_checker_fuzz_test",
args = [
"-s",
- "org/brotli/integration/fuzz_data.zip",
+ "$(location :fuzz_data)",
],
- data = ["fuzz_data.zip"],
+ data = [":fuzz_data"],
main_class = "org.brotli.integration.BundleChecker",
use_testrunner = 0,
runtime_deps = [":bundle_checker"],
)
filegroup(
+ name = "fuzz_data",
+ srcs = ["fuzz_data.zip"],
+ visibility = ["//visibility:private"],
+)
+
+filegroup(
name = "test_data",
srcs = ["test_data.zip"],
- visibility = [
- "//org/brotli/wrapper/dec:__pkg__",
- ],
+ visibility = ["//org/brotli/wrapper/dec:__pkg__"],
)
filegroup(
name = "test_corpus",
srcs = ["test_corpus.zip"],
- visibility = [
- "//org/brotli/wrapper/enc:__pkg__",
- ],
+ visibility = ["//org/brotli/wrapper/enc:__pkg__"],
)