BUILD.bazel 2.6 KB

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