# 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, )