msm_common.bzl 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. load("@bazel_skylib//rules:write_file.bzl", "write_file")
  2. def define_top_level_config(target):
  3. """Define common top-level variables in build.config"""
  4. rule_name = "{}_top_level_config".format(target)
  5. write_file(
  6. name = rule_name,
  7. out = "build.config.bazel.top.level.{}".format(target),
  8. content = [
  9. "# === define_top_level_config ===",
  10. "BUILDING_WITH_BAZEL=true",
  11. "# === end define_top_level_config ===",
  12. "", # Needed for newline at end of file
  13. ],
  14. )
  15. return ":{}".format(rule_name)
  16. def gen_config_without_source_lines(build_config, target):
  17. """Replace "." or "source" lines in build.config files with shell null operator"""
  18. rule_name = "{}.{}".format(target, build_config)
  19. out_file_name = rule_name + ".generated"
  20. native.genrule(
  21. name = rule_name,
  22. srcs = [build_config],
  23. outs = [out_file_name],
  24. cmd_bash = """
  25. sed -e 's/^ *\\. /: # &/' \
  26. -e 's/^ *source /: # &/' \
  27. $(location {}) > "$@"
  28. """.format(build_config),
  29. )
  30. return ":" + rule_name
  31. def get_out_dir(msm_target, variant):
  32. if "allyes" in msm_target:
  33. return "out/msm-kernel-{}-{}".format(msm_target.replace("_", "-"), variant.replace("-", "_"))
  34. return "out/msm-kernel-{}-{}".format(msm_target.replace("-", "_"), variant.replace("-", "_"))
  35. def define_signing_keys():
  36. native.genrule(
  37. name = "signing_key",
  38. srcs = ["//msm-kernel:certs/qcom_x509.genkey"],
  39. outs = ["signing_key.pem"],
  40. tools = ["//prebuilts/build-tools:linux-x86/bin/openssl"],
  41. cmd_bash = """
  42. $(location //prebuilts/build-tools:linux-x86/bin/openssl) req -new -nodes -utf8 -sha256 -days 36500 \
  43. -batch -x509 -config $(location //msm-kernel:certs/qcom_x509.genkey) \
  44. -outform PEM -out "$@" -keyout "$@"
  45. """,
  46. )
  47. native.genrule(
  48. name = "verity_key",
  49. srcs = ["//msm-kernel:certs/qcom_x509.genkey"],
  50. outs = ["verity_cert.pem", "verity_key.pem"],
  51. tools = ["//prebuilts/build-tools:linux-x86/bin/openssl"],
  52. cmd_bash = """
  53. $(location //prebuilts/build-tools:linux-x86/bin/openssl) req -new -nodes -utf8 -newkey rsa:1024 -days 36500 \
  54. -batch -x509 -config $(location //msm-kernel:certs/qcom_x509.genkey) \
  55. -outform PEM -out $(location verity_cert.pem) -keyout $(location verity_key.pem)
  56. """,
  57. )