From e47fc515844ff3b557df62cccc5744761076d84f Mon Sep 17 00:00:00 2001 From: Ezekiel Warren Date: Fri, 15 Jul 2022 09:18:11 -0700 Subject: [PATCH] bazel support (#136) --- .bazelrc | 3 +++ .gitignore | 2 ++ BUILD.bazel | 72 +++++++++++++++++++++++++++++++++++++++++++++++++ MODULE.bazel | 8 ++++++ WORKSPACE.bazel | 1 + 5 files changed, 86 insertions(+) create mode 100644 .bazelrc create mode 100644 BUILD.bazel create mode 100644 MODULE.bazel create mode 100644 WORKSPACE.bazel diff --git a/.bazelrc b/.bazelrc new file mode 100644 index 0000000..29223e4 --- /dev/null +++ b/.bazelrc @@ -0,0 +1,3 @@ +common --experimental_enable_bzlmod +build --incompatible_enable_cc_toolchain_resolution +build --incompatible_strict_action_env diff --git a/.gitignore b/.gitignore index 3e3284e..6604817 100644 --- a/.gitignore +++ b/.gitignore @@ -75,4 +75,6 @@ src/pcre2.h src/pcre2_chartables.c src/stamp-h1 +/bazel-* + # End diff --git a/BUILD.bazel b/BUILD.bazel new file mode 100644 index 0000000..1bd314e --- /dev/null +++ b/BUILD.bazel @@ -0,0 +1,72 @@ +load("@rules_cc//cc:defs.bzl", "cc_library", "cc_test") +load("@bazel_skylib//rules:copy_file.bzl", "copy_file") + +copy_file( + name = "config_h_generic", + src = "src/config.h.generic", + out = "src/config.h", +) + +copy_file( + name = "pcre2_h_generic", + src = "src/pcre2.h.generic", + out = "src/pcre2.h", +) + +copy_file( + name = "pcre2_chartables_c", + src = "src/pcre2_chartables.c.dist", + out = "src/pcre2_chartables.c", +) + +cc_library( + name = "pcre2", + srcs = [ + "src/pcre2_auto_possess.c", + "src/pcre2_compile.c", + "src/pcre2_config.c", + "src/pcre2_context.c", + "src/pcre2_convert.c", + "src/pcre2_dfa_match.c", + "src/pcre2_error.c", + "src/pcre2_extuni.c", + "src/pcre2_find_bracket.c", + "src/pcre2_maketables.c", + "src/pcre2_match.c", + "src/pcre2_match_data.c", + "src/pcre2_newline.c", + "src/pcre2_ord2utf.c", + "src/pcre2_pattern_info.c", + "src/pcre2_script_run.c", + "src/pcre2_serialize.c", + "src/pcre2_string_utils.c", + "src/pcre2_study.c", + "src/pcre2_substitute.c", + "src/pcre2_substring.c", + "src/pcre2_tables.c", + "src/pcre2_ucd.c", + "src/pcre2_ucptables.c", + "src/pcre2_valid_utf.c", + "src/pcre2_xclass.c", + ":pcre2_chartables_c", + ], + hdrs = glob(["src/*.h"]) + [ + ":config_h_generic", + ":pcre2_h_generic", + ], + defines = [ + "HAVE_CONFIG_H", + "PCRE2_CODE_UNIT_WIDTH=8", + "PCRE2_STATIC", + ], + includes = ["src"], + strip_include_prefix = "src", + visibility = ["//visibility:public"], +) + +cc_binary( + name = "pcre2demo", + srcs = ["src/pcre2demo.c"], + visibility = ["//visibility:public"], + deps = [":pcre2"], +) diff --git a/MODULE.bazel b/MODULE.bazel new file mode 100644 index 0000000..e058d5e --- /dev/null +++ b/MODULE.bazel @@ -0,0 +1,8 @@ +module( + name = "pcre2", + version = "10.40", + compatibility_level = 1, +) + +bazel_dep(name = "rules_cc", version = "0.0.1") +bazel_dep(name = "bazel_skylib", version = "1.2.1") diff --git a/WORKSPACE.bazel b/WORKSPACE.bazel new file mode 100644 index 0000000..4ce2c8c --- /dev/null +++ b/WORKSPACE.bazel @@ -0,0 +1 @@ +# See MODULE.bazel