diff options
Diffstat (limited to 'build/ymake.core.conf')
-rw-r--r-- | build/ymake.core.conf | 42 |
1 files changed, 21 insertions, 21 deletions
diff --git a/build/ymake.core.conf b/build/ymake.core.conf index 081833998b..44b963719a 100644 --- a/build/ymake.core.conf +++ b/build/ymake.core.conf @@ -7141,33 +7141,33 @@ macro CTEMPLATE_VARNAMES(File) { LLVM_OPTS= CLANG_ROOT=$CLANG_RESOURCE_GLOBAL -### @usage: GENERATED_SRCS(srcs... PARSE_META_FROM cpp_srcs... [OUTPUT_INCLUDES output_includes...] [OPTIONS]) -### +### @usage: GENERATED_SRCS(srcs... PARSE_META_FROM cpp_srcs... [OUTPUT_INCLUDES output_includes...] [OPTIONS]) +### ### Generate sources using Jinja 2 template engine. ### -### srcs... - list of text files which will be generated during build time by templates. Each template must be -### placed to the place in source tree where corresponding source file should be generated. Name of +### srcs... - list of text files which will be generated during build time by templates. Each template must be +### placed to the place in source tree where corresponding source file should be generated. Name of ### template must be "<name_of_src_file>.markettemplate". For example if you want to generate file "example.cpp" ### then template should be named "example.cpp.markettemplate". -### PARSE_META_FROM cpp_srcs... - list of C++ source files (.cpp, .h) which will be parsed using clang library -### and metainformation extracted from the files will be made available for templates. Example of -### template code fragment using metainformation: {{ meta.objects["@N@std@S@string"].name }} -### OUTPUT_INCLUDES output_includes... - in cases when build system parser fails to determine all headers -### which generated files include, you can specify additional headers here. In a normal situation this should -### not be needed and this feature could be removed in the future. -### OPTIONS - additional options for code_generator utility -### -### Examples of templates can be found in directory market/tools/code_generator/templates. -### Metainformation does not contain entries for every object declared in C++ files specified in PARSE_META_FROM -### parameter. To include some object into consideration you need to mark it by attribute. Attributes can -### automatically add more attributes to dependent objects. This behavior depends on attribute definition. -### -### More information will be available (eventually:) here: https://wiki.yandex-team.ru/Users/denisk/codegenerator/ -macro GENERATED_SRCS(PARSE_META_FROM{input}[], OUTPUT_INCLUDES[], OPTIONS[], TEMPLATES...) { +### PARSE_META_FROM cpp_srcs... - list of C++ source files (.cpp, .h) which will be parsed using clang library +### and metainformation extracted from the files will be made available for templates. Example of +### template code fragment using metainformation: {{ meta.objects["@N@std@S@string"].name }} +### OUTPUT_INCLUDES output_includes... - in cases when build system parser fails to determine all headers +### which generated files include, you can specify additional headers here. In a normal situation this should +### not be needed and this feature could be removed in the future. +### OPTIONS - additional options for code_generator utility +### +### Examples of templates can be found in directory market/tools/code_generator/templates. +### Metainformation does not contain entries for every object declared in C++ files specified in PARSE_META_FROM +### parameter. To include some object into consideration you need to mark it by attribute. Attributes can +### automatically add more attributes to dependent objects. This behavior depends on attribute definition. +### +### More information will be available (eventually:) here: https://wiki.yandex-team.ru/Users/denisk/codegenerator/ +macro GENERATED_SRCS(PARSE_META_FROM{input}[], OUTPUT_INCLUDES[], OPTIONS[], TEMPLATES...) { .CMD=${tool:"market/tools/code_generator"} --cpp-file ${input:PARSE_META_FROM} --templates-dir / ${ARCADIA_ROOT} --templates ${input:TEMPLATES.markettemplate} --generated-files ${output:TEMPLATES} ${output_include;hide:OUTPUT_INCLUDES} ${output_include;hide:PARSE_META_FROM} --arcadia-root ${ARCADIA_ROOT} --arcadia-build-root ${ARCADIA_BUILD_ROOT} --clang-root $CLANG_ROOT ${OPTIONS} -- $C_FLAGS_PLATFORM $CXXFLAGS ${pre=-I:_C__INCLUDE} -std=c++17 -Wno-unknown-warning-option -Wno-unused-parameter -Wno-undefined-inline -Wno-undefined-internal -Wno-unused-function $LLVM_OPTS -fno-lto PEERDIR(build/platform/clang) -} - +} + ### @usage: CLANG_EMIT_AST_CXX(Input Output Opts...) ### ### Emit Clang AST from .cpp file. CXXFLAGS and LLVM_OPTS are passed in, while CFLAGS and C_FLAGS_PLATFORM are not. |