BUILD.redis 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. load("@rules_foreign_cc//foreign_cc:defs.bzl", "make")
  2. exports_files(
  3. [
  4. "redis-server.exe",
  5. "redis-cli.exe",
  6. ],
  7. visibility = ["//visibility:public"],
  8. )
  9. filegroup(
  10. name = "all_srcs",
  11. srcs = glob(
  12. include = ["**"],
  13. exclude = ["*.bazel"],
  14. ),
  15. )
  16. make(
  17. name = "redis",
  18. args = [
  19. "BUILD_TLS=yes",
  20. "-s",
  21. ],
  22. copts = [
  23. "-DLUA_USE_MKSTEMP",
  24. "-Wno-pragmas",
  25. "-Wno-empty-body",
  26. "-fPIC",
  27. ],
  28. visibility = ["//visibility:public"],
  29. lib_source = ":all_srcs",
  30. deps = [
  31. "@openssl//:openssl",
  32. ],
  33. out_binaries = [
  34. "redis-server",
  35. "redis-cli"
  36. ]
  37. )
  38. genrule_cmd = select({
  39. "@platforms//os:osx": """
  40. unset CC LDFLAGS CXX CXXFLAGS
  41. tmpdir="redis.tmp"
  42. p=$(location Makefile)
  43. cp -p -L -R -- "$${p%/*}" "$${tmpdir}"
  44. chmod +x "$${tmpdir}"/deps/jemalloc/configure
  45. parallel="$$(getconf _NPROCESSORS_ONLN || echo 1)"
  46. make -s -C "$${tmpdir}" -j"$${parallel}" V=0 CFLAGS="$${CFLAGS-} -DLUA_USE_MKSTEMP -Wno-pragmas -Wno-empty-body"
  47. mv "$${tmpdir}"/src/redis-server $(location redis-server)
  48. chmod +x $(location redis-server)
  49. mv "$${tmpdir}"/src/redis-cli $(location redis-cli)
  50. chmod +x $(location redis-cli)
  51. rm -r -f -- "$${tmpdir}"
  52. """,
  53. "//conditions:default": """
  54. cp $(RULEDIR)/redis/bin/redis-server $(location redis-server)
  55. cp $(RULEDIR)/redis/bin/redis-cli $(location redis-cli)
  56. """
  57. })
  58. genrule_srcs = select({
  59. "@platforms//os:osx": glob(["**"]),
  60. "//conditions:default": [":redis"],
  61. })
  62. genrule(
  63. name = "bin",
  64. srcs = genrule_srcs,
  65. outs = [
  66. "redis-server",
  67. "redis-cli",
  68. ],
  69. cmd = genrule_cmd,
  70. visibility = ["//visibility:public"],
  71. tags = ["local"],
  72. )