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)