Merge pull request #2443 from hzeller/feature-20250813-use-rules-cc
Bazel moves towards using cc_library() etc. from rules_cc.
diff --git a/MODULE.bazel b/MODULE.bazel
index 61dcfeb..a336ab1 100644
--- a/MODULE.bazel
+++ b/MODULE.bazel
@@ -10,6 +10,7 @@
bazel_dep(name = "protobuf", version = "31.0-rc2")
bazel_dep(name = "re2", version = "2024-07-02.bcr.1")
bazel_dep(name = "rules_bison", version = "0.3")
+bazel_dep(name = "rules_cc", version = "0.1.2")
bazel_dep(name = "rules_flex", version = "0.3")
bazel_dep(name = "rules_license", version = "1.0.0")
bazel_dep(name = "rules_m4", version = "0.2.3")
diff --git a/bazel/BUILD b/bazel/BUILD
index 37df35e..6dab72b 100644
--- a/bazel/BUILD
+++ b/bazel/BUILD
@@ -3,6 +3,7 @@
"""
load("@bazel_skylib//rules:common_settings.bzl", "bool_flag")
+load("@rules_cc//cc:defs.bzl", "cc_library")
package(
default_applicable_licenses = ["//:license"],
diff --git a/external_libs/BUILD b/external_libs/BUILD
index cd94f38..0d80a3e 100644
--- a/external_libs/BUILD
+++ b/external_libs/BUILD
@@ -3,6 +3,8 @@
# editscript - is a template-generic sequence diff algorithm based on
# diff-match-patch.
+load("@rules_cc//cc:defs.bzl", "cc_library", "cc_test")
+
package(
default_applicable_licenses = ["//:license"],
default_visibility = [
diff --git a/third_party/portable_endian/BUILD b/third_party/portable_endian/BUILD
index 946de9d..8b6cfdb 100644
--- a/third_party/portable_endian/BUILD
+++ b/third_party/portable_endian/BUILD
@@ -1,3 +1,5 @@
+load("@rules_cc//cc:defs.bzl", "cc_library")
+
licenses(["unencumbered"])
cc_library(
diff --git a/verible/common/analysis/BUILD b/verible/common/analysis/BUILD
index e777c0b..d2d5cc6 100644
--- a/verible/common/analysis/BUILD
+++ b/verible/common/analysis/BUILD
@@ -1,5 +1,6 @@
# This package contains functions and classes for analyzing text structures.
+load("@rules_cc//cc:defs.bzl", "cc_library", "cc_test")
load("//bazel:flex.bzl", "genlex")
package(
diff --git a/verible/common/analysis/matcher/BUILD b/verible/common/analysis/matcher/BUILD
index 2d93eb9..ace7fd3 100644
--- a/verible/common/analysis/matcher/BUILD
+++ b/verible/common/analysis/matcher/BUILD
@@ -1,5 +1,7 @@
# 'matcher' is a library of syntax tree matching utilities.
+load("@rules_cc//cc:defs.bzl", "cc_library", "cc_test")
+
package(
default_applicable_licenses = ["//:license"],
default_visibility = [
diff --git a/verible/common/formatting/BUILD b/verible/common/formatting/BUILD
index fcef277..f04a440 100644
--- a/verible/common/formatting/BUILD
+++ b/verible/common/formatting/BUILD
@@ -1,5 +1,7 @@
# 'formatting' contains functionality for language-agnostic formatting
+load("@rules_cc//cc:defs.bzl", "cc_library", "cc_test")
+
package(
default_applicable_licenses = ["//:license"],
default_visibility = [
diff --git a/verible/common/lexer/BUILD b/verible/common/lexer/BUILD
index a03a5b3..9f1a28d 100644
--- a/verible/common/lexer/BUILD
+++ b/verible/common/lexer/BUILD
@@ -1,6 +1,8 @@
# 'lexer' contains mostly interfaces and adapters for working with lexers
# in Verible, e.g. those generated by flex.
+load("@rules_cc//cc:defs.bzl", "cc_library", "cc_test")
+
package(
default_applicable_licenses = ["//:license"],
default_visibility = [
diff --git a/verible/common/lsp/BUILD b/verible/common/lsp/BUILD
index 113d1cb..7071262 100644
--- a/verible/common/lsp/BUILD
+++ b/verible/common/lsp/BUILD
@@ -9,6 +9,7 @@
# [1]: https://microsoft.github.io/language-server-protocol/specification
# [2]: https://www.jsonrpc.org/specification
+load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_test")
load("//bazel:sh_test_with_runfiles_lib.bzl", "sh_test_with_runfiles_lib")
package(
diff --git a/verible/common/parser/BUILD b/verible/common/parser/BUILD
index adefabb..ece1d09 100644
--- a/verible/common/parser/BUILD
+++ b/verible/common/parser/BUILD
@@ -1,6 +1,8 @@
# 'parser' contains mostly interfaces and adapters for working with parsers
# in Verible, e.g. those generated by bison.
+load("@rules_cc//cc:defs.bzl", "cc_library", "cc_test")
+
package(
default_applicable_licenses = ["//:license"],
default_visibility = [
diff --git a/verible/common/strings/BUILD b/verible/common/strings/BUILD
index d85f036..d262d2c 100644
--- a/verible/common/strings/BUILD
+++ b/verible/common/strings/BUILD
@@ -1,5 +1,7 @@
# This package contains functions for dealing specifically with strings.
+load("@rules_cc//cc:defs.bzl", "cc_library", "cc_test")
+
package(
default_applicable_licenses = ["//:license"],
default_visibility = [
diff --git a/verible/common/text/BUILD b/verible/common/text/BUILD
index d70a016..3ef0334 100644
--- a/verible/common/text/BUILD
+++ b/verible/common/text/BUILD
@@ -1,6 +1,8 @@
# 'text' contains classes for structural representations of text/code,
# such as token streams, syntax trees.
+load("@rules_cc//cc:defs.bzl", "cc_library", "cc_test")
+
package(
default_applicable_licenses = ["//:license"],
# library layering: common/ packages that may NOT depend on this one:
diff --git a/verible/common/tools/BUILD b/verible/common/tools/BUILD
index 61b4d44..8c1e386 100644
--- a/verible/common/tools/BUILD
+++ b/verible/common/tools/BUILD
@@ -1,5 +1,6 @@
"""This package contains language-agnostic tools in the Verible project."""
+load("@rules_cc//cc:defs.bzl", "cc_binary")
load("//bazel:sh_test_with_runfiles_lib.bzl", "sh_test_with_runfiles_lib")
load("//bazel:variables.bzl", "STATIC_EXECUTABLES_FEATURE")
diff --git a/verible/common/util/BUILD b/verible/common/util/BUILD
index 37f4ff8..749fe32 100644
--- a/verible/common/util/BUILD
+++ b/verible/common/util/BUILD
@@ -1,6 +1,7 @@
# 'util' contains generic containers, adapters, algorithms
# Any verible package may directly depend on this.
+load("@rules_cc//cc:defs.bzl", "cc_library", "cc_test")
load(":module-version.bzl", "get_version_define_from_module")
package(
diff --git a/verible/verilog/CST/BUILD b/verible/verilog/CST/BUILD
index 98f4c9b..8be2376 100644
--- a/verible/verilog/CST/BUILD
+++ b/verible/verilog/CST/BUILD
@@ -3,6 +3,8 @@
# Any code that relies on the internal tree structure should be isolated in
# here.
+load("@rules_cc//cc:defs.bzl", "cc_library", "cc_test")
+
package(
default_applicable_licenses = ["//:license"],
default_visibility = [
diff --git a/verible/verilog/analysis/BUILD b/verible/verilog/analysis/BUILD
index 9e1426a..5846df4 100644
--- a/verible/verilog/analysis/BUILD
+++ b/verible/verilog/analysis/BUILD
@@ -1,6 +1,8 @@
# This package contains functions and classes related to analysis of
# structural representations of Verilog/SystemVerilog source code.
+load("@rules_cc//cc:defs.bzl", "cc_library", "cc_test")
+
default_visibility = [
"//verible/verilog:__subpackages__",
]
diff --git a/verible/verilog/analysis/checkers/BUILD b/verible/verilog/analysis/checkers/BUILD
index 5ecdd20..5b99fa0 100644
--- a/verible/verilog/analysis/checkers/BUILD
+++ b/verible/verilog/analysis/checkers/BUILD
@@ -1,5 +1,7 @@
# A set of linter rules to be used in analysis of verilog code.
+load("@rules_cc//cc:defs.bzl", "cc_library", "cc_test")
+
default_visibility = [
"//verible/verilog/analysis:__subpackages__",
"//verible/verilog/tools:__subpackages__",
diff --git a/verible/verilog/formatting/BUILD b/verible/verilog/formatting/BUILD
index e22d705..196e2b3 100644
--- a/verible/verilog/formatting/BUILD
+++ b/verible/verilog/formatting/BUILD
@@ -1,5 +1,7 @@
# This package SystemVerilog-specific code formatting functions.
+load("@rules_cc//cc:defs.bzl", "cc_library", "cc_test")
+
default_visibility = [
"//verible/verilog/tools/formatter:__pkg__",
"//verible/verilog/tools/ls:__pkg__",
diff --git a/verible/verilog/parser/BUILD b/verible/verilog/parser/BUILD
index 5fb15cb..442da6d 100644
--- a/verible/verilog/parser/BUILD
+++ b/verible/verilog/parser/BUILD
@@ -1,5 +1,6 @@
# This package implements a SystemVerilog lexer and parser.
+load("@rules_cc//cc:defs.bzl", "cc_library", "cc_test")
load("//bazel:bison.bzl", "genyacc")
load("//bazel:flex.bzl", "genlex")
load(
diff --git a/verible/verilog/preprocessor/BUILD b/verible/verilog/preprocessor/BUILD
index cfe2761..2c2d4a4 100644
--- a/verible/verilog/preprocessor/BUILD
+++ b/verible/verilog/preprocessor/BUILD
@@ -1,5 +1,7 @@
# This package contains libraries related to SystemVerilog preprocessing.
+load("@rules_cc//cc:defs.bzl", "cc_library", "cc_test")
+
package(
default_applicable_licenses = ["//:license"],
default_visibility = [
diff --git a/verible/verilog/tools/diff/BUILD b/verible/verilog/tools/diff/BUILD
index 78fb087..ecf8d30 100644
--- a/verible/verilog/tools/diff/BUILD
+++ b/verible/verilog/tools/diff/BUILD
@@ -1,6 +1,7 @@
"""Tool for comparing Verilog source code.
"""
+load("@rules_cc//cc:defs.bzl", "cc_binary")
load("//bazel:sh_test_with_runfiles_lib.bzl", "sh_test_with_runfiles_lib")
load("//bazel:variables.bzl", "STATIC_EXECUTABLES_FEATURE")
diff --git a/verible/verilog/tools/formatter/BUILD b/verible/verilog/tools/formatter/BUILD
index cfbcc97..e384b78 100644
--- a/verible/verilog/tools/formatter/BUILD
+++ b/verible/verilog/tools/formatter/BUILD
@@ -1,6 +1,7 @@
# 'verilog_format' is a SystemVerilog source code formatter.
#
+load("@rules_cc//cc:defs.bzl", "cc_binary")
load("//bazel:sh_test_with_runfiles_lib.bzl", "sh_test_with_runfiles_lib")
load("//bazel:variables.bzl", "STATIC_EXECUTABLES_FEATURE")
diff --git a/verible/verilog/tools/kythe/BUILD b/verible/verilog/tools/kythe/BUILD
index 036758e..d545ee9 100644
--- a/verible/verilog/tools/kythe/BUILD
+++ b/verible/verilog/tools/kythe/BUILD
@@ -1,5 +1,6 @@
# 'verible-verilog-kythe-extractor' is a program for extracting Verilog/SystemVerilog to kythe facts.
+load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_test")
load("//bazel:sh_test_with_runfiles_lib.bzl", "sh_test_with_runfiles_lib")
load("//bazel:variables.bzl", "STATIC_EXECUTABLES_FEATURE")
diff --git a/verible/verilog/tools/lint/BUILD b/verible/verilog/tools/lint/BUILD
index 9ed4f3d..f008f45 100644
--- a/verible/verilog/tools/lint/BUILD
+++ b/verible/verilog/tools/lint/BUILD
@@ -1,5 +1,6 @@
# This package contains the style linter binary and end-to-end tests for it.
+load("@rules_cc//cc:defs.bzl", "cc_binary")
load("//bazel:sh_test_with_runfiles_lib.bzl", "sh_test_with_runfiles_lib")
load("//bazel:variables.bzl", "STATIC_EXECUTABLES_FEATURE")
load(
diff --git a/verible/verilog/tools/ls/BUILD b/verible/verilog/tools/ls/BUILD
index 8ef3f82..2399f14 100644
--- a/verible/verilog/tools/ls/BUILD
+++ b/verible/verilog/tools/ls/BUILD
@@ -2,6 +2,7 @@
#
# [1]: https://microsoft.github.io/language-server-protocol/specification
+load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_test")
load("//bazel:sh_test_with_runfiles_lib.bzl", "sh_test_with_runfiles_lib")
load("//bazel:variables.bzl", "STATIC_EXECUTABLES_FEATURE")
diff --git a/verible/verilog/tools/obfuscator/BUILD b/verible/verilog/tools/obfuscator/BUILD
index e3a2d21..9021d0f 100644
--- a/verible/verilog/tools/obfuscator/BUILD
+++ b/verible/verilog/tools/obfuscator/BUILD
@@ -1,6 +1,7 @@
"""Tool for obfuscating verilog
"""
+load("@rules_cc//cc:defs.bzl", "cc_binary")
load("//bazel:sh_test_with_runfiles_lib.bzl", "sh_test_with_runfiles_lib")
load("//bazel:variables.bzl", "STATIC_EXECUTABLES_FEATURE")
diff --git a/verible/verilog/tools/preprocessor/BUILD b/verible/verilog/tools/preprocessor/BUILD
index ddf509c..e2e9493 100644
--- a/verible/verilog/tools/preprocessor/BUILD
+++ b/verible/verilog/tools/preprocessor/BUILD
@@ -1,6 +1,7 @@
"""Tool for preprocessing Verilog
"""
+load("@rules_cc//cc:defs.bzl", "cc_binary")
load("//bazel:sh_test_with_runfiles_lib.bzl", "sh_test_with_runfiles_lib")
load("//bazel:variables.bzl", "STATIC_EXECUTABLES_FEATURE")
diff --git a/verible/verilog/tools/project/BUILD b/verible/verilog/tools/project/BUILD
index 386ebdd..a765941 100644
--- a/verible/verilog/tools/project/BUILD
+++ b/verible/verilog/tools/project/BUILD
@@ -1,6 +1,7 @@
"""This package contains multi-tool for working with SystemVerilog projects.
"""
+load("@rules_cc//cc:defs.bzl", "cc_binary")
load("//bazel:sh_test_with_runfiles_lib.bzl", "sh_test_with_runfiles_lib")
load("//bazel:variables.bzl", "STATIC_EXECUTABLES_FEATURE")
diff --git a/verible/verilog/tools/syntax/BUILD b/verible/verilog/tools/syntax/BUILD
index 98557bc..d66d15a 100644
--- a/verible/verilog/tools/syntax/BUILD
+++ b/verible/verilog/tools/syntax/BUILD
@@ -1,5 +1,6 @@
# 'verilog_syntax' is a program for checking Verilog/SystemVerilog syntax.
+load("@rules_cc//cc:defs.bzl", "cc_binary")
load("//bazel:sh_test_with_runfiles_lib.bzl", "sh_test_with_runfiles_lib")
load("//bazel:variables.bzl", "STATIC_EXECUTABLES_FEATURE")
diff --git a/verible/verilog/transform/BUILD b/verible/verilog/transform/BUILD
index 2cf15a5..9a70c79 100644
--- a/verible/verilog/transform/BUILD
+++ b/verible/verilog/transform/BUILD
@@ -1,5 +1,7 @@
# This library contains tools for transforming Verilog code.
+load("@rules_cc//cc:defs.bzl", "cc_library", "cc_test")
+
default_visibility = [
"//verible/verilog/tools/obfuscator:__subpackages__",
"//verible/verilog/tools/preprocessor:__subpackages__",