ts_proto.conf 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. _TS_PROTO_OPT=
  2. _TS_PROTO_IMPL_CMD=$_TS_PROJECT_SETUP_CMD \
  3. && $NOTS_TOOL $NOTS_TOOL_BASE_ARGS build-ts-proto $NOTS_TOOL_COMMON_BUILDER_ARGS \
  4. ${_TS_PROTO_OPT} \
  5. --protoc-bin $PROTOC \
  6. --proto-srcs $_TS_PROTO_SRCS_FILES \
  7. --proto-paths ./$PROTO_NAMESPACE $ARCADIA_ROOT/$PROTO_NAMESPACE $_PROTO__INCLUDE $ARCADIA_BUILD_ROOT $PROTOBUF_INCLUDE_PATH \
  8. $_NODE_MODULES_INOUTS $_TS_FILES_INOUTS \
  9. ${hide;input:"package.json"} ${TS_CONFIG_FILES} $_AS_HIDDEN_INPUTS(IN $TS_INPUT_FILES) \
  10. ${hide;output:"package.json"} \
  11. ${hide:PROTO_FAKEID} \
  12. ${hide;kv:"pc magenta"} ${hide;kv:"p TS_PRO"}
  13. ### # internal
  14. module _TS_PROTO_IMPL: _TS_BASE_UNIT {
  15. .CMD=_TS_PROTO_IMPL_CMD
  16. .IGNORED=GENERATE_ENUM_SERIALIZATION GENERATE_ENUM_SERIALIZATION_WITH_HEADER USE_SKIFF CPP_PROTO_PLUGIN2 PY_PROTO_PLUGIN YMAPS_SPROTO RESOURCE
  17. # We need to collect SRCS paths into list to pass to command
  18. .ALIASES=SRCS=_TS_PROTO_SRCS
  19. # PEERDIR should be resolved to DESC_PROTO submodule
  20. SET(PEERDIR_TAGS DESC_PROTO)
  21. # For users to add some conditional config for TS_PROTO, like
  22. # IF (TS_PROTO)
  23. # MESSAGE(Building TS_PROTO!!!)
  24. ENABLE(TS_PROTO)
  25. # Disable linting
  26. NO_LINT()
  27. SET(MODULE_LANG TS)
  28. _PEERDIR_TS_RESOURCE(typescript)
  29. DISABLE(TS_CONFIG_DEDUCE_OUT)
  30. ENABLE(TS_CONFIG_USE_OUTDIR)
  31. _TS_CONFIGURE()
  32. SET_APPEND(_MAKEFILE_INCLUDE_LIKE_DEPS ${CURDIR}/package.json ${CURDIR}/pnpm-lock.yaml ${CURDIR}/${TS_CONFIG_PATH})
  33. _TS_ADD_NODE_MODULES_FOR_BUILDER()
  34. }
  35. ### @usage: _TS_PROTO_SRCS(path1 path2) # internal
  36. macro _TS_PROTO_SRCS(FILES...) {
  37. _SET_APPEND_WITH_DIRECTIVE(_TS_PROTO_SRCS_FILES input $FILES)
  38. }
  39. ### @usage: TS_PROTO_OPT(key1=value1 key2=value2)
  40. ###
  41. ### Overrides default options for `--ts_proto_opt`
  42. ### ([supported options](https://github.com/stephenh/ts-proto?tab=readme-ov-file#supported-options)).
  43. ###
  44. ### Documentation: https://docs.yandex-team.ru/frontend-in-arcadia/references/PROTO_LIBRARY#ts_proto_opt
  45. ###
  46. ### @example
  47. ###
  48. ### TS_PROTO_OPT(env=browser)
  49. ### TS_PROTO_OPT(
  50. ### useJsonName=true
  51. ### useJsonWireFormat=true
  52. ### )
  53. ###
  54. macro TS_PROTO_OPT(OPTS...) {
  55. SET_APPEND(_TS_PROTO_OPT ${pre=--ts-proto-opt :OPTS})
  56. }