Browse Source

Continue merge cmake and jinja generator
ae553e8c277c98241e7ae89f693ae7e7b3dc5c98

dimdim11 9 months ago
parent
commit
3341663f8c

+ 2 - 2
build/conf/bison_lex.conf

@@ -134,7 +134,7 @@ macro USE_OLD_FLEX() {
 macro _SRC("y", SRC, SRCFLAGS...) {
 macro _SRC("y", SRC, SRCFLAGS...) {
     .PEERDIR=build/induced/by_bison
     .PEERDIR=build/induced/by_bison
     .CMD=${tool:"contrib/tools/bison"} $BISON_FLAGS --m4=${tool:"contrib/tools/m4"} $_BISON_HEADER ${hide:_BISON_GEN_EXT} -o ${nopath;output;suf=$_BISON_GEN_EXT:SRC} ${input:SRC} ${SRCFLAGS} ${kv;hide:"p YC"} ${kv;hide:"pc light-green"} && $_BISON_PP
     .CMD=${tool:"contrib/tools/bison"} $BISON_FLAGS --m4=${tool:"contrib/tools/m4"} $_BISON_HEADER ${hide:_BISON_GEN_EXT} -o ${nopath;output;suf=$_BISON_GEN_EXT:SRC} ${input:SRC} ${SRCFLAGS} ${kv;hide:"p YC"} ${kv;hide:"pc light-green"} && $_BISON_PP
-    .SEM=target_bison_parser PRIVATE ${input:SRC} ${output;nopath;noext;hide;suf=${OBJ_SUF}.o:SRC} ${nopath;noext;output;hide:SRC.h} ${nopath;noext;output;addincl;hide:SRC.h} && set_global_flags BISON_FLAGS $BISON_FLAGS && conan_require_tool m4/1.4.19 && conan_import '"bin, m4* -> ./bin/m4/bin"' && conan_require_tool bison/3.8.2 && conan_import '"bin, bison* -> ./bin/bison/bin"' && conan_import '"res, * -> ./bin/bison/res"' && platform_vars-BISON_FLAGS ${quo:BISON_FLAGS} && conan-tool_requires m4/1.4.19 && conan-imports 'bin, m4* -> ./bin/m4/bin' && conan-tool_requires bison/3.8.2 && conan-imports 'bin, bison* -> ./bin/bison/bin' && conan-imports 'res, * -> ./bin/bison/res'
+    .SEM=target_bison_parser PRIVATE ${input:SRC} ${output;nopath;noext;hide;suf=${OBJ_SUF}.o:SRC} ${nopath;noext;output;hide:SRC.h} ${nopath;noext;output;addincl;hide:SRC.h} && set_global_flags BISON_FLAGS $BISON_FLAGS && conan_require_tool m4/1.4.19 && conan_import '"bin, m4* -> ./bin/m4/bin"' && conan_require_tool bison/3.8.2 && conan_import '"bin, bison* -> ./bin/bison/bin"' && conan_import '"res, * -> ./bin/bison/res"' && target_macroses-ITEM && target_macroses-macro target_bison_parser && target_macroses-args PRIVATE ${input:SRC} ${output;nopath;noext;hide;suf=${OBJ_SUF}.o:SRC} ${nopath;noext;output;hide:SRC.h} ${nopath;noext;output;addincl;hide:SRC.h} && platform_vars-BISON_FLAGS ${quo:BISON_FLAGS} && conan-tool_requires m4/1.4.19 && conan-imports 'bin, m4* -> ./bin/m4/bin' && conan-tool_requires bison/3.8.2 && conan-imports 'bin, bison* -> ./bin/bison/bin' && conan-imports 'res, * -> ./bin/bison/res'
 }
 }
 
 
 macro _SRC("ypp", SRC, SRCFLAGS...) {
 macro _SRC("ypp", SRC, SRCFLAGS...) {
@@ -146,7 +146,7 @@ macro _SRC("ypp", SRC, SRCFLAGS...) {
 macro _SRC("l", SRC, SRCFLAGS...) {
 macro _SRC("l", SRC, SRCFLAGS...) {
     .CMD=$_FLEX_TOOL $LEX_FLAGS ${SRCFLAGS} $_FLEX_HEADER ${hide:_FLEX_GEN_EXT} -o${output;suf=$_FLEX_GEN_EXT:SRC} ${output_include;hide:"util/system/compiler.h"} ${input:SRC} ${kv;hide:"p LX"} ${kv;hide:"pc yellow"}
     .CMD=$_FLEX_TOOL $LEX_FLAGS ${SRCFLAGS} $_FLEX_HEADER ${hide:_FLEX_GEN_EXT} -o${output;suf=$_FLEX_GEN_EXT:SRC} ${output_include;hide:"util/system/compiler.h"} ${input:SRC} ${kv;hide:"p LX"} ${kv;hide:"pc yellow"}
     .ADDINCL=$_FLEX_TOOL_DIR
     .ADDINCL=$_FLEX_TOOL_DIR
-    .SEM=target_flex_lexers ${tool;hide:_FLEX_TOOL} ${output;hide;suf=${OBJ_SUF}.o:SRC} ${input:SRC} && set_global_flags LEX_FLAGS $LEX_FLAGS && platform_vars-LEX_FLAGS ${quo:LEX_FLAGS}
+    .SEM=target_flex_lexers ${tool;hide:_FLEX_TOOL} ${output;hide;suf=${OBJ_SUF}.o:SRC} ${input:SRC} && target_macroses-ITEM && target_macroses-macro target_flex_lexers && target_macroses-args ${tool;hide:_FLEX_TOOL} ${output;hide;suf=${OBJ_SUF}.o:SRC} ${input:SRC} && set_global_flags LEX_FLAGS $LEX_FLAGS && platform_vars-LEX_FLAGS ${quo:LEX_FLAGS}
 }
 }
 
 
 # tag:src-processing
 # tag:src-processing

+ 1 - 1
build/conf/fbs.conf

@@ -39,7 +39,7 @@ _GO_FLATC_IMPORTS=\
 # tag:fbs tag:cpp-specific
 # tag:fbs tag:cpp-specific
 macro _CPP_FLATC_CMD(SRC, SRCFLAGS...) {
 macro _CPP_FLATC_CMD(SRC, SRCFLAGS...) {
     .CMD=${cwd:ARCADIA_BUILD_ROOT} $YMAKE_PYTHON3 ${input:"build/scripts/cpp_flatc_wrapper.py"} ${tool:FLATC} --no-warnings --cpp --keep-prefix --gen-mutable --schema -b --yandex-maps-iter --gen-object-api --filename-suffix .fbs ${FLATC_FLAGS_VALUE} ${pre=-I :_FLATC__INCLUDE} -o ${output;main;norel:SRC.h} ${output;hide;norel:SRC.cpp} ${input:SRC} ${output;hide;noext;norel:SRC.iter.fbs.h} ${output;noauto;hide;noext;norel:SRC.bfbs} ${kv;hide:"p FL"} ${kv;hide:"pc light-green"} ${hide:FBS_FAKEID}
     .CMD=${cwd:ARCADIA_BUILD_ROOT} $YMAKE_PYTHON3 ${input:"build/scripts/cpp_flatc_wrapper.py"} ${tool:FLATC} --no-warnings --cpp --keep-prefix --gen-mutable --schema -b --yandex-maps-iter --gen-object-api --filename-suffix .fbs ${FLATC_FLAGS_VALUE} ${pre=-I :_FLATC__INCLUDE} -o ${output;main;norel:SRC.h} ${output;hide;norel:SRC.cpp} ${input:SRC} ${output;hide;noext;norel:SRC.iter.fbs.h} ${output;noauto;hide;noext;norel:SRC.bfbs} ${kv;hide:"p FL"} ${kv;hide:"pc light-green"} ${hide:FBS_FAKEID}
-    .SEM=target_fbs_source PRIVATE ${input:SRC} ${FLATC_FLAGS_VALUE} ${pre=-I :_FLATC__INCLUDE} ${output;hide;norel:SRC.h} ${output;hide;norel:SRC.cpp} ${output;hide;noext;norel:SRC.iter.fbs.h} ${output;noauto;hide;noext;norel:SRC.bfbs} ${hide;tool:FLATC} && set_global_flags FBS_CPP_FLAGS --no-warnings --cpp --keep-prefix --gen-mutable --schema -b --yandex-maps-iter --gen-object-api --filename-suffix .fbs && platform_vars-FBS_CPP_FLAGS "--no-warnings --cpp --keep-prefix --gen-mutable --schema -b --yandex-maps-iter --gen-object-api --filename-suffix .fbs" ${input;hide:"build/scripts/cpp_flatc_wrapper.py"}
+    .SEM=target_fbs_source PRIVATE ${input:SRC} ${FLATC_FLAGS_VALUE} ${pre=-I :_FLATC__INCLUDE} ${output;hide;norel:SRC.h} ${output;hide;norel:SRC.cpp} ${output;hide;noext;norel:SRC.iter.fbs.h} ${output;noauto;hide;noext;norel:SRC.bfbs} ${hide;tool:FLATC} && target_macroses-ITEM && target_macroses-macro target_fbs_source && target_macroses-args PRIVATE ${input:SRC} ${FLATC_FLAGS_VALUE} ${pre=-I :_FLATC__INCLUDE} ${output;hide;norel:SRC.h} ${output;hide;norel:SRC.cpp} ${output;hide;noext;norel:SRC.iter.fbs.h} ${output;noauto;hide;noext;norel:SRC.bfbs} ${hide;tool:FLATC} && set_global_flags FBS_CPP_FLAGS --no-warnings --cpp --keep-prefix --gen-mutable --schema -b --yandex-maps-iter --gen-object-api --filename-suffix .fbs && platform_vars-FBS_CPP_FLAGS "--no-warnings --cpp --keep-prefix --gen-mutable --schema -b --yandex-maps-iter --gen-object-api --filename-suffix .fbs" ${input;hide:"build/scripts/cpp_flatc_wrapper.py"}
     .PEERDIR=contrib/libs/flatbuffers
     .PEERDIR=contrib/libs/flatbuffers
 }
 }
 
 

+ 2 - 1
build/conf/opensource.conf

@@ -83,9 +83,10 @@ CMAKE_TARGET_ARTEFACT_RENAME_RULES=
 ### changes exported cmake target name but preserve generated artefact file name.
 ### changes exported cmake target name but preserve generated artefact file name.
 macro CMAKE_EXPORTED_TARGET_NAME(Name) {
 macro CMAKE_EXPORTED_TARGET_NAME(Name) {
     SET(CMAKE_TARGET_NAME $Name)
     SET(CMAKE_TARGET_NAME $Name)
-    SET(CMAKE_TARGET_ARTEFACT_RENAME_RULES && set_target_property OUTPUT_NAME $REALPRJNAME)
+    SET(CMAKE_TARGET_ARTEFACT_RENAME_RULES && set_target_property OUTPUT_NAME $REALPRJNAME && target_properties-ITEM && target_properties-name OUTPUT_NAME && target_properties-value $REALPRJNAME)
 }
 }
 
 
 macro ALLOCATOR_IMPL() {
 macro ALLOCATOR_IMPL() {
     SET(CPP_LIBRARY_INDUCED_SEM_PROPERTY target_allocator)
     SET(CPP_LIBRARY_INDUCED_SEM_PROPERTY target_allocator)
+    SET(CPP_LIBRARY_INDUCED_LINKS allocators)
 }
 }

+ 2 - 2
build/conf/project_specific/yql_udf.conf

@@ -185,7 +185,7 @@ multimodule YQL_UDF {
     module YQL_UDF_SHARED: YQL_UDF_MODULE {
     module YQL_UDF_SHARED: YQL_UDF_MODULE {
         .SEM=UDF_SHARED_SEM
         .SEM=UDF_SHARED_SEM
         CMAKE_TARGET_NAME=${REALPRJNAME}.dyn
         CMAKE_TARGET_NAME=${REALPRJNAME}.dyn
-        CMAKE_TARGET_ARTEFACT_RENAME_RULES=&& set_target_property OUTPUT_NAME $REALPRJNAME
+        CMAKE_TARGET_ARTEFACT_RENAME_RULES=&& set_target_property OUTPUT_NAME $REALPRJNAME && target_properties-ITEM && target_properties-name OUTPUT_NAME && target_properties-value $REALPRJNAME
         NO_CLANG_TIDY()
         NO_CLANG_TIDY()
     }
     }
     module YQL_UDF_STATIC: _DLL_COMPATIBLE_LIBRARY {
     module YQL_UDF_STATIC: _DLL_COMPATIBLE_LIBRARY {
@@ -206,7 +206,7 @@ multimodule YQL_UDF_YDB {
     module YQL_UDF_SHARED: YQL_UDF_YDB_MODULE {
     module YQL_UDF_SHARED: YQL_UDF_YDB_MODULE {
         .SEM=UDF_SHARED_SEM
         .SEM=UDF_SHARED_SEM
         CMAKE_TARGET_NAME=${REALPRJNAME}.dyn
         CMAKE_TARGET_NAME=${REALPRJNAME}.dyn
-        CMAKE_TARGET_ARTEFACT_RENAME_RULES=&& set_target_property OUTPUT_NAME $REALPRJNAME
+        CMAKE_TARGET_ARTEFACT_RENAME_RULES=&& set_target_property OUTPUT_NAME $REALPRJNAME && target_properties-ITEM && target_properties-name OUTPUT_NAME && target_properties-value $REALPRJNAME
         NO_CLANG_TIDY()
         NO_CLANG_TIDY()
     }
     }
     module YQL_UDF_STATIC: _DLL_COMPATIBLE_LIBRARY {
     module YQL_UDF_STATIC: _DLL_COMPATIBLE_LIBRARY {

+ 1 - 1
build/conf/project_specific/yt.conf

@@ -1,5 +1,5 @@
 macro GENERATE_YT_RECORD(Yaml, OUTPUT_INCLUDES[]) {
 macro GENERATE_YT_RECORD(Yaml, OUTPUT_INCLUDES[]) {
     .CMD=${tool:"yt/yt/tools/record_codegen"} --input ${input:Yaml} --output-root $ARCADIA_BUILD_ROOT --output-cpp ${output;norel;noext;suf=.record.cpp:Yaml} ${output;hide;norel;noext;suf=.record.h:Yaml} ${pre=--output-include :OUTPUT_INCLUDES} ${output_include;hide:OUTPUT_INCLUDES} ${output_include;hide:"yt/yt/client/table_client/record_codegen_deps.h"} ${kv;hide:"p RC"}
     .CMD=${tool:"yt/yt/tools/record_codegen"} --input ${input:Yaml} --output-root $ARCADIA_BUILD_ROOT --output-cpp ${output;norel;noext;suf=.record.cpp:Yaml} ${output;hide;norel;noext;suf=.record.h:Yaml} ${pre=--output-include :OUTPUT_INCLUDES} ${output_include;hide:OUTPUT_INCLUDES} ${output_include;hide:"yt/yt/client/table_client/record_codegen_deps.h"} ${kv;hide:"p RC"}
-    .SEM=find_package Python3 && add_custom_command OUTPUT ${output;norel;noext;suf=.record.cpp:Yaml} ${output;norel;noext;suf=.record.h:Yaml} DEPENDS ${input:Yaml} ${input:"yt/yt/tools/record_codegen/__main__.py"} ${input:"yt/python/yt/record_codegen_helpers/__init__.py"} COMMAND ${CMAKE_COMMAND} -E env "PYTHONPATH=$ENV{PYTHONPATH}:${ARCADIA_ROOT}/yt/python/yt" ${Python3_EXECUTABLE} ${input:"yt/yt/tools/record_codegen/__main__.py"} --input ${input:Yaml} --output-root $ARCADIA_BUILD_ROOT --output-cpp ${output;norel;noext;suf=.record.cpp:Yaml} ${pre=--output-include :OUTPUT_INCLUDES} ${output;hide;norel;noext;suf=.record.h:Yaml}
+    .SEM=find_package Python3 && packages-ITEM && packages-name Python3 && mpackages-ITEM && mpackages-name Python3 && add_custom_command OUTPUT ${output;norel;noext;suf=.record.cpp:Yaml} ${output;norel;noext;suf=.record.h:Yaml} DEPENDS ${input:Yaml} ${input:"yt/yt/tools/record_codegen/__main__.py"} ${input:"yt/python/yt/record_codegen_helpers/__init__.py"} COMMAND ${CMAKE_COMMAND} -E env "PYTHONPATH=$ENV{PYTHONPATH}:${ARCADIA_ROOT}/yt/python/yt" ${Python3_EXECUTABLE} ${input:"yt/yt/tools/record_codegen/__main__.py"} --input ${input:Yaml} --output-root $ARCADIA_BUILD_ROOT --output-cpp ${output;norel;noext;suf=.record.cpp:Yaml} ${pre=--output-include :OUTPUT_INCLUDES} ${output;hide;norel;noext;suf=.record.h:Yaml} && target_commands-ITEM && target_commands-macro add_custom_command && target_commands-args OUTPUT ${output;norel;noext;suf=.record.cpp:Yaml} ${output;norel;noext;suf=.record.h:Yaml} DEPENDS ${input:Yaml} ${input:"yt/yt/tools/record_codegen/__main__.py"} ${input:"yt/python/yt/record_codegen_helpers/__init__.py"} COMMAND ${CMAKE_COMMAND} -E env "PYTHONPATH=$ENV{PYTHONPATH}:${ARCADIA_ROOT}/yt/python/yt" ${Python3_EXECUTABLE} ${input:"yt/yt/tools/record_codegen/__main__.py"} --input ${input:Yaml} --output-root $ARCADIA_BUILD_ROOT --output-cpp ${output;norel;noext;suf=.record.cpp:Yaml} ${pre=--output-include :OUTPUT_INCLUDES} ${output;hide;norel;noext;suf=.record.h:Yaml}
     PEERDIR(yt/yt/client)
     PEERDIR(yt/yt/client)
 }
 }

+ 15 - 7
build/conf/proto.conf

@@ -193,7 +193,7 @@ macro JAVA_PROTO_PLUGIN(NAME, TOOL, DEPS[]) {
 }
 }
 
 
 macro _ADD_SEM_PROP_IF_NON_EMPTY(Prop, Args...) {
 macro _ADD_SEM_PROP_IF_NON_EMPTY(Prop, Args...) {
-    .SEM=${pre=&& set_target_property $Prop :Args}
+    .SEM=${pre=&& set_target_property $Prop :Args} ${pre=&& target_properties-ITEM && target_properties-name $Prop && target_properties-value :Args}
 }
 }
 
 
 # tag:proto tag:java-specific
 # tag:proto tag:java-specific
@@ -208,7 +208,7 @@ macro WITH_KOTLIN_GRPC() {
 
 
 # tag:proto tag:cpp-specific
 # tag:proto tag:cpp-specific
 macro _ADD_CPP_PROTO_OUT(Suf) {
 macro _ADD_CPP_PROTO_OUT(Suf) {
-    .SEM=append_target_property PROTOC_EXTRA_OUTS $Suf ${output;hide;suf=.o:Suf} $_ADD_SEM_PROP_IF_NON_EMPTY(PROTO_NAMESPACE $PROTO_NAMESPACE)
+    .SEM=append_target_property PROTOC_EXTRA_OUTS $Suf && protoc_extra_outs $Suf ${output;hide;suf=.o:Suf} $_ADD_SEM_PROP_IF_NON_EMPTY(PROTO_NAMESPACE $PROTO_NAMESPACE)
     SET_APPEND(CPP_PROTO_OUTS \${output;norel;nopath;noext;suf=$Suf:File})
     SET_APPEND(CPP_PROTO_OUTS \${output;norel;nopath;noext;suf=$Suf:File})
 
 
     # XXX fix variable expansion in plugins
     # XXX fix variable expansion in plugins
@@ -225,7 +225,7 @@ CPP_PROTOBUF_PEERS=
 ### Define protoc plugin for C++ with given Name that emits code into regular outputs
 ### Define protoc plugin for C++ with given Name that emits code into regular outputs
 ### using Tool. Extra dependencies are passed via DEPS.
 ### using Tool. Extra dependencies are passed via DEPS.
 macro CPP_PROTO_PLUGIN0(NAME, TOOL, DEPS[], EXTRA_OUT_FLAG="") {
 macro CPP_PROTO_PLUGIN0(NAME, TOOL, DEPS[], EXTRA_OUT_FLAG="") {
-    .SEM=target_proto_plugin $NAME ${tool;rootrel:TOOL} ${output;hide;suf=.fake.o:NAME}
+    .SEM=target_proto_plugin $NAME ${tool;rootrel:TOOL} ${output;hide;suf=.fake.o:NAME} && target_macroses-ITEM && target_macroses-macro target_proto_plugin && target_macroses-args $NAME ${tool;rootrel:TOOL} ${output;hide;suf=.fake.o:NAME}
     SET_APPEND(CPP_PROTO_OPTS $_PROTO_PLUGIN_ARGS_BASE($NAME $TOOL $EXTRA_OUT_FLAG))
     SET_APPEND(CPP_PROTO_OPTS $_PROTO_PLUGIN_ARGS_BASE($NAME $TOOL $EXTRA_OUT_FLAG))
 
 
     # XXX fix variable expansion in plugins
     # XXX fix variable expansion in plugins
@@ -384,11 +384,15 @@ macro YT_ORM_PROTO_YSON(OUT_OPTS[], Files...) {
 
 
 }
 }
 
 
-_SEM_CPP_PROTO_CMD=target_proto_messages PRIVATE ${input:File} $CPP_PROTO_OUTS_SEM ${output;hide;suf=${OBJ_SUF}.pb.o:File} $DEFAULT_PROTOC_TOOLS \
+_SEM_CPP_PROTO_CMD=target_proto_messages PRIVATE ${input:File} \
+                   && target_options-privates-ITEM && target_options-privates-option target_proto_messages && target_options-privates-args ${input:File} \
+                   $CPP_PROTO_OUTS_SEM ${output;hide;suf=${OBJ_SUF}.pb.o:File} $DEFAULT_PROTOC_TOOLS \
                    && set_global_flags COMMON_PROTOC_FLAGS \
                    && set_global_flags COMMON_PROTOC_FLAGS \
                    && platform_vars-COMMON_PROTOC_FLAGS "" \
                    && platform_vars-COMMON_PROTOC_FLAGS "" \
                    && target_proto_outs --cpp_out=$ARCADIA_BUILD_ROOT/$PROTO_NAMESPACE $PROTOC_STYLEGUIDE_OUT \
                    && target_proto_outs --cpp_out=$ARCADIA_BUILD_ROOT/$PROTO_NAMESPACE $PROTOC_STYLEGUIDE_OUT \
-                   && target_proto_addincls ./$PROTO_NAMESPACE $ARCADIA_ROOT/$PROTO_NAMESPACE ${_PROTO__INCLUDE} $ARCADIA_BUILD_ROOT $PROTOBUF_PATH
+                   && target_macroses-ITEM && target_macroses-macro target_proto_outs && target_macroses-args --cpp_out=$ARCADIA_BUILD_ROOT/$PROTO_NAMESPACE $PROTOC_STYLEGUIDE_OUT \
+                   && target_proto_addincls ./$PROTO_NAMESPACE $ARCADIA_ROOT/$PROTO_NAMESPACE ${_PROTO__INCLUDE} $ARCADIA_BUILD_ROOT $PROTOBUF_PATH \
+                   && target_macroses-ITEM && target_macroses-macro target_proto_addincls && target_macroses-args ./$PROTO_NAMESPACE $ARCADIA_ROOT/$PROTO_NAMESPACE ${_PROTO__INCLUDE} $ARCADIA_BUILD_ROOT $PROTOBUF_PATH
 
 
 # tag:proto
 # tag:proto
 macro _CPP_PROTO_CMD(File) {
 macro _CPP_PROTO_CMD(File) {
@@ -403,11 +407,15 @@ macro _CPP_VANILLA_PROTO_CMD(File) {
     .PEERDIR=contrib/libs/protobuf_std
     .PEERDIR=contrib/libs/protobuf_std
 }
 }
 
 
-_SEM_CPP_EV_CMD=target_ev_messages PRIVATE ${input:File} $CPP_EV_OUTS_SEM ${output;hide;suf=${OBJ_SUF}.pb.o:File} ${hide;tool:"tools/event2cpp/bin"} $DEFAULT_PROTOC_TOOLS \
+_SEM_CPP_EV_CMD=target_ev_messages PRIVATE ${input:File} \
+                   && target_options-privates-ITEM && target_options-privates-option target_ev_messages && target_options-privates-args ${input:File} \
+                   $CPP_EV_OUTS_SEM ${output;hide;suf=${OBJ_SUF}.pb.o:File} ${hide;tool:"tools/event2cpp/bin"} $DEFAULT_PROTOC_TOOLS \
                    && set_global_flags COMMON_PROTOC_FLAGS \
                    && set_global_flags COMMON_PROTOC_FLAGS \
                    && platform_vars-COMMON_PROTOC_FLAGS "" \
                    && platform_vars-COMMON_PROTOC_FLAGS "" \
                    && target_proto_outs --cpp_out=$ARCADIA_BUILD_ROOT/$PROTO_NAMESPACE $PROTOC_STYLEGUIDE_OUT --event2cpp_out=$ARCADIA_BUILD_ROOT/$PROTO_NAMESPACE \
                    && target_proto_outs --cpp_out=$ARCADIA_BUILD_ROOT/$PROTO_NAMESPACE $PROTOC_STYLEGUIDE_OUT --event2cpp_out=$ARCADIA_BUILD_ROOT/$PROTO_NAMESPACE \
-                   && target_proto_addincls ./$PROTO_NAMESPACE $ARCADIA_ROOT/$PROTO_NAMESPACE ${_PROTO__INCLUDE} $ARCADIA_BUILD_ROOT $PROTOBUF_PATH $ARCADIA_ROOT/library/cpp/eventlog
+                   && target_macroses-ITEM && target_macroses-macro target_proto_outs && target_macroses-args --cpp_out=$ARCADIA_BUILD_ROOT/$PROTO_NAMESPACE $PROTOC_STYLEGUIDE_OUT --event2cpp_out=$ARCADIA_BUILD_ROOT/$PROTO_NAMESPACE \
+                   && target_proto_addincls ./$PROTO_NAMESPACE $ARCADIA_ROOT/$PROTO_NAMESPACE ${_PROTO__INCLUDE} $ARCADIA_BUILD_ROOT $PROTOBUF_PATH $ARCADIA_ROOT/library/cpp/eventlog \
+                   && target_macroses-ITEM && target_macroses-macro target_proto_addincls && target_macroses-args ./$PROTO_NAMESPACE $ARCADIA_ROOT/$PROTO_NAMESPACE ${_PROTO__INCLUDE} $ARCADIA_BUILD_ROOT $PROTOBUF_PATH $ARCADIA_ROOT/library/cpp/eventlog
 
 
 # tag:proto
 # tag:proto
 macro _CPP_EVLOG_CMD(File) {
 macro _CPP_EVLOG_CMD(File) {

+ 9 - 2
build/conf/swig.conf

@@ -46,7 +46,7 @@ _EXPLICIT_SWIG_JAVA_SOURCES=
 _EXPLICIT_SWIG_IFACE_SOURCES=
 _EXPLICIT_SWIG_IFACE_SOURCES=
 macro _EXPORT_JAVA_BINDINGS(JavaSrcs...) {
 macro _EXPORT_JAVA_BINDINGS(JavaSrcs...) {
     SET_APPEND(_EXPLICIT_SWIG_JAVA_SOURCES ${input:JavaSrcs})
     SET_APPEND(_EXPLICIT_SWIG_JAVA_SOURCES ${input:JavaSrcs})
-    .SEM=find_package SWIG COMPONENTS java && find_package Java && include UseSWIG && include UseJava ${input;hide:JavaSrcs} ${output;hide;pre=$_HASH_HELPER($Args):".o"}
+    .SEM=find_package SWIG COMPONENTS java && find_package Java && packages-ITEM && packages-name SWIG && packages-components java && mpackages-ITEM && mpackages-name SWIG && mpackages-components java && packages-ITEM && packages-name Java && mpackages-ITEM && mpackages-name Java && include UseSWIG && include UseJava && includes UseSWIG && includes UseJava ${input;hide:JavaSrcs} ${output;hide;pre=$_HASH_HELPER($Args):".o"}
 }
 }
 macro _EXPORT_SWIG_SOURCES(SwigSrcs...) {
 macro _EXPORT_SWIG_SOURCES(SwigSrcs...) {
     SET_APPEND(_EXPLICIT_SWIG_IFACE_SOURCES ${input:SwigSrcs})
     SET_APPEND(_EXPLICIT_SWIG_IFACE_SOURCES ${input:SwigSrcs})
@@ -65,12 +65,19 @@ macro _JNI_JAVA_SWIG_SRCS(Srcs...) {
 SWIG_JNI_BINDINGS_SEM= \
 SWIG_JNI_BINDINGS_SEM= \
     add_swig_jni_library ${MODDIR} ${REALPRJNAME}-cpp GEN_JAVA_FILES_LIST ${"$"}{CMAKE_CURRENT_BINARY_DIR}/swig_gen_java.lst SOURCES ${_EXPLICIT_SWIG_IFACE_SOURCES} && \
     add_swig_jni_library ${MODDIR} ${REALPRJNAME}-cpp GEN_JAVA_FILES_LIST ${"$"}{CMAKE_CURRENT_BINARY_DIR}/swig_gen_java.lst SOURCES ${_EXPLICIT_SWIG_IFACE_SOURCES} && \
     set_target_property OUTPUT_NAME $REALPRJNAME && \
     set_target_property OUTPUT_NAME $REALPRJNAME && \
+    target_properties-ITEM && target_properties-name OUTPUT_NAME && target_properties-value $REALPRJNAME && \
     ${VCS_INFO_SEM} && \
     ${VCS_INFO_SEM} && \
     target_include_directories PUBLIC $_C__INCLUDE_GLOBAL && \
     target_include_directories PUBLIC $_C__INCLUDE_GLOBAL && \
+    target_options-publics-ITEM && target_options-publics-option target_include_directories && target_options-publics-args $_C__INCLUDE_GLOBAL && \
     target_include_directories PRIVATE $_C__INCLUDE_OWNED && \
     target_include_directories PRIVATE $_C__INCLUDE_OWNED && \
+    target_options-privates-ITEM && target_options-privates-option target_include_directories && target_options-privates-args $_C__INCLUDE_OWNED && \
     target_compile_options PRIVATE $USER_CFLAGS $USER_CXXFLAGS $_SEM_EXTRA_CXX_FLAGS && target_compile_options PUBLIC $USER_CFLAGS_GLOBAL_RAW $USER_CXXFLAGS_GLOBAL_RAW && \
     target_compile_options PRIVATE $USER_CFLAGS $USER_CXXFLAGS $_SEM_EXTRA_CXX_FLAGS && target_compile_options PUBLIC $USER_CFLAGS_GLOBAL_RAW $USER_CXXFLAGS_GLOBAL_RAW && \
+    target_options-privates-ITEM && target_options-privates-option target_compile_options && target_options-privates-args $USER_CFLAGS $USER_CXXFLAGS $_SEM_EXTRA_CXX_FLAGS && \
+    target_options-publics-ITEM && target_options-publics-option target_compile_options && target_options-publics-args $USER_CFLAGS_GLOBAL_RAW $USER_CXXFLAGS_GLOBAL_RAW && \
     target_link_options PRIVATE $LDFLAGS_GLOBAL_RAW $LDFLAGS $OBJADDE_LIB $OBJADDE_LIB_GLOBAL $OBJADDE && \
     target_link_options PRIVATE $LDFLAGS_GLOBAL_RAW $LDFLAGS $OBJADDE_LIB $OBJADDE_LIB_GLOBAL $OBJADDE && \
-    add_jar ${REALPRJNAME} SOURCES $_EXPLICIT_SWIG_JAVA_SOURCES @${"$"}{CMAKE_CURRENT_BINARY_DIR}/swig_gen_java.lst ${hide:TARGET}
+    target_options-privates-ITEM && target_options-privates-option target_link_options && target_options-privates-args $LDFLAGS $OBJADDE_LIB $OBJADDE_LIB_GLOBAL $OBJADDE && \
+    add_jar ${REALPRJNAME} SOURCES $_EXPLICIT_SWIG_JAVA_SOURCES @${"$"}{CMAKE_CURRENT_BINARY_DIR}/swig_gen_java.lst ${hide:TARGET} && \
+    target_commands-ITEM && target_commands-macro add_jar && target_commands-args ${REALPRJNAME} SOURCES $_EXPLICIT_SWIG_JAVA_SOURCES @${"$"}{CMAKE_CURRENT_BINARY_DIR}/swig_gen_java.lst ${hide:TARGET}
 
 
 ### @usage: DLL_JAVA()
 ### @usage: DLL_JAVA()
 ###
 ###

+ 1 - 1
build/export_generators/cmake/conanfile.jinja

@@ -35,4 +35,4 @@ cmake_paths
 {%-     endfor -%}
 {%-     endfor -%}
 {%- endif %}
 {%- endif %}
 
 
-{%- include "[generator]/debug.jinja" ignore missing -%}
+{%- include "[generator]/debug_conan.jinja" ignore missing -%}

+ 21 - 0
build/export_generators/cmake/debug_conan.jinja

@@ -0,0 +1,21 @@
+{%- if dump_sems is defined %}
+
+# vvvvvv SEMANTICS
+{#- replace(' ', ' ') is workaround, else `split` function in C++ receive invalid input -#}
+{%-    set lines = split(dump_sems|replace(' ', ' '), '\n') -%}
+{%-    for line in lines %}
+# {{ line }}
+{%-    endfor %}
+# ^^^^^^ SEMANTICS
+{%- endif -%}
+
+{%- if dump_attrs is defined %}
+
+# vvvvvv ATTRIBUTES
+{#- replace(' ', ' ') is workaround, else `split` function in C++ receive invalid input -#}
+{%-    set lines = split(dump_attrs|replace(' ', ' '), '\n') -%}
+{%-    for line in lines %}
+# {{ line }}
+{%-    endfor %}
+# ^^^^^^ ATTRIBUTES
+{%- endif -%}

+ 5 - 35
build/export_generators/cmake/dir_cmake_lists.jinja

@@ -1,41 +1,11 @@
 {%- include '[generator]/disclaimer.jinja' %}
 {%- include '[generator]/disclaimer.jinja' %}
 {% include 'prologue.cmake' ignore missing -%}
 {% include 'prologue.cmake' ignore missing -%}
 
 
-{%-  for package in packages -%}
-find_package({{ package[0] }} REQUIRED
-{%-      if package[1]|length > 0 %} COMPONENTS
-{%-          for component in package[1] %}
-  {{ component }}
-{%           endfor -%}
-{%-      endif -%}
-)
-{%  endfor -%}
+{%- include "[generator]/dir_packages.jinja" -%}
+{%- include "[generator]/dir_tools.jinja" -%}
+{%- include "[generator]/dir_includes.jinja" -%}
+{%- include "[generator]/dir_macroses.jinja" -%}
+{%- include "[generator]/dir_targets.jinja" -%}
 
 
-{%- if includes is defined -%}
-{%-     for incl in includes -%}
-include({{ incl }})
-{%      endfor -%}
-{%- endif -%}
-
-{%- for subdir in subdirs -%}
-add_subdirectory({{ subdir }})
-{%  endfor -%}
-
-{%- for dir_macro in dir_macros %}
-{{ dir_macro[0] }}(
-{%-     for value in dir_macro[1] %}
-  {{ value }}
-{%-     endfor %}
-)
-{%  endfor -%}
-
-{%- if target is defined -%}
-{%-     include '[generator]/target_cmake_lists.jinja' -%}
-{%- endif -%}
-{%- if extra_targets is defined -%}
-{%-     for target in extra_targets -%}
-{%-         include '[generator]/target_cmake_lists.jinja' -%}
-{%-     endfor -%}
-{%- endif -%}
 {%- include 'epilogue.cmake' ignore missing -%}
 {%- include 'epilogue.cmake' ignore missing -%}
 {%- include "[generator]/debug.jinja" ignore missing -%}
 {%- include "[generator]/debug.jinja" ignore missing -%}

Some files were not shown because too many files changed in this diff