diff --git a/.bazelrc b/.bazelrc new file mode 100644 index 000000000..710c4d81a --- /dev/null +++ b/.bazelrc @@ -0,0 +1 @@ +common --noenable_bzlmod diff --git a/BUILD.bazel b/BUILD.bazel index 036859a7c..56869a622 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -7,6 +7,7 @@ genrule( "//bazel:re2c_config.h", ], outs = ["config.h"], + visibility = ["//bazel:__pkg__"], cmd = """ cat $(location //:CMakeLists.txt) |\\ sed -rne 's/project\\(re2c VERSION ([^ ]+).*/#define PACKAGE_VERSION "\\1-bootstrap"/p' >> "$@" @@ -27,10 +28,17 @@ cc_library( hdrs = glob([ "bootstrap/src/**/*.h", "src/**/*.h", - ]), + ], exclude = [ + "src/test/**", + ]) + [ + "src/test/range/test.h" + ], srcs = glob([ "bootstrap/src/**/*.cc", "src/**/*.cc", + ], exclude = [ + "src/main.cc", + "src/test/**", ]), deps = [ "re2c_config_cc", # Needed for 're2c_config_cc' data files diff --git a/bazel/BUILD.bazel b/bazel/BUILD.bazel index d1b7d7d17..03a3c0c04 100644 --- a/bazel/BUILD.bazel +++ b/bazel/BUILD.bazel @@ -1,7 +1,7 @@ -package(default_visibility = ["//visibility:private"]) - load("@bazel_skylib//:bzl_library.bzl", "bzl_library") +package(default_visibility = ["//visibility:private"]) + exports_files([ "re2c_config.h", ]) @@ -11,3 +11,12 @@ bzl_library( srcs = ["re2c.bzl"], visibility = ["//visibility:public"], ) + +sh_test( + name = "re2c_bazel_test", + srcs = ["re2c_bazel_test.sh"], + data = [ + "//:re2c_config", + "//:re2c", + ], +) diff --git a/bazel/re2c.bzl b/bazel/re2c.bzl index c847bb5dd..545cb6fcb 100644 --- a/bazel/re2c.bzl +++ b/bazel/re2c.bzl @@ -1,4 +1,4 @@ -# re2c generator rules - assuming that re2c is available as '@re2c//:re2c'. +"""re2c generator rules - assuming that re2c is available as '@re2c//:re2c'.""" load("@bazel_skylib//lib:paths.bzl", "paths") diff --git a/bazel/re2c_bazel_test.sh b/bazel/re2c_bazel_test.sh new file mode 100755 index 000000000..97d9bc298 --- /dev/null +++ b/bazel/re2c_bazel_test.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +# Minimalistic test that verifies the binary can run and report its own version. + +set -euo pipefail + +RE2C_VERSION="$(cat "${TEST_SRCDIR}/re2c/config.h" | sed -rne 's,^#define PACKAGE_VERSION "(.*)"$,\1,p')" + +RE2C_BAZEL_VERSION="re2c ${RE2C_VERSION}" + +if [[ "$("${TEST_SRCDIR}/re2c/re2c" --version)" == "${RE2C_BAZEL_VERSION}" ]]; then + echo "PASS" +else + echo "FAIL" + exit 1 +fi