Bazel: general improvements.

Improve the Bazel build. Attempt to fix previous errors recorded while
trying to publish ftxui in the Bazel Central Registry:
- https://github.com/bazelbuild/bazel-central-registry/pull/4485
- https://buildkite.com/bazel/bcr-presubmit/builds/13601#01968b61-f5b2-4d16-94d0-c87a03a1a23b

Test against "recent" platforms
-------------------------------

Previously, I got the error:
```
gcc: error: unrecognized command line option '-std-c++20'; did you mean '-std-c++2a'?
```
This was due to using old distribution like ubuntu 2004. Test against
newer platforms only to avoid GCC version<-9.x.y

Downgrade gtest version.
------------------------

I suspect this caused the Bazel Central Registry error:
```
file:///workdir/modules/googletest/1.15.2/MODULE.bazel:68:20: name 'use_repo_rule' is not defined
```
I hoped using a lower version will fix the issue.

Tag gtest as dev_dependency
---------------------------

Presumably, this should avoid dependants to fetch it?

Enable --features-layering_check
--------------------------------

Aka clang `-Wprivate-header`. Fix the encountered errors.

Use clang in the CI
-------------------

The CI was defining clang/gcc in the matrix, but was not using it. Fix
the bug.
This commit is contained in:
ArthurSonzogni
2025-05-05 00:48:53 +02:00
parent add5f40d31
commit 773e5eb7d2
7 changed files with 106 additions and 38 deletions

View File

@@ -1,11 +1,16 @@
matrix:
# Note that gcc 9 and earlier aren't supported due to using --std=c++2a
# instead of --std=c++20
platform:
- centos7
- debian10
- ubuntu2004
- debian11
- ubuntu2024
- macos
- macos-arm64
- windows
bazel: [6.x, 7.x, 8.x]
bazel:
#- 6.x -> Build fails with bazel 6.x
- 7.x
- 8.x
tasks:
verify_targets:
name: Build and test.