xref: /aosp_15_r20/external/protobuf/php/BUILD.bazel (revision 1b3f573f81763fcece89efc2b6a5209149e44ab8)
1# Protobuf PHP runtime
2#
3# See also code generation logic under /src/google/protobuf/compiler/php.
4
5load("@rules_pkg//:pkg.bzl", "pkg_tar")
6load("@rules_pkg//:mappings.bzl", "pkg_files", "pkg_filegroup", "strip_prefix")
7load("//:protobuf_version.bzl", "PROTOBUF_PHP_VERSION")
8
9pkg_files(
10    name = "dist_files",
11    srcs = glob([
12        "ext/google/protobuf/**/*",
13        "src/GPBMetadata/Google/Protobuf/**/*.php",
14        "src/Google/Protobuf/**/*.php",
15        "tests/*.php",
16        "tests/*.sh",
17        "tests/generated_previous/**/*.php",
18        "tests/proto/**/*.proto",
19        "tests/proto_previous/*.proto",
20    ]) + [
21        "BUILD.bazel",
22        "README.md",
23        "REFCOUNTING.md",
24        "composer.json",
25        "generate_descriptor_protos.sh",
26        "generate_test_protos.sh",
27        "release.sh",
28        "src/phpdoc.dist.xml",
29        "tests/valgrind.supp",
30    ],
31    prefix = "php",
32    strip_prefix = strip_prefix.from_pkg(""),
33    visibility = ["//pkg:__pkg__"],
34)
35
36################################################################################
37# PECL .tgz Release
38################################################################################
39
40pkg_files(
41  name = "php_ext_source_files",
42  srcs = glob([
43    "ext/google/protobuf/*.h",
44    "ext/google/protobuf/*.c",
45  ]) + [
46    "//:LICENSE",
47    "ext/google/protobuf/config.m4",
48    "ext/google/protobuf/wkt.inc",
49  ],
50)
51
52pkg_files(
53  name = "utf8_range_files",
54  srcs = [
55    "//third_party/utf8_range:utf8_range_srcs",
56     "//third_party/utf8_range:LICENSE",
57
58  ],
59  prefix = "third_party/utf8_range",
60)
61
62pkg_filegroup(
63  name = "pecl_release_files",
64  srcs = [
65    ":php_ext_source_files",
66    ":utf8_range_files",
67  ],
68  prefix = "protobuf-%s" % PROTOBUF_PHP_VERSION,
69)
70
71# PECL .tgz without package.xml
72pkg_tar(
73  name = "release_without_package",
74  extension = "tgz",
75  srcs = [
76    ":pecl_release_files",
77  ],
78  out = "release_without_package.tgz",
79)
80
81# Generate PECL package.xml
82genrule(
83    name = "generate_package_xml",
84    srcs = [
85      ":release_without_package",
86      "ext/google/protobuf/template_package.xml",
87    ],
88    outs = ["package.xml"],
89    cmd = " ".join([
90      "$(location ext/google/protobuf/generate_package_xml.sh)",
91      "$(location ext/google/protobuf/template_package.xml)",
92      PROTOBUF_PHP_VERSION,
93      "$$(tar -tf $(location :release_without_package) | sed -z -e 's;\\n;,;g')",
94      "$(location package.xml)"
95    ]),
96    tools = ["ext/google/protobuf/generate_package_xml.sh"],
97)
98
99pkg_tar(
100  name = "release",
101  extension = "tgz",
102  srcs = [
103    ":pecl_release_files",
104    ":generate_package_xml",
105  ],
106  out = "protobuf-%s.tgz" % PROTOBUF_PHP_VERSION,
107)