From 1045ab52dfd00290e8fbfbca61e9131186ba7b62 Mon Sep 17 00:00:00 2001 From: Evgenii Kliuchnikov Date: Thu, 4 Jan 2024 03:32:33 -0800 Subject: Fix/simplify/improve Bazel build PiperOrigin-RevId: 595656443 --- .github/workflows/build_test.yml | 16 ++++++------- BUILD.bazel | 34 +++++++--------------------- compiler_config_setting.bzl | 40 --------------------------------- go/WORKSPACE.bazel | 14 ++++++------ java/BUILD.bazel | 40 ++++++++++++++++++++++++++++----- java/WORKSPACE.bazel | 10 ++++----- java/org/brotli/integration/BUILD.bazel | 22 +++++++++--------- 7 files changed, 75 insertions(+), 101 deletions(-) delete mode 100644 compiler_config_setting.bzl 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 @@ jobs: 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 @@ jobs: 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 @@ licenses(["notice"]) # MIT exports_files(["LICENSE"]) 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"}, + name = "clang-cl", + flag_values = { + "@bazel_tools//tools/cpp:compiler": "clang-cl", + }, visibility = ["//visibility:public"], ) config_setting( - name = "windows_msvc", - values = {"cpu": "x64_windows_msvc"}, + name = "msvc", + flag_values = { + "@bazel_tools//tools/cpp:compiler": "msvc-cl", + }, 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 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") 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 @@ load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_depe 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 @@ package( 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( 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 @@ maven_install( 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_binary( 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 @@ java_test( 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__"], ) -- cgit v1.1