1################################################################################ 2# Protocol Buffers Compiler - PHP code generator 3################################################################################ 4 5load("@rules_cc//cc:defs.bzl", "cc_library") 6load("@rules_pkg//pkg:mappings.bzl", "pkg_files", "strip_prefix") 7load("//build_defs:cpp_opts.bzl", "COPTS") 8 9cc_library( 10 name = "names", 11 srcs = ["names.cc"], 12 hdrs = ["names.h"], 13 copts = COPTS, 14 strip_include_prefix = "/src", 15 visibility = ["//visibility:public"], 16 deps = [ 17 "//src/google/protobuf", 18 "//src/google/protobuf:port", 19 "//src/google/protobuf/compiler:code_generator", 20 "@com_google_absl//absl/strings", 21 ], 22) 23 24cc_library( 25 name = "php", 26 srcs = ["php_generator.cc"], 27 hdrs = ["php_generator.h"], 28 copts = COPTS, 29 strip_include_prefix = "/src", 30 visibility = [ 31 "//pkg:__pkg__", 32 "//src/google/protobuf/compiler:__pkg__", 33 ], 34 deps = [ 35 ":names", 36 "//src/google/protobuf", 37 "//src/google/protobuf:port", 38 "//src/google/protobuf/compiler:code_generator", 39 "//src/google/protobuf/compiler:retention", 40 "//src/google/protobuf/io", 41 "//src/google/protobuf/io:printer", 42 "@com_google_absl//absl/container:flat_hash_map", 43 "@com_google_absl//absl/container:flat_hash_set", 44 "@com_google_absl//absl/log:absl_log", 45 "@com_google_absl//absl/strings", 46 ], 47) 48 49cc_test( 50 name = "generator_unittest", 51 srcs = ["generator_unittest.cc"], 52 deps = [ 53 ":php", 54 "//:protobuf", 55 "//src/google/protobuf/compiler:command_line_interface_tester", 56 "@com_google_googletest//:gtest", 57 "@com_google_googletest//:gtest_main", 58 ], 59) 60 61################################################################################ 62# Distribution packaging 63################################################################################ 64 65pkg_files( 66 name = "dist_files", 67 srcs = glob(["**/*"]), 68 strip_prefix = strip_prefix.from_root(""), 69 visibility = ["//src:__pkg__"], 70) 71 72filegroup( 73 name = "test_srcs", 74 srcs = glob( 75 [ 76 "*_test.cc", 77 "*unittest.cc", 78 ], 79 allow_empty = True, 80 ), 81 visibility = ["//src/google/protobuf/compiler:__pkg__"], 82) 83