Skip to content

Commit

Permalink
Merge pull request #2301 from hzeller/feature-20241215-drop-workspace
Browse files Browse the repository at this point in the history
Drop support for bazel5; switch to all bzlmod.
  • Loading branch information
hzeller authored Dec 17, 2024
2 parents b0aaf2c + d7b1639 commit bacb769
Show file tree
Hide file tree
Showing 10 changed files with 63 additions and 288 deletions.
14 changes: 14 additions & 0 deletions .bazelrc
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
# bazel < 7 needs explicit enabling of bzlmod dependencies.
build --enable_bzlmod

# Enable support for absl types like string_view in gtest.
build --define="absl=1"

Expand Down Expand Up @@ -26,6 +29,17 @@ common:macos --features=-supports_dynamic_linker --linkopt=-framework --linkopt=
# Since we use designated initializers (C99 ... but >= c++20), compiler really wants the c++20 mode
common:windows --compiler=clang-cl --cxxopt=/std:c++20 --host_cxxopt=/std:c++20 --client_env=BAZEL_CXXOPTS=/std:c++20

build --cxxopt="-Wno-unknown-warning-option" --host_cxxopt="-Wno-unknown-warning-option"
# TODO: this looks like benign where it happens but to be explored further
build --cxxopt="-Wno-dangling-reference" --host_cxxopt="-Wno-dangling-reference"
# Newer bisons create an unused label.
build --cxxopt="-Wno-unused-label" --host_cxxopt="-Wno-unused-label"

# For 3rd party code: Disable warnings entirely.
# They are not actionable and just create noise.
build --per_file_copt=external/.*@-w
build --host_per_file_copt=external/.*@-w

# Address sanitizer settings.
build:asan --strip=never
build:asan --copt -fsanitize=address
Expand Down
2 changes: 1 addition & 1 deletion .github/bin/run-clang-format.sh
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ find . -name "*.h" -o -name "*.cc" \
# If we have buildifier installed, use that on BUILD files
if command -v ${BUILDIFIER} >/dev/null; then
echo "Run $(buildifier --version)"
${BUILDIFIER} -lint=fix WORKSPACE MODULE.bazel $(find . -name BUILD -o -name "*.bzl")
${BUILDIFIER} -lint=fix MODULE.bazel $(find . -name BUILD -o -name "*.bzl")
fi

# Check if we got any diff
Expand Down
2 changes: 1 addition & 1 deletion .github/settings.sh
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ export BAZEL_CXXOPTS="-std=c++17"
export BAZEL_OPTS="-c opt --noshow_progress"

# Used to fetch the BAZEL version where needed.
export BAZEL_VERSION=5.4.1
export BAZEL_VERSION=6.5.0

# Kythe version for extracting xRefs
export KYTHE_VERSION=v0.0.52
Expand Down
39 changes: 13 additions & 26 deletions .github/workflows/verible-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -103,20 +103,20 @@ jobs:
path: |
/root/.cache/clang-tidy
/root/.cache/bazel
key: clang-tidy-${{ steps.cache_timestamp.outputs.time }}
restore-keys: clang-tidy-
key: clang-tidy2-${{ steps.cache_timestamp.outputs.time }}
restore-keys: clang-tidy2-

- name: Build Project genrules
run: |
# Fetch all dependencies and run genrules for bant to see every file
# that makes it into the compile to build comile DB.f
bazel fetch ...
# that makes it into the compile to build comile DB.
bazel build \
//verible/common/analysis:command-file-lexer \
//verible/verilog/parser:verilog-lex \
//verible/verilog/parser:verilog-y \
//verible/verilog/parser:verilog-y-final \
//verible/common/analysis:command-file-lexer_test
//verible/common/analysis:command-file-lexer_test \
//verible/common/lsp:lsp-text-buffer
bazel build $(bin/bant -q genrule-outputs | awk '{print $2}') \
$(bin/bant list-targets | grep cc_proto_library | awk '{print $3}')
Expand Down Expand Up @@ -164,7 +164,6 @@ jobs:
run: |
# Fetch all dependencies and run genrules for bant to see every file
# that makes it into the compile. Use bant itself to find genrules.
bazel fetch ...
bazel build $(bin/bant -q genrule-outputs | awk '{print $2}') \
//verible/common/analysis:command-file-lexer \
//verible/verilog/parser:verilog-lex \
Expand Down Expand Up @@ -195,7 +194,6 @@ jobs:
- compile-clang
- compile-static
- compile-static-clang
- coverage
- clean
arch:
- x86_64
Expand All @@ -211,8 +209,6 @@ jobs:
arch: arm64
- mode: asan-clang
arch: arm64
- mode: coverage
arch: arm64
env:
MODE: ${{ matrix.mode }}
ARCH: ${{ matrix.arch }}
Expand All @@ -238,8 +234,8 @@ jobs:
if: matrix.mode != 'clean' && matrix.mode != 'coverage'
with:
path: "/root/.cache/bazel"
key: bazelcache3_${{ matrix.arch }}_${{ matrix.mode }}_${{ steps.cache_timestamp.outputs.time }}
restore-keys: bazelcache3_${{ matrix.arch }}_${{ matrix.mode }}_
key: bazelcache_${{ matrix.arch }}_${{ matrix.mode }}_${{ steps.cache_timestamp.outputs.time }}
restore-keys: bazelcache_${{ matrix.arch }}_${{ matrix.mode }}_

- name: Install Dependencies
run: |
Expand Down Expand Up @@ -274,15 +270,6 @@ jobs:
- name: ${{ matrix.mode }} Verible
run: ./.github/bin/build-and-test.sh

- name: Upload coverage
# will show up under https://app.codecov.io/gh/chipsalliance/verible
if: matrix.mode == 'coverage'
uses: codecov/codecov-action@v2
with:
files: bazel-out/_coverage/_coverage_report.dat
verbose: true
continue-on-error: true

- name: Gather and pack binaries
if: matrix.mode == 'compile' && matrix.arch == 'x86_64'
run: |
Expand Down Expand Up @@ -397,8 +384,8 @@ jobs:
with:
path: |
/private/var/tmp/_bazel_runner
key: bazelcache_macos_${{ steps.cache_timestamp.outputs.time }}
restore-keys: bazelcache_macos_
key: bazelcache_macos1_${{ steps.cache_timestamp.outputs.time }}
restore-keys: bazelcache_macos1_

- name: Tests
# MacOS has a broken patch utility:
Expand Down Expand Up @@ -451,14 +438,14 @@ jobs:
uses: actions/cache@v3
with:
path: "c:/users/runneradmin/_bazel_runneradmin"
key: bazelcache_windows_${{ steps.cache_timestamp.outputs.time }}
restore-keys: bazelcache_windows_
key: bazelcache_windows3_${{ steps.cache_timestamp.outputs.time }}
restore-keys: bazelcache_windows3_

- name: Install dependencies
run: |
choco install bazel --force --version=6.4.0
choco install bazel --force --version=6.5.0
choco install winflexbison3
choco install llvm --allow-downgrade --version=16.0.6
choco install llvm --allow-downgrade --version=17.0.6
- name: Debug bazel directory settings
# We need to explicitly call the bazel binary from choco, otherwise
Expand Down
60 changes: 31 additions & 29 deletions MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,14 @@ module(
name = "verible",
)

bazel_dep(name = "platforms", version = "0.0.8")
bazel_dep(name = "bazel_skylib", version = "1.5.0")
bazel_dep(name = "rules_license", version = "0.0.8")
bazel_dep(name = "rules_proto", version = "6.0.0-rc2")
bazel_dep(name = "rules_cc", version = "0.0.9")
bazel_dep(name = "platforms", version = "0.0.10")
bazel_dep(name = "bazel_skylib", version = "1.7.1")
bazel_dep(name = "rules_license", version = "1.0.0")
bazel_dep(name = "nlohmann_json", version = "3.11.3.bcr.1", repo_name = "jsonhpp")
bazel_dep(name = "re2", version = "2024-07-02.bcr.1", repo_name = "com_googlesource_code_re2")
bazel_dep(name = "zlib", version = "1.3.1.bcr.3")

# Register m4 rules and toolchain.
# Register m4/flex/bison rules and toolchains
bazel_dep(name = "rules_m4", version = "0.2.3")

m4 = use_extension(
Expand All @@ -24,23 +25,6 @@ use_repo(m4, "m4")

register_toolchains("@m4//:toolchain")

# Register bison rules and toolchain.
bazel_dep(name = "rules_bison", version = "0.3")

bison = use_extension(
"@rules_bison//bison/extensions:bison_repository_ext.bzl",
"bison_repository_ext",
)
bison.repository(
name = "bison",
extra_copts = ["-O3"],
version = "3.3.2",
)
use_repo(bison, "bison")

register_toolchains("@bison//:toolchain")

# Register flex rules and toolchain.
bazel_dep(name = "rules_flex", version = "0.3")

flex = use_extension(
Expand All @@ -56,9 +40,25 @@ use_repo(flex, "flex")

register_toolchains("@flex//:toolchain")

bazel_dep(name = "rules_bison", version = "0.3")

bison = use_extension(
"@rules_bison//bison/extensions:bison_repository_ext.bzl",
"bison_repository_ext",
)
bison.repository(
name = "bison",
extra_copts = ["-O3"],
version = "3.3.2",
)
use_repo(bison, "bison")

register_toolchains("@bison//:toolchain")

# abseil-cpp and googletest can not be updated beyond the following currently,
# as newer googletest is not compatible with bazel 6 anymore, and abseil-cpp
# depends on it :( -- to support all active bazel's, we're stuck till Dec 2025.
# depends on it :( -- to support all active bazel's, we're stuck till EOL bazel6
bazel_dep(name = "googletest", version = "1.14.0.bcr.1", repo_name = "com_google_googletest")
bazel_dep(name = "abseil-cpp", version = "20240116.2", repo_name = "com_google_absl")
single_version_override(
module_name = "abseil-cpp",
Expand All @@ -67,8 +67,10 @@ single_version_override(
version = "20240116.2",
)

bazel_dep(name = "googletest", version = "1.14.0.bcr.1", repo_name = "com_google_googletest")
bazel_dep(name = "nlohmann_json", version = "3.11.3.bcr.1", repo_name = "jsonhpp")
bazel_dep(name = "protobuf", version = "26.0", repo_name = "com_google_protobuf")
bazel_dep(name = "re2", version = "2023-09-01", repo_name = "com_googlesource_code_re2")
bazel_dep(name = "zlib", version = "1.3.1")
# Last protobuf version working with windows without strange linking errors.
# This also means that we unfortunately can't use the @protobuf//bazel rules
# but have to use rules_cc and rules_proto.
# TODO: figure out how we can make proto compile beyond 24.4 on Windows.
bazel_dep(name = "protobuf", version = "24.4", repo_name = "com_google_protobuf")
bazel_dep(name = "rules_cc", version = "0.0.9")
bazel_dep(name = "rules_proto", version = "6.0.0-rc2")
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,7 @@ the nix package manager simply run `nix-shell` to get a build environment.

```bash
# Build all tools and libraries
# bazel 5/6/7
# bazel 6/7/8
bazel build -c opt //...
```

Expand Down
Loading

0 comments on commit bacb769

Please sign in to comment.