| # Protobuf PHP runtime |
| # |
| # See also code generation logic under /src/google/protobuf/compiler/php. |
| |
| load("@rules_pkg//:pkg.bzl", "pkg_tar") |
| load("@rules_pkg//:mappings.bzl", "pkg_files", "pkg_filegroup", "strip_prefix") |
| load("//:protobuf_version.bzl", "PROTOBUF_PHP_VERSION") |
| |
| pkg_files( |
| name = "dist_files", |
| srcs = glob([ |
| "ext/google/protobuf/**/*", |
| "src/GPBMetadata/Google/Protobuf/**/*.php", |
| "src/Google/Protobuf/**/*.php", |
| "tests/*.php", |
| "tests/*.sh", |
| "tests/generated_previous/**/*.php", |
| "tests/proto/**/*.proto", |
| "tests/proto_previous/*.proto", |
| ]) + [ |
| "BUILD.bazel", |
| "README.md", |
| "REFCOUNTING.md", |
| "composer.json", |
| "generate_descriptor_protos.sh", |
| "generate_test_protos.sh", |
| "release.sh", |
| "src/phpdoc.dist.xml", |
| "tests/valgrind.supp", |
| ], |
| prefix = "php", |
| strip_prefix = strip_prefix.from_pkg(""), |
| visibility = ["//pkg:__pkg__"], |
| ) |
| |
| ################################################################################ |
| # PECL .tgz Release |
| ################################################################################ |
| |
| pkg_files( |
| name = "php_ext_source_files", |
| srcs = glob([ |
| "ext/google/protobuf/*.h", |
| "ext/google/protobuf/*.c", |
| ]) + [ |
| "//:LICENSE", |
| "ext/google/protobuf/config.m4", |
| "ext/google/protobuf/wkt.inc", |
| ], |
| ) |
| |
| pkg_files( |
| name = "utf8_range_files", |
| srcs = [ |
| "//third_party/utf8_range:utf8_range_srcs", |
| "//third_party/utf8_range:LICENSE", |
| |
| ], |
| prefix = "third_party/utf8_range", |
| ) |
| |
| pkg_filegroup( |
| name = "pecl_release_files", |
| srcs = [ |
| ":php_ext_source_files", |
| ":utf8_range_files", |
| ], |
| prefix = "protobuf-%s" % PROTOBUF_PHP_VERSION, |
| ) |
| |
| # PECL .tgz without package.xml |
| pkg_tar( |
| name = "release_without_package", |
| extension = "tgz", |
| srcs = [ |
| ":pecl_release_files", |
| ], |
| out = "release_without_package.tgz", |
| ) |
| |
| # Generate PECL package.xml |
| genrule( |
| name = "generate_package_xml", |
| srcs = [ |
| ":release_without_package", |
| "ext/google/protobuf/template_package.xml", |
| ], |
| outs = ["package.xml"], |
| cmd = " ".join([ |
| "$(location ext/google/protobuf/generate_package_xml.sh)", |
| "$(location ext/google/protobuf/template_package.xml)", |
| PROTOBUF_PHP_VERSION, |
| "$$(tar -tf $(location :release_without_package) | sed -z -e 's;\\n;,;g')", |
| "$(location package.xml)" |
| ]), |
| tools = ["ext/google/protobuf/generate_package_xml.sh"], |
| ) |
| |
| pkg_tar( |
| name = "release", |
| extension = "tgz", |
| srcs = [ |
| ":pecl_release_files", |
| ":generate_package_xml", |
| ], |
| out = "protobuf-%s.tgz" % PROTOBUF_PHP_VERSION, |
| ) |