diff options
author | svidyuk <svidyuk@yandex-team.ru> | 2022-02-10 16:47:12 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:47:12 +0300 |
commit | e23df0602fedd83374b43b6137a296baa2aad3f6 (patch) | |
tree | 1facb78b6535ac70f17ba39ed606d949f932fcea /build/ymake.core.conf | |
parent | 92661c40a019d4809586c8ce322075d197427346 (diff) | |
download | ydb-e23df0602fedd83374b43b6137a296baa2aad3f6.tar.gz |
Restoring authorship annotation for <svidyuk@yandex-team.ru>. Commit 1 of 2.
Diffstat (limited to 'build/ymake.core.conf')
-rw-r--r-- | build/ymake.core.conf | 1536 |
1 files changed, 768 insertions, 768 deletions
diff --git a/build/ymake.core.conf b/build/ymake.core.conf index 081833998b..e7078bcf4c 100644 --- a/build/ymake.core.conf +++ b/build/ymake.core.conf @@ -301,7 +301,7 @@ ENUM_PARSER_TOOL=${tool:"tools/enum_parser/enum_parser"} # tag:python-specific tag:cython-specific CYTHON_SCRIPT=${input:"${ARCADIA_ROOT}/contrib/tools/cython/cython.py"} -RUN_CYTHON_SCRIPT=$YMAKE_PYTHON $CYTHON_SCRIPT +RUN_CYTHON_SCRIPT=$YMAKE_PYTHON $CYTHON_SCRIPT CYTHON_OUTPUT_INCLUDES=\ ${output_include;hide:"contrib/libs/python/Include/compile.h"} \ ${output_include;hide:"contrib/libs/python/Include/frameobject.h"} \ @@ -310,13 +310,13 @@ ${output_include;hide:"contrib/libs/python/Include/pyconfig.h"} \ ${output_include;hide:"contrib/libs/python/Include/Python.h"} \ ${output_include;hide:"contrib/libs/python/Include/pythread.h"} \ ${output_include;hide:"contrib/libs/python/Include/structmember.h"} \ -${output_include;hide:"contrib/libs/python/Include/traceback.h"} \ +${output_include;hide:"contrib/libs/python/Include/traceback.h"} \ ${output_include;hide:"contrib/tools/cython/generated_c_headers.h"} \ ${output_include;hide:"omp.h"} # tag:cython-specific -CYTHON_CPP_OUTPUT_INCLUDES=${output_include;hide:"contrib/tools/cython/generated_cpp_headers.h"} - +CYTHON_CPP_OUTPUT_INCLUDES=${output_include;hide:"contrib/tools/cython/generated_cpp_headers.h"} + # tag:cython-specific CYTHON_OPTIONS= when ($OS_LINUX) { @@ -398,13 +398,13 @@ when ($USE_SYSTEM_PYTHON) { } # tag:python-specific -YMAKE_PYTHON3_PEER=build/platform/python/ymake_python3 -YMAKE_PYTHON3=$YMAKE_PYTHON3_RESOURCE_GLOBAL/python3 -when ($HOST_OS_WINDOWS == "yes") { - YMAKE_PYTHON3=$YMAKE_PYTHON3_RESOURCE_GLOBAL/python3.exe -} - -# tag:python-specific +YMAKE_PYTHON3_PEER=build/platform/python/ymake_python3 +YMAKE_PYTHON3=$YMAKE_PYTHON3_RESOURCE_GLOBAL/python3 +when ($HOST_OS_WINDOWS == "yes") { + YMAKE_PYTHON3=$YMAKE_PYTHON3_RESOURCE_GLOBAL/python3.exe +} + +# tag:python-specific when ($USE_ARCADIA_PYTHON == "no") { SYSINCL+=build/sysincl/python.yml } @@ -446,40 +446,40 @@ macro CHECK_CONFIG_H(Conf) { OUTPUT_INCLUDES=$Conf } -REQUIRED_TRANSITIVE_PEERS= -### @usage REQUIRES(dirs...) -### -### Specify list of dirs which this module must depend on indirectly. -### -### This macro can be used if module depends on the directories specified but they can't be listed -### as direct PEERDIR dependencies (due to public include order or link order issues). -macro REQUIRES(DIRS[]) { - SET_APPEND(REQUIRED_TRANSITIVE_PEERS $DIRS) -} - -CHECK_DEPENDENT_DIRS_TYPES= -CHECK_DEPENDENT_DIRS_RESTRICTIONS= -### @usage CHECK_DEPENDENT_DIRS(DENY|ALLOW_ONLY ([ALL|PEERDIRS|GLOB] dir)...) -### -### Specify project transitive dependencies constraints. -### -### @params: -### 1. DENY: current module can not depend on module from any specified directory neither directly nor transitively. -### 2. ALLOW_ONLY: current module can not depend on module from a dir not specified in the directory list neither directly nor transitively. -### 3. ALL: directory constraints following after this modifier are applied to both transitive PEERDIR dependencies and tool dependencies. -### 4. PEERDIRS: directory constraints following after this modifier are applied to transitive PEERDIR dependencies only. -### 5. GLOB: next directory constraint is an ANT glob pattern. -### 6. EXCEPT: next constraint is an excption for the rest of other rules. -### -### Direcory constraints added before either ALL or PEERDIRS modifier is used are treated as ALL directory constraints. -### -### Note: Can be used multiple times on the same module all specified constraints will be checked. -### All macro invocation for the same module must use same constraints type (DENY or ALLOW_ONLY) -macro CHECK_DEPENDENT_DIRS(TYPE, ALL?"UNUSED":"", PEERDIRS?"PEERDIRS":"ALL", RESTRICTIONS...) { - SET_APPEND(CHECK_DEPENDENT_DIRS_RESTRICTIONS $PEERDIRS $RESTRICTIONS) - SET_APPEND(CHECK_DEPENDENT_DIRS_TYPES $TYPE) -} - +REQUIRED_TRANSITIVE_PEERS= +### @usage REQUIRES(dirs...) +### +### Specify list of dirs which this module must depend on indirectly. +### +### This macro can be used if module depends on the directories specified but they can't be listed +### as direct PEERDIR dependencies (due to public include order or link order issues). +macro REQUIRES(DIRS[]) { + SET_APPEND(REQUIRED_TRANSITIVE_PEERS $DIRS) +} + +CHECK_DEPENDENT_DIRS_TYPES= +CHECK_DEPENDENT_DIRS_RESTRICTIONS= +### @usage CHECK_DEPENDENT_DIRS(DENY|ALLOW_ONLY ([ALL|PEERDIRS|GLOB] dir)...) +### +### Specify project transitive dependencies constraints. +### +### @params: +### 1. DENY: current module can not depend on module from any specified directory neither directly nor transitively. +### 2. ALLOW_ONLY: current module can not depend on module from a dir not specified in the directory list neither directly nor transitively. +### 3. ALL: directory constraints following after this modifier are applied to both transitive PEERDIR dependencies and tool dependencies. +### 4. PEERDIRS: directory constraints following after this modifier are applied to transitive PEERDIR dependencies only. +### 5. GLOB: next directory constraint is an ANT glob pattern. +### 6. EXCEPT: next constraint is an excption for the rest of other rules. +### +### Direcory constraints added before either ALL or PEERDIRS modifier is used are treated as ALL directory constraints. +### +### Note: Can be used multiple times on the same module all specified constraints will be checked. +### All macro invocation for the same module must use same constraints type (DENY or ALLOW_ONLY) +macro CHECK_DEPENDENT_DIRS(TYPE, ALL?"UNUSED":"", PEERDIRS?"PEERDIRS":"ALL", RESTRICTIONS...) { + SET_APPEND(CHECK_DEPENDENT_DIRS_RESTRICTIONS $PEERDIRS $RESTRICTIONS) + SET_APPEND(CHECK_DEPENDENT_DIRS_TYPES $TYPE) +} + # tag:proto PY_PROTOS_FOR=no BUILD_PROTO_AS_EVLOG=no @@ -521,12 +521,12 @@ OPTIMIZE_PY_PROTOS_FLAG=no ### Add data (resources, random files, strings) to the program) ### The common usage is to place Src file into binary. The Key is used to access it using library/cpp/resource or library/python/resource. ### Alternative syntax with '- Key=Value' allows placing Value string as resource data into binary and make it accessible by Key. -### +### ### This is a simpler but less flexible option than ARCHIVE(), because in the case of ARCHIVE(), you have to use the data explicitly, ### and in the case of RESOURCE(), the data will fall through SRCS() or SRCS(GLOBAL) to binary linking. -### +### ### Use the FORCE_TEXT parameter to explicitly mark all Src files as text files: they will not be parsed unless used elsewhere. -### +### ### @example: https://wiki.yandex-team.ru/yatool/howtowriteyamakefiles/#a2ispolzujjtekomanduresource ### ### @example: @@ -606,7 +606,7 @@ macro NO_OPTIMIZE_PY_PROTOS() { # tag:proto tag:python-specific macro _PROTO_PLUGIN_ARGS_BASE(Name, Tool, OutParm...) { .CMD=--plugin=protoc-gen-${Name}=\${tool:"$Tool"} --${Name}_out=$OutParm$ARCADIA_BUILD_ROOT/\$PROTO_NAMESPACE - .SEM=ignored + .SEM=ignored } # tag:proto tag:python-specific @@ -656,7 +656,7 @@ macro JAVA_PROTO_PLUGIN(NAME, TOOL, DEPS[]) { } # tag:proto tag:cpp-specific -macro _ADD_CPP_PROTO_OUT(Suf) { +macro _ADD_CPP_PROTO_OUT(Suf) { SET_APPEND(CPP_PROTO_OUTS \${output;hide;norel;nopath;noext;suf=$Suf:File}) # XXX fix variable expansion in plugins @@ -673,12 +673,12 @@ CPP_PROTOBUF_PEERS= ### Define protoc plugin for C++ with given Name that emits code into regular outputs ### using Tool. Extra dependencies are passed via DEPS. macro CPP_PROTO_PLUGIN0(NAME, TOOL, DEPS[]) { - .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} SET_APPEND(CPP_PROTO_OPTS $_PROTO_PLUGIN_ARGS_BASE($NAME $TOOL)) # XXX fix variable expansion in plugins ENABLE(HAS_CPP_PROTOBUF_PEERS) - SET(CPP_PROTOBUF_PEERS $CPP_PROTOBUF_PEERS $DEPS) + SET(CPP_PROTOBUF_PEERS $CPP_PROTOBUF_PEERS $DEPS) } # tag:proto tag:cpp-specific @@ -688,7 +688,7 @@ macro CPP_PROTO_PLUGIN0(NAME, TOOL, DEPS[]) { ### using Tool. Extra dependencies are passed via DEPS. macro CPP_PROTO_PLUGIN(NAME, TOOL, SUF, DEPS[]) { CPP_PROTO_PLUGIN0($NAME $TOOL DEPS $DEPS) - + _ADD_CPP_PROTO_OUT($SUF) } @@ -699,7 +699,7 @@ macro CPP_PROTO_PLUGIN(NAME, TOOL, SUF, DEPS[]) { ### using Tool. Extra dependencies are passed via DEPS. macro CPP_PROTO_PLUGIN2(NAME, TOOL, SUF1, SUF2, DEPS[]) { CPP_PROTO_PLUGIN($NAME $TOOL $SUF1 DEPS $DEPS) - + _ADD_CPP_PROTO_OUT($SUF2) } @@ -847,7 +847,7 @@ macro YP_PROTO_YSON(OUT_OPTS[], Files...) { # tag:proto macro _CPP_PROTO_CMD(File) { .CMD=$CPP_PROTO_CMDLINE $CPP_PROTO_OPTS $CPP_PROTO_OUTS ${kv;hide:"p PB"} ${kv;hide:"pc yellow"} - .SEM=target_proto_mesages PRIVATE ${input:File} ${output;hide;suf=.pb.o:File} ${output;main;hide;norel;nopath;noext:File.pb.h} ${hide;tool:"contrib/tools/protoc/bin"} && set_global_flags COMMON_PROTOC_FLAGS -I=$ARCADIA_ROOT -I=$ARCADIA_BUILD_ROOT && modules_required protobuf.cmake + .SEM=target_proto_mesages PRIVATE ${input:File} ${output;hide;suf=.pb.o:File} ${output;main;hide;norel;nopath;noext:File.pb.h} ${hide;tool:"contrib/tools/protoc/bin"} && set_global_flags COMMON_PROTOC_FLAGS -I=$ARCADIA_ROOT -I=$ARCADIA_BUILD_ROOT && modules_required protobuf.cmake .PEERDIR=contrib/libs/protobuf } @@ -1267,8 +1267,8 @@ module _BASE_UNIT: _BARE_UNIT { # Adding PEERDIR from trigger doesn't always work. In this case it # cause troubles in contrib/libs/libc_compat/ubuntu_14 under musl - # Workaround this issue by setting variable with PEERDIR in trigger - # and then adding PEERDIR to it's value unconditionally. + # Workaround this issue by setting variable with PEERDIR in trigger + # and then adding PEERDIR to it's value unconditionally. when ($USE_UBUNTU_COMPATIBILITY == "yes" && $NEED_PLATFORM_PEERDIRS == "yes") { _UBUNTU_COMPAT_PEERDIR=contrib/libs/libc_compat/ubuntu_14 } @@ -1521,7 +1521,7 @@ elsewhen ($OS_DARWIN == "yes" || $OS_IOS == "yes") { } LINK_OR_COPY_SO_CMD= -when ($SO_OUTPUTS == "yes") { +when ($SO_OUTPUTS == "yes") { LINK_OR_COPY_SO_CMD=$FS_TOOLS link_or_copy_to_dir --no-check $_SO_EXT_FILTER ${BINDIR} LDFLAGS+=$RPATH_GLOBAL } @@ -1571,7 +1571,7 @@ macro LINK_EXEC_DYN_LIB_IMPL(WHOLE_ARCHIVE_PEERS...) { module _LINK_UNIT: _BASE_UNIT { .EXTS=.o .obj .supp .tidyjson .ld .CMD=LINK_EXE - .ALLOWED=EXTRALIBS OBJADDE_GLOBAL RESOURCE_FILES + .ALLOWED=EXTRALIBS OBJADDE_GLOBAL RESOURCE_FILES .NODE_TYPE=Program .PEERDIR_POLICY=as_build_from .FINAL_TARGET=yes @@ -1590,7 +1590,7 @@ module _LINK_UNIT: _BASE_UNIT { } ENABLE(COMMON_LINK_SETTINGS) - CHECK_PROVIDES() + CHECK_PROVIDES() } MODULE_TYPE=UNKNOWN @@ -1673,7 +1673,7 @@ CPP_PROGRAM_SEM=add_executable $MODDIR $REALPRJNAME ${hide:TARGET} ${hide:AUTO_I ### If name is not specified it will be generated from the name of the containing project directory. module PROGRAM: _BASE_PROGRAM { .ALIASES=REQUIREMENTS=CC_REQUIREMENTS - .SEM=CPP_PROGRAM_SEM + .SEM=CPP_PROGRAM_SEM ADD_YTEST($MODULE_PREFIX$REALPRJNAME coverage.extractor) ADD_CLANG_TIDY() @@ -1740,7 +1740,7 @@ multimodule PY3_PROGRAM { } module PY3_BIN_LIB: PY3_LIBRARY { - .IGNORED=RESTRICT_LICENSES + .IGNORED=RESTRICT_LICENSES # Notify pybuild to skip all python main function definitions ENABLE(IGNORE_PY_MAIN) _REQUIRE_EXPLICIT_LICENSE() @@ -2342,7 +2342,7 @@ when ($YA_DEV == "yes") { ### ### Documentation about the Arcadia test system: https://wiki.yandex-team.ru/yatool/test/ module UNITTEST_FOR: UNITTEST { - .SEM=UNITTEST_SEM + .SEM=UNITTEST_SEM PEERDIR(ADDINCL $UNITTEST_DIR) SRCDIR($UNITTEST_DIR) } @@ -2357,7 +2357,7 @@ module _LIBRARY: _BASE_UNIT { .NODE_TYPE=Library .PEERDIR_POLICY=as_include .EXTS=.o .obj .a .mf .supp .tidyjson .ld - .ALLOWED=GRPC USE_SKIFF EXTRALIBS OBJADDE_GLOBAL RESOURCE_FILES + .ALLOWED=GRPC USE_SKIFF EXTRALIBS OBJADDE_GLOBAL RESOURCE_FILES .GLOBAL=USER_CFLAGS USER_CXXFLAGS USER_CONLYFLAGS LDFLAGS SRCS _WHOLE_ARCHIVE_LIBS_VALUE RPATH .RESTRICTED=ALLOCATOR SIZE TAG DATA TEST_DATA DEPENDS FORK_TESTS FORK_SUBTESTS SPLIT_FACTOR TEST_CWD RUN TIMEOUT SPLIT_DWARF .FINAL_TARGET=no @@ -2406,21 +2406,21 @@ module _LIBRARY: _BASE_UNIT { } CPP_LIBRARY_SEM=add_library ${MODDIR} $REALPRJNAME ${hide:TARGET} ${hide:AUTO_INPUT} \ - && library_fake_marker FAKE_MODULE ${FAKE_MODULE} \ - && consumer_link_library PUBLIC $CMAKE_LINK_TARGET \ - && target_include_directories PUBLIC $_C__INCLUDE_GLOBAL \ - && target_include_directories PRIVATE $_C__INCLUDE_OWNED \ - && target_compile_definitions PRIVATE $USER_CFLAGS $USER_CXXFLAGS + && library_fake_marker FAKE_MODULE ${FAKE_MODULE} \ + && consumer_link_library PUBLIC $CMAKE_LINK_TARGET \ + && target_include_directories PUBLIC $_C__INCLUDE_GLOBAL \ + && target_include_directories PRIVATE $_C__INCLUDE_OWNED \ + && target_compile_definitions PRIVATE $USER_CFLAGS $USER_CXXFLAGS CPP_OBJ_LIBRARY_SEM=add_global_library_for ${MODDIR} ${suf=.global:REALPRJNAME} $REALPRJNAME ${hide:GLOBAL_TARGET} ${hide:AUTO_INPUT} \ - && target_include_directories PUBLIC $_C__INCLUDE_GLOBAL \ - && target_include_directories PRIVATE $_C__INCLUDE_OWNED \ + && target_include_directories PUBLIC $_C__INCLUDE_GLOBAL \ + && target_include_directories PRIVATE $_C__INCLUDE_OWNED \ && target_compile_definitions PRIVATE $USER_CFLAGS $USER_CXXFLAGS -CMAKE_FIND_PKG= -CMAKE_LINK_TARGET=$REALPRJNAME -CMAKE_FIND_PKG_COMP= -CONAN_REQUIRE= - +CMAKE_FIND_PKG= +CMAKE_LINK_TARGET=$REALPRJNAME +CMAKE_FIND_PKG_COMP= +CONAN_REQUIRE= + ### @usage: LIBRARY() ### ### The regular static library module. @@ -2436,24 +2436,24 @@ CONAN_REQUIRE= module LIBRARY: _LIBRARY { .GLOBAL=_AARS _PROGUARD_RULES .ALIASES=REQUIREMENTS=CC_REQUIREMENTS - .SEM=CPP_LIBRARY_SEM - .GLOBAL_SEM=CPP_OBJ_LIBRARY_SEM - - when ($CMAKE_PACKAGE_COMPONENT != "") { - CMAKE_FIND_PKG_COMP=COMPONENTS $CMAKE_PACKAGE_COMPONENT - } - when ($CMAKE_PACKAGE != "") { - CMAKE_FIND_PKG=find_package $CMAKE_PACKAGE $CMAKE_FIND_PKG_COMP - CPP_LIBRARY_SEM=$CONAN_REQUIRE && $CMAKE_FIND_PKG && consumer_link_library PUBLIC $CMAKE_LINK_TARGET && ignored - } - when ($CONAN_REFERENCE != "") { - CONAN_REQUIRE=conan_require $CONAN_REFERENCE - CPP_LIBRARY_SEM=$CONAN_REQUIRE && $CMAKE_FIND_PKG && consumer_link_library PUBLIC $CMAKE_LINK_TARGET && ignored - } - when ($OPENSOURCE_EXPORT == "no") { - CPP_LIBRARY_SEM=ignored - } - + .SEM=CPP_LIBRARY_SEM + .GLOBAL_SEM=CPP_OBJ_LIBRARY_SEM + + when ($CMAKE_PACKAGE_COMPONENT != "") { + CMAKE_FIND_PKG_COMP=COMPONENTS $CMAKE_PACKAGE_COMPONENT + } + when ($CMAKE_PACKAGE != "") { + CMAKE_FIND_PKG=find_package $CMAKE_PACKAGE $CMAKE_FIND_PKG_COMP + CPP_LIBRARY_SEM=$CONAN_REQUIRE && $CMAKE_FIND_PKG && consumer_link_library PUBLIC $CMAKE_LINK_TARGET && ignored + } + when ($CONAN_REFERENCE != "") { + CONAN_REQUIRE=conan_require $CONAN_REFERENCE + CPP_LIBRARY_SEM=$CONAN_REQUIRE && $CMAKE_FIND_PKG && consumer_link_library PUBLIC $CMAKE_LINK_TARGET && ignored + } + when ($OPENSOURCE_EXPORT == "no") { + CPP_LIBRARY_SEM=ignored + } + when ($HAS_CPP_PROTOBUF_PEERS == "yes") { PEERDIR+=$CPP_PROTOBUF_PEERS } @@ -2498,7 +2498,7 @@ macro _CONDITIONAL_SRCS(USE_CONDITIONAL_SRCS[], DYMMY...) { # XXX: dirty hack for correct LDFLAGS passing RESOURCES_LIBRARY_LINK=$TOUCH_UNIT ${hide:LDFLAGS_GLOBAL} ${hide:LDFLAGS} -RESOURCES_LIBRARY_SEM=ignored +RESOURCES_LIBRARY_SEM=ignored ### @usage: RESOURCES_LIBRARY() ### @@ -2508,7 +2508,7 @@ RESOURCES_LIBRARY_SEM=ignored ### @see: [DECLARE_EXTERNAL_RESOURCE()](#macro_DECLARE_EXTERNAL_RESOURCE) module RESOURCES_LIBRARY: _BARE_UNIT { .CMD=RESOURCES_LIBRARY_LINK - .SEM=RESOURCES_LIBRARY_SEM + .SEM=RESOURCES_LIBRARY_SEM .ALLOWED=DECLARE_EXTERNAL_RESOURCE EXTRALIBS OBJADDE_GLOBAL .RESTRICTED=ALLOCATOR SIZE TAG DATA TEST_DATA DEPENDS FORK_TESTS FORK_SUBTESTS SPLIT_FACTOR TEST_CWD RUN TIMEOUT SRC SRCS PEERDIR SPLIT_DWARF .NODE_TYPE=Library @@ -2853,7 +2853,7 @@ module DEV_DLL_PROXY: _BARE_UNIT { .NODE_TYPE=Library .EXTS=.so .dll .dylib .mf .CMD=DLL_PROXY_CMD_MF - DYNAMIC_LINK=yes + DYNAMIC_LINK=yes when ($OS_WINDOWS == "yes") { MODULE_SUFFIX=.dll @@ -2915,7 +2915,7 @@ multimodule DYNAMIC_LIBRARY { .PEERDIRSELF=DLL_BIN .IGNORED=SRCS PEERDIR RUN_PROGRAM PYTHON DYNAMIC_LIBRARY_FROM GENERATE_ENUM_SERIALIZATION GENERATE_ENUM_SERIALIZATION_WITH_HEADER USE_PYTHON2 USE_PYTHON3 .ALLOWED=DYNAMIC_DEPS - + SET(PEERDIR_TAGS DLL_LIB __EMPTY__) _BARE_MODULE() @@ -3054,7 +3054,7 @@ TOUCH_DOCS_MF=$TOUCH_DOCS && $GENERATE_MF ### among .proto/.gztproto imports ### ### Note: it is currently impossible to enbale resolving only for .proto, so resolving is enabled for all supported files -### also we only add ADDINCL for stock protobuf. So use this macro with care: it may cause resolving problems those are +### also we only add ADDINCL for stock protobuf. So use this macro with care: it may cause resolving problems those are ### to be addressed by either ADDINCLs or marking them as TEXT. Please contact devtools for details. macro RESOLVE_PROTO() { SET(DONT_RESOLVE_INCLUDES no) @@ -3383,12 +3383,12 @@ macro _SRCS_NO_GLOBAL(GLOBAL[], FILES...) { # tag:java-specific JAVA_VCS_MF_ARG= -COMPILE_JAVA_MF=$COMPILE_JAVA +COMPILE_JAVA_MF=$COMPILE_JAVA # tag:java-specific when ($EXT_JAVA_VCS_INFO == "yes") { JAVA_VCS_MF_ARG=--vcs-mf $VCS_JAVA - COMPILE_JAVA_MF=$GENERATE_VCS_JAVA_INFO_NODEP && $COMPILE_JAVA + COMPILE_JAVA_MF=$GENERATE_VCS_JAVA_INFO_NODEP && $COMPILE_JAVA } # tag:java-specific @@ -3415,14 +3415,14 @@ module EXTERNAL_JAVA_LIBRARY: _BASE_UNIT { .FINAL_TARGET=no .ALIASES=SRCS=_SRCS_NO_GLOBAL .ALLOWED=EMBED_JAVA_VCS_INFO - .RESTRICTED=EXTERNAL_JAR + .RESTRICTED=EXTERNAL_JAR PEERDIR(build/platform/java/jdk) PEERDIR+=$JDK_RESOURCE_PEERDIR PEERDIR_TAGS=JAVA_PROTO JAVA_FBS JAVA_IDL - PROPAGATES_MANAGEABLE_PEERS=yes - DYNAMIC_LINK=yes + PROPAGATES_MANAGEABLE_PEERS=yes + DYNAMIC_LINK=yes MACRO_ALIAS(PROTO_CMD _JAVA_PROTO_CMD) MACRO_ALIAS(EVLOG_CMD _JAVA_EVLOG_CMD) MACRO_ALIAS(FBS_CMD _JAVA_FLATC_CMD) @@ -3438,296 +3438,296 @@ module EXTERNAL_JAVA_LIBRARY: _BASE_UNIT { } # tag:java-specific -ALL_JAR_SOURCES= -LINT_JAVA_SOURCES= -ALL_SRCDIRS= -LINK_JAR_RESOURCES= -LINK_JAR_JSOURCES= -JAR_GEN_SRCS= -JAR_GEN_JSRCS= -macro _JAR_SRCS(SRCDIR=".", PACKAGE_PREFIX="", EXCLUDE[], FILES[], RESOURCES?"yes":"no", Globs...) { - _CHECK_JAVA_SRCDIR($SRCDIR) - SET_APPEND(ALL_SRCDIRS $SRCDIR) - SET(VAR_SALT $SRCDIR $Globs $EXCLUDE $PACKAGE_PREFIX $RESOURCES $FILES) - SET(JAR_SRCS_GLOB uniq_${hash:VAR_SALT}) - _LATE_GLOB(${JAR_SRCS_GLOB} ${pre=${SRCDIR}/:Globs} EXCLUDE ${EXCLUDE}) - SET_APPEND(LINT_JAVA_SOURCES \${input;rootrel;ext=.java:${JAR_SRCS_GLOB}}) - SET_APPEND(ALL_JAR_SOURCES --jsources ${BINDIR}/misc/${tolower:JAR_SRCS_GLOB}.src.txt --resources ${BINDIR}/misc/${tolower:JAR_SRCS_GLOB}.res.txt --srcdir ${quo:SRCDIR} \${input:${JAR_SRCS_GLOB}} ${pre=\$\{input\:\";suf=\"\}:FILES}) - _FILL_JAR_COPY_RESOURCES_CMD(LINK_JAR_RESOURCES ${quo:SRCDIR} ${BINDIR}/cls ${PACKAGE_PREFIX} ${BINDIR}/misc/${tolower:JAR_SRCS_GLOB}.res.txt) - _FILL_JAR_COPY_RESOURCES_CMD(LINK_JAR_JSOURCES ${quo:SRCDIR} ${BINDIR}/src ${PACKAGE_PREFIX} ${BINDIR}/misc/${tolower:JAR_SRCS_GLOB}.src.txt) - _FILL_JAR_GEN_SRCS(JAR_GEN_SRCS JAR $SRCDIR ${BINDIR}/cls ${BINDIR}/all-java.srclst ${BINDIR}/misc/all-kt-sources.txt ${BINDIR}/misc/all-gr-sources.txt ${BINDIR}/misc/${tolower:JAR_SRCS_GLOB}.res.txt $Globs EXCLUDE $EXCLUDE) - _FILL_JAR_GEN_SRCS(JAR_GEN_JSRCS SRC_JAR $SRCDIR ${BINDIR}/cls ${BINDIR}/all-java.srclst ${BINDIR}/misc/all-kt-sources.txt ${BINDIR}/misc/all-gr-sources.txt ${BINDIR}/misc/${tolower:JAR_SRCS_GLOB}.src.txt $Globs EXCLUDE $EXCLUDE) -} - -macro IDEA_JAR_SRCS(Args...) { - _JAR_SRCS($Args) - SET_APPEND(JAVA_SRCS_VALUE $ARGS_DELIM $Args) -} - -macro _HASH_HELPER(Args...) { - .CMD=${hash:Args} -} - -macro _GENTAR_HELPER(OUT_DIR[], Args...) { - .CMD=${cwd:BINDIR} $YMAKE_PYTHON ${input:"build/scripts/autotar_gendirs.py"} --pack ${OUT_DIR} --outs ${output;tared;suf=.$_HASH_HELPER($Args).gentar:OUT_DIR} ${kv;hide:"tared_kind nodir"} -} - +ALL_JAR_SOURCES= +LINT_JAVA_SOURCES= +ALL_SRCDIRS= +LINK_JAR_RESOURCES= +LINK_JAR_JSOURCES= +JAR_GEN_SRCS= +JAR_GEN_JSRCS= +macro _JAR_SRCS(SRCDIR=".", PACKAGE_PREFIX="", EXCLUDE[], FILES[], RESOURCES?"yes":"no", Globs...) { + _CHECK_JAVA_SRCDIR($SRCDIR) + SET_APPEND(ALL_SRCDIRS $SRCDIR) + SET(VAR_SALT $SRCDIR $Globs $EXCLUDE $PACKAGE_PREFIX $RESOURCES $FILES) + SET(JAR_SRCS_GLOB uniq_${hash:VAR_SALT}) + _LATE_GLOB(${JAR_SRCS_GLOB} ${pre=${SRCDIR}/:Globs} EXCLUDE ${EXCLUDE}) + SET_APPEND(LINT_JAVA_SOURCES \${input;rootrel;ext=.java:${JAR_SRCS_GLOB}}) + SET_APPEND(ALL_JAR_SOURCES --jsources ${BINDIR}/misc/${tolower:JAR_SRCS_GLOB}.src.txt --resources ${BINDIR}/misc/${tolower:JAR_SRCS_GLOB}.res.txt --srcdir ${quo:SRCDIR} \${input:${JAR_SRCS_GLOB}} ${pre=\$\{input\:\";suf=\"\}:FILES}) + _FILL_JAR_COPY_RESOURCES_CMD(LINK_JAR_RESOURCES ${quo:SRCDIR} ${BINDIR}/cls ${PACKAGE_PREFIX} ${BINDIR}/misc/${tolower:JAR_SRCS_GLOB}.res.txt) + _FILL_JAR_COPY_RESOURCES_CMD(LINK_JAR_JSOURCES ${quo:SRCDIR} ${BINDIR}/src ${PACKAGE_PREFIX} ${BINDIR}/misc/${tolower:JAR_SRCS_GLOB}.src.txt) + _FILL_JAR_GEN_SRCS(JAR_GEN_SRCS JAR $SRCDIR ${BINDIR}/cls ${BINDIR}/all-java.srclst ${BINDIR}/misc/all-kt-sources.txt ${BINDIR}/misc/all-gr-sources.txt ${BINDIR}/misc/${tolower:JAR_SRCS_GLOB}.res.txt $Globs EXCLUDE $EXCLUDE) + _FILL_JAR_GEN_SRCS(JAR_GEN_JSRCS SRC_JAR $SRCDIR ${BINDIR}/cls ${BINDIR}/all-java.srclst ${BINDIR}/misc/all-kt-sources.txt ${BINDIR}/misc/all-gr-sources.txt ${BINDIR}/misc/${tolower:JAR_SRCS_GLOB}.src.txt $Globs EXCLUDE $EXCLUDE) +} + +macro IDEA_JAR_SRCS(Args...) { + _JAR_SRCS($Args) + SET_APPEND(JAVA_SRCS_VALUE $ARGS_DELIM $Args) +} + +macro _HASH_HELPER(Args...) { + .CMD=${hash:Args} +} + +macro _GENTAR_HELPER(OUT_DIR[], Args...) { + .CMD=${cwd:BINDIR} $YMAKE_PYTHON ${input:"build/scripts/autotar_gendirs.py"} --pack ${OUT_DIR} --outs ${output;tared;suf=.$_HASH_HELPER($Args).gentar:OUT_DIR} ${kv;hide:"tared_kind nodir"} +} + # tag:java-specific -RUN_JAR_PROG_CP_PRE=@ -RUN_JAR_PROG_CP_SUF=.cplst -when($JDK_VERSION == "8") { - RUN_JAR_PROG_CP_PRE= - RUN_JAR_PROG_CP_SUF= -} - +RUN_JAR_PROG_CP_PRE=@ +RUN_JAR_PROG_CP_SUF=.cplst +when($JDK_VERSION == "8") { + RUN_JAR_PROG_CP_PRE= + RUN_JAR_PROG_CP_SUF= +} + # tag:java-specific macro _DO_2_RUN_JAR_PROGRAM(IN_DIRS_VAR="uniq_", IN_DIRS_INPUTS[], IN{input}[], IN_DIR[], OUT_NOAUTO{output}[], OUT{output}[], TOOL{tool}[], OUT_DIR[], CLASSPATH[], REQUIREMENTS[], ADD_SRCS_TO_CLASSPATH?"yes":"no", CWD="${ARCADIA_BUILD_ROOT}", Args...) { - _LATE_GLOB(${IN_DIRS_VAR} ${suf=/**/*:IN_DIR}) - _CHECK_RUN_JAVA_PROG_CLASSPATH($CLASSPATH) + _LATE_GLOB(${IN_DIRS_VAR} ${suf=/**/*:IN_DIR}) + _CHECK_RUN_JAVA_PROG_CLASSPATH($CLASSPATH) .PEERDIR=build/platform/java/jdk $JDK_RESOURCE_PEERDIR .CMD=${cwd:BINDIR} $YMAKE_PYTHON ${input:"build/scripts/mkdir.py"} ${OUT_DIR} && ${cwd:CWD} $YMAKE_PYTHON ${input:"build/scripts/setup_java_tmpdir.py"} $YMAKE_PYTHON ${input:"build/scripts/stdout2stderr.py"} $YMAKE_PYTHON ${input:"build/scripts/fix_java_command_file_cp.py"} --build-root ${ARCADIA_BUILD_ROOT} $JDK_RESOURCE/bin/java -Dfile.encoding=utf8 -classpath ${RUN_JAR_PROG_CP_PRE}${tool:CLASSPATH}${RUN_JAR_PROG_CP_SUF} ${Args} ${requirements;hide:REQUIREMENTS} ${requirements;hide:"network:restricted"} && $_GENTAR_HELPER($CLASSPATH $IN_DIR $IN $TOOL $Args OUT_DIR $OUT_DIR) ${input;hide:IN} ${output;noauto;hide:OUT_NOAUTO} ${output;hide:OUT} ${tool;hide:TOOL} ${IN_DIRS_INPUTS} -} - +} + # tag:java-specific -macro _DO_1_RUN_JAR_PROGRAM(IN_DIRS_VAR="uniq", Args...) { - _DO_2_RUN_JAR_PROGRAM($Args IN_DIRS_VAR $IN_DIRS_VAR IN_DIRS_INPUTS ${"$"}{input;hide:$IN_DIRS_VAR}) -} - +macro _DO_1_RUN_JAR_PROGRAM(IN_DIRS_VAR="uniq", Args...) { + _DO_2_RUN_JAR_PROGRAM($Args IN_DIRS_VAR $IN_DIRS_VAR IN_DIRS_INPUTS ${"$"}{input;hide:$IN_DIRS_VAR}) +} + # tag:java-specific -macro RUN_JAVA_PROGRAM(Args...) { - _DO_1_RUN_JAR_PROGRAM($Args IN_DIRS_VAR uniq_${hash:Args}) -} - +macro RUN_JAVA_PROGRAM(Args...) { + _DO_1_RUN_JAR_PROGRAM($Args IN_DIRS_VAR uniq_${hash:Args}) +} + # tag:java-specific -_JAR_ANN_PROCESSORS= -_JAR_ANN_PROC_OPT_PREFIX= -macro JAR_ANNOTATION_PROCESSOR(Classes...) { - SET_APPEND(_JAR_ANN_PROCESSORS $Classes) - SET(_JAR_ANN_PROC_OPT_PREFIX -processor) - - # for ya ide idea only - SET_APPEND(ANNOTATION_PROCESSOR_VALUE $ARGS_DELIM $Classes) -} - +_JAR_ANN_PROCESSORS= +_JAR_ANN_PROC_OPT_PREFIX= +macro JAR_ANNOTATION_PROCESSOR(Classes...) { + SET_APPEND(_JAR_ANN_PROCESSORS $Classes) + SET(_JAR_ANN_PROC_OPT_PREFIX -processor) + + # for ya ide idea only + SET_APPEND(ANNOTATION_PROCESSOR_VALUE $ARGS_DELIM $Classes) +} + # tag:java-specific -macro _JAR_ANN_PROC_OPTS(Classes...) { - .CMD=$_JAR_ANN_PROC_OPT_PREFIX ${join=,:Classes} -} - +macro _JAR_ANN_PROC_OPTS(Classes...) { + .CMD=$_JAR_ANN_PROC_OPT_PREFIX ${join=,:Classes} +} + # tag:java-specific -macro _NOOP_MACRO(Args...) { +macro _NOOP_MACRO(Args...) { ENABLE(UNUSED_MACRO) -} - +} + # tag:java-specific module _JAR_BASE: _BARE_UNIT { - .NODE_TYPE=Bundle - .CMD=TOUCH_UNIT - .PEERDIR_POLICY=as_build_from - .FINAL_TARGET=no - .ALIASES=SRCS=_SRCS_NO_GLOBAL - .ALLOWED=EMBED_JAVA_VCS_INFO DEPENDENCY_MANAGEMENT EXCLUDE - + .NODE_TYPE=Bundle + .CMD=TOUCH_UNIT + .PEERDIR_POLICY=as_build_from + .FINAL_TARGET=no + .ALIASES=SRCS=_SRCS_NO_GLOBAL + .ALLOWED=EMBED_JAVA_VCS_INFO DEPENDENCY_MANAGEMENT EXCLUDE + PEERDIR_TAGS=JAVA_PROTO JAVA_FBS JAVA_IDL DLL JAR_COMPILATION __EMPTY__ - - HAS_MANAGEABLE_PEERS=yes - DYNAMIC_LINK=yes - MACRO_ALIAS(PROTO_CMD _JAVA_PROTO_CMD) - MACRO_ALIAS(EVLOG_CMD _JAVA_EVLOG_CMD) + + HAS_MANAGEABLE_PEERS=yes + DYNAMIC_LINK=yes + MACRO_ALIAS(PROTO_CMD _JAVA_PROTO_CMD) + MACRO_ALIAS(EVLOG_CMD _JAVA_EVLOG_CMD) MACRO_ALIAS(FBS_CMD _JAVA_FLATC_CMD) - - DISABLE(NEED_PLATFORM_PEERDIRS) - NO_PLATFORM() - VCS_JAVA=${suf=.__vcs_version__.mf:TARGET} + + DISABLE(NEED_PLATFORM_PEERDIRS) + NO_PLATFORM() + VCS_JAVA=${suf=.__vcs_version__.mf:TARGET} SET(MODULE_LANG JAVA) -} - +} + # tag:java-specific -module JAVA_CONTRIB_PROXY: _JAR_BASE { -} - +module JAVA_CONTRIB_PROXY: _JAR_BASE { +} + # tag:java-specific -macro _FETCH_CONTRIB(Id, Out, SBR="sbr:") { - .CMD=${hide:SANDBOX_FAKEID} ${cwd:BINDIR} ${resource;pre=$SBR:Id} $YMAKE_PYTHON ${input:"build/scripts/fetch_from_sandbox.py"} --resource-file $(RESOURCE_ROOT)/sbr/$Id/resource --resource-id $Id --copy-to ${output:Out} ${input;hide:"build/scripts/fetch_from.py"} ${requirements;hide:"network:full"} ${kv;hide:"p SB"} ${kv;hide:"pc yellow"} ${kv;hide:"show_out"} - ADD_CHECK(check.resource $Id) -} - +macro _FETCH_CONTRIB(Id, Out, SBR="sbr:") { + .CMD=${hide:SANDBOX_FAKEID} ${cwd:BINDIR} ${resource;pre=$SBR:Id} $YMAKE_PYTHON ${input:"build/scripts/fetch_from_sandbox.py"} --resource-file $(RESOURCE_ROOT)/sbr/$Id/resource --resource-id $Id --copy-to ${output:Out} ${input;hide:"build/scripts/fetch_from.py"} ${requirements;hide:"network:full"} ${kv;hide:"p SB"} ${kv;hide:"pc yellow"} ${kv;hide:"show_out"} + ADD_CHECK(check.resource $Id) +} + # tag:java-specific -LOCAL_JAR_PATH= -LOCAL_SOURCES_JAR_PATH= -JAR_RESOURCE_ID= -SRC_RESOURCE_ID= +LOCAL_JAR_PATH= +LOCAL_SOURCES_JAR_PATH= +JAR_RESOURCE_ID= +SRC_RESOURCE_ID= FETCH_SRCS_JAR= -FETCH_TARGET_JAR= +FETCH_TARGET_JAR= FETCH_CONTRIB_JAR=$FETCH_TARGET_JAR $FETCH_SRCS_JAR - + # tag:java-specific -macro JAR_RESOURCE(Id) { - SET(JAR_RESOURCE_ID $Id) -} - +macro JAR_RESOURCE(Id) { + SET(JAR_RESOURCE_ID $Id) +} + # tag:java-specific -macro SRC_RESOURCE(Id) { - SET(SRC_RESOURCE_ID $Id) -} - +macro SRC_RESOURCE(Id) { + SET(SRC_RESOURCE_ID $Id) +} + # tag:java-specific -macro LOCAL_JAR(File) { - SET(LOCAL_JAR_PATH $File) -} +macro LOCAL_JAR(File) { + SET(LOCAL_JAR_PATH $File) +} # tag:java-specific -macro LOCAL_SOURCES_JAR(File) { - SET(LOCAL_SOURCES_JAR_PATH $File) -} - +macro LOCAL_SOURCES_JAR(File) { + SET(LOCAL_SOURCES_JAR_PATH $File) +} + # tag:java-specific -module JAVA_CONTRIB: _JAR_BASE { - .CMD=FETCH_CONTRIB_JAR - .FINAL_TARGET=yes - - when ($JAR_RESOURCE_ID) { - FETCH_TARGET_JAR= && $_FETCH_CONTRIB($JAR_RESOURCE_ID ${BINDIR}/${MODULE_PREFIX}${REALPRJNAME}${MODULE_SUFFIX}) - } - otherwise { - when ($LOCAL_JAR_PATH) { - FETCH_TARGET_JAR= && $FS_TOOLS copy ${input:LOCAL_JAR_PATH} $TARGET - } - otherwise { - FETCH_TARGET_JAR= && $GENERATE_VCS_JAVA_INFO_NODEP && ${cwd:BINDIR} $JDK_RESOURCE/bin/jar cfvm $TARGET $VCS_JAVA . - PEERDIR+=build/platform/java/jdk +module JAVA_CONTRIB: _JAR_BASE { + .CMD=FETCH_CONTRIB_JAR + .FINAL_TARGET=yes + + when ($JAR_RESOURCE_ID) { + FETCH_TARGET_JAR= && $_FETCH_CONTRIB($JAR_RESOURCE_ID ${BINDIR}/${MODULE_PREFIX}${REALPRJNAME}${MODULE_SUFFIX}) + } + otherwise { + when ($LOCAL_JAR_PATH) { + FETCH_TARGET_JAR= && $FS_TOOLS copy ${input:LOCAL_JAR_PATH} $TARGET + } + otherwise { + FETCH_TARGET_JAR= && $GENERATE_VCS_JAVA_INFO_NODEP && ${cwd:BINDIR} $JDK_RESOURCE/bin/jar cfvm $TARGET $VCS_JAVA . + PEERDIR+=build/platform/java/jdk PEERDIR+=$JDK_RESOURCE_PEERDIR - } - } - when ($SRC_RESOURCE_ID) { + } + } + when ($SRC_RESOURCE_ID) { FETCH_SRCS_JAR= && $_FETCH_CONTRIB($SRC_RESOURCE_ID ${BINDIR}/${REALPRJNAME}-sources.jar) - } - otherwise { - when ($LOCAL_SOURCES_JAR_PATH) { + } + otherwise { + when ($LOCAL_SOURCES_JAR_PATH) { FETCH_SRCS_JAR= && $FS_TOOLS copy ${input:LOCAL_SOURCES_JAR_PATH} {output;pre=${BINDIR}/;suf=-sources.jar:REALPRJNAME} - } - otherwise { + } + otherwise { FETCH_SRCS_JAR= && $GENERATE_VCS_JAVA_INFO_NODEP && $FS_TOOLS md ${BINDIR}/fake-src && ${cwd;suf=/fake-src:BINDIR} $JDK_RESOURCE/bin/jar cfvm ${output;pre=${BINDIR}/;suf=-sources.jar:REALPRJNAME} $VCS_JAVA . - PEERDIR+=build/platform/java/jdk + PEERDIR+=build/platform/java/jdk PEERDIR+=$JDK_RESOURCE_PEERDIR - } - } - - SET(MODULE_SUFFIX .jar) -} - + } + } + + SET(MODULE_SUFFIX .jar) +} + # tag:kotlin-specific -KOTLINC_OPTS_VALUE= +KOTLINC_OPTS_VALUE= # tag:kotlin-specific -KT_SRSCLIST_FLAG=--kotlin ${BINDIR}/misc/all-kt-sources.txt -KT_CLASSES_DIR=${BINDIR}/kt_cls -COLLECT_KT_CLASSPATH=${YMAKE_PYTHON} ${input:"build/scripts/writer.py"} --file ${BINDIR}/kt_bfg.txt -m --ya-start-command-file ${ext=.jar:MANAGED_PEERS_CLOSURE} --ya-end-command-file -LINK_KT_CLASSPATH=$YMAKE_PYTHON ${input:"build/scripts/make_java_classpath_file.py"} ${BINDIR}/kt_bfg.txt ${BINDIR}/kt_cp.txt && $FS_TOOLS md $KT_CLASSES_DIR +KT_SRSCLIST_FLAG=--kotlin ${BINDIR}/misc/all-kt-sources.txt +KT_CLASSES_DIR=${BINDIR}/kt_cls +COLLECT_KT_CLASSPATH=${YMAKE_PYTHON} ${input:"build/scripts/writer.py"} --file ${BINDIR}/kt_bfg.txt -m --ya-start-command-file ${ext=.jar:MANAGED_PEERS_CLOSURE} --ya-end-command-file +LINK_KT_CLASSPATH=$YMAKE_PYTHON ${input:"build/scripts/make_java_classpath_file.py"} ${BINDIR}/kt_bfg.txt ${BINDIR}/kt_cp.txt && $FS_TOOLS md $KT_CLASSES_DIR COMPILE_KT=${cwd:ARCADIA_BUILD_ROOT} $YMAKE_PYTHON ${input:"build/scripts/with_pathsep_resolve.py"} $YMAKE_PYTHON ${input:"build/scripts/run_javac.py"} --kotlin --sources-list ${BINDIR}/misc/all-kt-sources.txt $JDK_RESOURCE/bin/java -jar $KOTLIN_COMPILER_RESOURCE_GLOBAL/kotlin-compiler.jar -no-stdlib -module-name $REALPRJNAME -jvm-target ${KOTLIN_JVM_TARGET} @${BINDIR}/misc/all-kt-sources.txt -classpath @${BINDIR}/kt_cp.txt $KOTLINC_FLAGS_VALUE -d $KT_CLASSES_DIR $KOTLINC_OPTS_VALUE -ALL_KT_COMMANDS= -KT_CLASSPATH_ITEM= - +ALL_KT_COMMANDS= +KT_CLASSPATH_ITEM= + # tag:java-specific -JAVAC_CMD=$JDK_RESOURCE/bin/javac +JAVAC_CMD=$JDK_RESOURCE/bin/javac ERROR_PRONE_JAVAC_CMD=${YMAKE_PYTHON} ${input:"build/scripts/build_java_with_error_prone2.py"} $JDK_RESOURCE/bin/java $JDK_RESOURCE/bin/javac $ERROR_PRONE_RESOURCE/error_prone.jar - + # tag:java-specific tag:codenav JAVA_YNDEXING=no # tag:java-specific -when ($USE_SYSTEM_KYTHE) { - KYTHE_RESOURCE=$USE_SYSTEM_KYTHE -} -otherwise { - KYTHE_RESOURCE=$KYTHE_RESOURCE_GLOBAL -} +when ($USE_SYSTEM_KYTHE) { + KYTHE_RESOURCE=$USE_SYSTEM_KYTHE +} +otherwise { + KYTHE_RESOURCE=$KYTHE_RESOURCE_GLOBAL +} # tag:java-specific tag:codenav -_JAVA_YNDEXING_CMD=$YMAKE_PYTHON ${input:"build/scripts/build_java_codenav_index.py"} $TARGET $ARCADIA_BUILD_ROOT $ARCADIA_ROOT ${BINDIR}/all-java.srclst $JDK_RESOURCE/bin/java -jar $KYTHE_RESOURCE/kythe/extractors/javac_extractor.jar -_DO_JAVA_YNDEXING= - -# tag:java-specific -SOURCES_JAR=no -_PACK_SRC_JAR_IMPL=&& $FS_TOOLS md ${BINDIR}/src $JAR_GEN_JSRCS $LINK_JAR_JSOURCES && ${cwd;suf=/src:BINDIR} $JDK_RESOURCE/bin/jar cfvm ${output;pre=${BINDIR}/${MODULE_PREFIX};suf=-sources.jar:REALPRJNAME} $VCS_JAVA . -_PACK_SRC_JAR= - +_JAVA_YNDEXING_CMD=$YMAKE_PYTHON ${input:"build/scripts/build_java_codenav_index.py"} $TARGET $ARCADIA_BUILD_ROOT $ARCADIA_ROOT ${BINDIR}/all-java.srclst $JDK_RESOURCE/bin/java -jar $KYTHE_RESOURCE/kythe/extractors/javac_extractor.jar +_DO_JAVA_YNDEXING= + # tag:java-specific -_PACK_JNI= -_PACK_JNI_CMD= && $FS_TOOLS link_or_copy_to_dir --ya-start-command-file ${ext=.so:MANAGED_PEERS_CLOSURE} ${ext=.dll:MANAGED_PEERS_CLOSURE} ${ext=.dylib:MANAGED_PEERS_CLOSURE} --ya-end-command-file ${BINDIR}/cls - +SOURCES_JAR=no +_PACK_SRC_JAR_IMPL=&& $FS_TOOLS md ${BINDIR}/src $JAR_GEN_JSRCS $LINK_JAR_JSOURCES && ${cwd;suf=/src:BINDIR} $JDK_RESOURCE/bin/jar cfvm ${output;pre=${BINDIR}/${MODULE_PREFIX};suf=-sources.jar:REALPRJNAME} $VCS_JAVA . +_PACK_SRC_JAR= + # tag:java-specific -_MAKE_JSTYLE_FILE_LIST= - +_PACK_JNI= +_PACK_JNI_CMD= && $FS_TOOLS link_or_copy_to_dir --ya-start-command-file ${ext=.so:MANAGED_PEERS_CLOSURE} ${ext=.dll:MANAGED_PEERS_CLOSURE} ${ext=.dylib:MANAGED_PEERS_CLOSURE} --ya-end-command-file ${BINDIR}/cls + # tag:java-specific -_LINK_UBERJAR= -_UBERJAR_SELF= -_DO_LINK_UBERJAR= && $JDK_RESOURCE/bin/java -cp $UBERJAR_RESOURCE/devtools-java_shader.jar ru.yandex.devtools.emigrante.Main --out-jar $TARGET $_UBERJAR_SELF ${ext=.jar;pre=--jar :MANAGED_PEERS_CLOSURE} ${UBERJAR_PREFIX_FLAG} ${UBERJAR_HIDE_EXCLUDE_FLAGS} $UBERJAR_PATH_EXCLUDES ${UBERJAR_MANIFEST_TRANSFORMER_MAIN_FLAG} ${UBERJAR_MANIFEST_TRANSFORMER_ATTRIBUTE_FLAGS} ${UBERJAR_APPENDING_TRANSFORMER_FLAGS} ${UBERJAR_SERVICES_RESOURCE_TRANSFORMER_FLAG}\ - && $YMAKE_PYTHON ${input:"build/scripts/mkdir.py"} $BINDIR/_empty/META-INF \ - && $YMAKE_PYTHON ${input:"build/scripts/touch.py"} $BINDIR/_empty/META-INF/MANIFEST.MF \ - && $UPDATE_VCS_JAVA_INFO_NODEP($TARGET) \ - && ${cwd;suf=/_empty:BINDIR} ${JDK_RESOURCE}/bin/jar ufv ${TARGET} META-INF/MANIFEST.MF \ - && $JDK_RESOURCE/bin/jar ufvm $TARGET $VCS_JAVA - +_MAKE_JSTYLE_FILE_LIST= + # tag:java-specific -macro _PACK_JAR_HELPER(Out) { - .CMD=${cwd;suf=/cls:BINDIR} $JDK_RESOURCE/bin/jar cfvm $Out $VCS_JAVA . -} - +_LINK_UBERJAR= +_UBERJAR_SELF= +_DO_LINK_UBERJAR= && $JDK_RESOURCE/bin/java -cp $UBERJAR_RESOURCE/devtools-java_shader.jar ru.yandex.devtools.emigrante.Main --out-jar $TARGET $_UBERJAR_SELF ${ext=.jar;pre=--jar :MANAGED_PEERS_CLOSURE} ${UBERJAR_PREFIX_FLAG} ${UBERJAR_HIDE_EXCLUDE_FLAGS} $UBERJAR_PATH_EXCLUDES ${UBERJAR_MANIFEST_TRANSFORMER_MAIN_FLAG} ${UBERJAR_MANIFEST_TRANSFORMER_ATTRIBUTE_FLAGS} ${UBERJAR_APPENDING_TRANSFORMER_FLAGS} ${UBERJAR_SERVICES_RESOURCE_TRANSFORMER_FLAG}\ + && $YMAKE_PYTHON ${input:"build/scripts/mkdir.py"} $BINDIR/_empty/META-INF \ + && $YMAKE_PYTHON ${input:"build/scripts/touch.py"} $BINDIR/_empty/META-INF/MANIFEST.MF \ + && $UPDATE_VCS_JAVA_INFO_NODEP($TARGET) \ + && ${cwd;suf=/_empty:BINDIR} ${JDK_RESOURCE}/bin/jar ufv ${TARGET} META-INF/MANIFEST.MF \ + && $JDK_RESOURCE/bin/jar ufvm $TARGET $VCS_JAVA + # tag:java-specific -macro _JAVAC_RUN_HELPER(JAVAC_CMD_WITH_ARGS...) { - .CMD=${cwd:ARCADIA_BUILD_ROOT} $YMAKE_PYTHON ${input:"build/scripts/with_pathsep_resolve.py"} $YMAKE_PYTHON ${input:"build/scripts/setup_java_tmpdir.py"} $YMAKE_PYTHON ${input:"build/scripts/run_javac.py"} --sources-list ${BINDIR}/all-java.srclst ${JAVAC_CMD_WITH_ARGS} @${BINDIR}/all-java.srclst -classpath ${ARCADIA_BUILD_ROOT}/bfg.jar -Xpkginfo:always ${JAVAC_OPTS} $_JAR_ANN_PROC_OPTS($_JAR_ANN_PROCESSORS) -d ${BINDIR}/cls -g -encoding UTF-8 -} -macro _ADD_HIDDEN_INPUTS(Inputs...) { - .CMD=${input;hide:Inputs} -} +macro _PACK_JAR_HELPER(Out) { + .CMD=${cwd;suf=/cls:BINDIR} $JDK_RESOURCE/bin/jar cfvm $Out $VCS_JAVA . +} # tag:java-specific -ERROR_PRONE_JDK16_ADD_OPENS=-J--add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED -J--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED -J--add-opens=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED -J--add-opens=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED -J--add-opens=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED -J--add-opens=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED -J--add-opens=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED -J--add-opens=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED -J--add-opens=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED -J--add-opens=jdk.compiler/com.sun.tools.javac.jvm=ALL-UNNAMED -J--add-opens=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED -ERROR_PRONE_2_7_1_FORCED_OPTS=-Xep:InlineMeInliner:OFF -Xep:SameNameButDifferent:OFF - +macro _JAVAC_RUN_HELPER(JAVAC_CMD_WITH_ARGS...) { + .CMD=${cwd:ARCADIA_BUILD_ROOT} $YMAKE_PYTHON ${input:"build/scripts/with_pathsep_resolve.py"} $YMAKE_PYTHON ${input:"build/scripts/setup_java_tmpdir.py"} $YMAKE_PYTHON ${input:"build/scripts/run_javac.py"} --sources-list ${BINDIR}/all-java.srclst ${JAVAC_CMD_WITH_ARGS} @${BINDIR}/all-java.srclst -classpath ${ARCADIA_BUILD_ROOT}/bfg.jar -Xpkginfo:always ${JAVAC_OPTS} $_JAR_ANN_PROC_OPTS($_JAR_ANN_PROCESSORS) -d ${BINDIR}/cls -g -encoding UTF-8 +} +macro _ADD_HIDDEN_INPUTS(Inputs...) { + .CMD=${input;hide:Inputs} +} + # tag:java-specific -JAVA_COVERAGE_SRCLIST_FLAG=--coverage ${output;pre=${MODULE_PREFIX};suf=.cpsf:REALPRJNAME} --source-root ${ARCADIA_ROOT} -JAVA_COVERAGE_SRCLIST= -PREPARE_JAVA_BUILD_DIRS=$FS_TOOLS md ${BINDIR}/cls && $FS_TOOLS md ${BINDIR}/misc -EXTRACT_GENDIRS=${cwd:BINDIR} $YMAKE_PYTHON ${input:"build/scripts/autotar_gendirs.py"} --unpack --ext .gentar ${ext=.gentar:AUTO_INPUT} -COLLECT_JAVA_SRCLIST=${YMAKE_PYTHON} ${input:"build/scripts/make_java_srclists.py"} --moddir ${CURDIR} --java ${BINDIR}/all-java.srclst ${KT_SRSCLIST} ${JAVA_COVERAGE_SRCLIST} --ya-start-command-file ${ALL_JAR_SOURCES} ${ext=.java:AUTO_INPUT} ${ext=.kt:AUTO_INPUT} --ya-end-command-file -COLLECT_CLASSPATH=${YMAKE_PYTHON} ${input:"build/scripts/writer.py"} --file ${BINDIR}/bfg.txt -m --ya-start-command-file ${rootrel:MANAGED_PEERS_CLOSURE} $KT_CLASSPATH_ITEM --ya-end-command-file -LINK_CLASSPATH=${YMAKE_PYTHON} ${input:"build/scripts/make_manifest_from_bf.py"} ${BINDIR}/bfg.txt ${ARCADIA_BUILD_ROOT}/bfg.jar -COMPILE_JAVA_SRCLIST=$_JAVAC_RUN_HELPER($JAVAC_CMD) -PACK_JAR=$_PACK_JAR_HELPER($TARGET) -# NOTE: No && before LINK_JAR_RESOURCES, ALL_KT_COMMANDS and JAR_GEN_SRCS needed since those vars either empty or starts with && -LINK_JAR=$PREPARE_JAVA_BUILD_DIRS \ - && $EXTRACT_GENDIRS \ - && $COLLECT_JAVA_SRCLIST \ - $JAR_GEN_SRCS \ - $ALL_KT_COMMANDS \ - && $COLLECT_CLASSPATH \ - && $LINK_CLASSPATH \ - && $COMPILE_JAVA_SRCLIST \ - $LINK_JAR_RESOURCES \ - && ${cwd;suf=/cls:BINDIR} $GENERATE_VCS_JAVA_INFO_NODEP . \ - $_PACK_SRC_JAR \ - $_PACK_JNI \ - && $PACK_JAR \ - $_DO_JAVA_YNDEXING \ +ERROR_PRONE_JDK16_ADD_OPENS=-J--add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED -J--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED -J--add-opens=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED -J--add-opens=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED -J--add-opens=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED -J--add-opens=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED -J--add-opens=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED -J--add-opens=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED -J--add-opens=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED -J--add-opens=jdk.compiler/com.sun.tools.javac.jvm=ALL-UNNAMED -J--add-opens=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED +ERROR_PRONE_2_7_1_FORCED_OPTS=-Xep:InlineMeInliner:OFF -Xep:SameNameButDifferent:OFF + +# tag:java-specific +JAVA_COVERAGE_SRCLIST_FLAG=--coverage ${output;pre=${MODULE_PREFIX};suf=.cpsf:REALPRJNAME} --source-root ${ARCADIA_ROOT} +JAVA_COVERAGE_SRCLIST= +PREPARE_JAVA_BUILD_DIRS=$FS_TOOLS md ${BINDIR}/cls && $FS_TOOLS md ${BINDIR}/misc +EXTRACT_GENDIRS=${cwd:BINDIR} $YMAKE_PYTHON ${input:"build/scripts/autotar_gendirs.py"} --unpack --ext .gentar ${ext=.gentar:AUTO_INPUT} +COLLECT_JAVA_SRCLIST=${YMAKE_PYTHON} ${input:"build/scripts/make_java_srclists.py"} --moddir ${CURDIR} --java ${BINDIR}/all-java.srclst ${KT_SRSCLIST} ${JAVA_COVERAGE_SRCLIST} --ya-start-command-file ${ALL_JAR_SOURCES} ${ext=.java:AUTO_INPUT} ${ext=.kt:AUTO_INPUT} --ya-end-command-file +COLLECT_CLASSPATH=${YMAKE_PYTHON} ${input:"build/scripts/writer.py"} --file ${BINDIR}/bfg.txt -m --ya-start-command-file ${rootrel:MANAGED_PEERS_CLOSURE} $KT_CLASSPATH_ITEM --ya-end-command-file +LINK_CLASSPATH=${YMAKE_PYTHON} ${input:"build/scripts/make_manifest_from_bf.py"} ${BINDIR}/bfg.txt ${ARCADIA_BUILD_ROOT}/bfg.jar +COMPILE_JAVA_SRCLIST=$_JAVAC_RUN_HELPER($JAVAC_CMD) +PACK_JAR=$_PACK_JAR_HELPER($TARGET) +# NOTE: No && before LINK_JAR_RESOURCES, ALL_KT_COMMANDS and JAR_GEN_SRCS needed since those vars either empty or starts with && +LINK_JAR=$PREPARE_JAVA_BUILD_DIRS \ + && $EXTRACT_GENDIRS \ + && $COLLECT_JAVA_SRCLIST \ + $JAR_GEN_SRCS \ + $ALL_KT_COMMANDS \ + && $COLLECT_CLASSPATH \ + && $LINK_CLASSPATH \ + && $COMPILE_JAVA_SRCLIST \ + $LINK_JAR_RESOURCES \ + && ${cwd;suf=/cls:BINDIR} $GENERATE_VCS_JAVA_INFO_NODEP . \ + $_PACK_SRC_JAR \ + $_PACK_JNI \ + && $PACK_JAR \ + $_DO_JAVA_YNDEXING \ ${requirements;hide:JAVA_REQUIREMENTS} \ - ${kv;hide:"p JV"} ${kv;hide:"pc light-blue"} ${kv;hide:"show_out"} \ - $_MAKE_JSTYLE_FILE_LIST \ - $_LINK_UBERJAR \ - $_ADD_HIDDEN_INPUTS($JAVA_EXTERNAL_DEPENDENCIES_VALUE) - + ${kv;hide:"p JV"} ${kv;hide:"pc light-blue"} ${kv;hide:"show_out"} \ + $_MAKE_JSTYLE_FILE_LIST \ + $_LINK_UBERJAR \ + $_ADD_HIDDEN_INPUTS($JAVA_EXTERNAL_DEPENDENCIES_VALUE) + # tag:java-specific -_EXT_SRC_JAR= -_EXT_JAR= -_COPY_EXT_SRC_JAR= -_DO_USE_EXT_JAR=$FS_TOOLS copy ${input:_EXT_JAR} $TARGET $_COPY_EXT_SRC_JAR -_DO_COPY_EXT_SRC_JAR= && $FS_TOOLS copy $_EXT_SRC_JAR ${output;pre=${BINDIR}/${MODULE_PREFIX};suf=-sources.jar:REALPRJNAME} -macro JAVA_RESOURCE(JAR, SOURCES="") { - SET(_EXT_SRC_JAR $SOURCES) - SET(_EXT_JAR $JAR) -} - +_EXT_SRC_JAR= +_EXT_JAR= +_COPY_EXT_SRC_JAR= +_DO_USE_EXT_JAR=$FS_TOOLS copy ${input:_EXT_JAR} $TARGET $_COPY_EXT_SRC_JAR +_DO_COPY_EXT_SRC_JAR= && $FS_TOOLS copy $_EXT_SRC_JAR ${output;pre=${BINDIR}/${MODULE_PREFIX};suf=-sources.jar:REALPRJNAME} +macro JAVA_RESOURCE(JAR, SOURCES="") { + SET(_EXT_SRC_JAR $SOURCES) + SET(_EXT_JAR $JAR) +} + # tag:java-specific tag:fbs JAVA_FLATBUFFERS_VERSION = 2.0.0 @@ -3751,271 +3751,271 @@ module _COMPILABLE_JAR_BASE : _JAR_BASE { } # tag:java-specific tag:internal -### @usage: JAR_LIBRARY() #internal -### -### Reimplementation of the JAVA_LIBRARY with ymake.core.conf and ymake based dependency management +### @usage: JAR_LIBRARY() #internal +### +### Reimplementation of the JAVA_LIBRARY with ymake.core.conf and ymake based dependency management module JAR_LIBRARY: _COMPILABLE_JAR_BASE { - .EXTS=.jsrc .java .jar .mf .gentar .kt - .CMD=LINK_JAR - .FINAL_TARGET=yes - .ALIASES=JAVA_SRCS=IDEA_JAR_SRCS ANNOTATION_PROCESSOR=JAR_ANNOTATION_PROCESSOR - .RESTRICTED=EXTERNAL_JAR - MODULE_SUFFIX=.jar - - PEERDIR(build/platform/java/jdk) + .EXTS=.jsrc .java .jar .mf .gentar .kt + .CMD=LINK_JAR + .FINAL_TARGET=yes + .ALIASES=JAVA_SRCS=IDEA_JAR_SRCS ANNOTATION_PROCESSOR=JAR_ANNOTATION_PROCESSOR + .RESTRICTED=EXTERNAL_JAR + MODULE_SUFFIX=.jar + + PEERDIR(build/platform/java/jdk) PEERDIR+=$JDK_RESOURCE_PEERDIR - - when ($_EXT_SRC_JAR) { - _COPY_EXT_SRC_JAR=_DO_COPY_EXT_SRC_JAR - } - when ($_EXT_JAR) { - LINK_JAR=$_DO_USE_EXT_JAR - } - - # in the ideal world this statement must be under condition bellow - DEPENDENCY_MANAGEMENT(contrib/java/org/jetbrains/kotlin/kotlin-stdlib-jdk8/${KOTLIN_VERSION}) - when ($WITH_KOTLIN_VALUE) { - KT_SRSCLIST=$KT_SRSCLIST_FLAG - ALL_KT_COMMANDS=&& $COLLECT_KT_CLASSPATH && $LINK_KT_CLASSPATH && $COMPILE_KT - LINK_JAR_RESOURCES+=&& $FS_TOOLS copy_all_files ${KT_CLASSES_DIR} ${BINDIR}/cls - PEERDIR+=build/platform/java/kotlin contrib/java/org/jetbrains/kotlin/kotlin-stdlib-jdk8 - when($WITH_KOTLINC_PLUGIN_ALLOPEN) { - KOTLINC_OPTS_VALUE+=-Xplugin=${KOTLIN_COMPILER_RESOURCE_GLOBAL}/plugins/kotlin-allopen-plugin.jar - } + + when ($_EXT_SRC_JAR) { + _COPY_EXT_SRC_JAR=_DO_COPY_EXT_SRC_JAR + } + when ($_EXT_JAR) { + LINK_JAR=$_DO_USE_EXT_JAR + } + + # in the ideal world this statement must be under condition bellow + DEPENDENCY_MANAGEMENT(contrib/java/org/jetbrains/kotlin/kotlin-stdlib-jdk8/${KOTLIN_VERSION}) + when ($WITH_KOTLIN_VALUE) { + KT_SRSCLIST=$KT_SRSCLIST_FLAG + ALL_KT_COMMANDS=&& $COLLECT_KT_CLASSPATH && $LINK_KT_CLASSPATH && $COMPILE_KT + LINK_JAR_RESOURCES+=&& $FS_TOOLS copy_all_files ${KT_CLASSES_DIR} ${BINDIR}/cls + PEERDIR+=build/platform/java/kotlin contrib/java/org/jetbrains/kotlin/kotlin-stdlib-jdk8 + when($WITH_KOTLINC_PLUGIN_ALLOPEN) { + KOTLINC_OPTS_VALUE+=-Xplugin=${KOTLIN_COMPILER_RESOURCE_GLOBAL}/plugins/kotlin-allopen-plugin.jar + } when($WITH_KOTLINC_PLUGIN_NOARG) { KOTLINC_OPTS_VALUE+=-Xplugin=${KOTLIN_COMPILER_RESOURCE_GLOBAL}/plugins/kotlin-noarg-plugin.jar } - # Must be in sync with KT_CLASSES_DIR! - # There are problems in JDK13 with abs paths in classapth baked into jar file manifest. Using relative path - # here assumes that jar file with classpath for javac located in the $ARCADIA_BUILD_ROOT - KT_CLASSPATH_ITEM=$MODDIR/kt_cls - } - otherwise { - KT_SRSCLIST= - ALL_KT_COMMANDS= - KT_CLASSES= - } - - when ($SOURCES_JAR == "yes") { - _PACK_SRC_JAR=$_PACK_SRC_JAR_IMPL - } - - when ($JAVA_COVERAGE == "yes") { - JAVA_COVERAGE_SRCLIST=$JAVA_COVERAGE_SRCLIST_FLAG - } - - when ($MAKE_UBERJAR_VALUE == "yes") { - _LINK_UBERJAR=$_DO_LINK_UBERJAR - PACK_JAR=$_PACK_JAR_HELPER(${BINDIR}/${REALPRJNAME}.lib.jar) - # TODO: This condition is incorrect in case of autoinputs _UBERJAR_SELF should be empty only for - # modules without AUTO_INPUT and withuout JAVA_SRCS added inputs. - when($ALL_JAR_SOURCES) { - _UBERJAR_SELF=--jar ${BINDIR}/${REALPRJNAME}.lib.jar - } - PEERDIR+=build/platform/java/uberjar + # Must be in sync with KT_CLASSES_DIR! + # There are problems in JDK13 with abs paths in classapth baked into jar file manifest. Using relative path + # here assumes that jar file with classpath for javac located in the $ARCADIA_BUILD_ROOT + KT_CLASSPATH_ITEM=$MODDIR/kt_cls + } + otherwise { + KT_SRSCLIST= + ALL_KT_COMMANDS= + KT_CLASSES= + } + + when ($SOURCES_JAR == "yes") { + _PACK_SRC_JAR=$_PACK_SRC_JAR_IMPL + } + + when ($JAVA_COVERAGE == "yes") { + JAVA_COVERAGE_SRCLIST=$JAVA_COVERAGE_SRCLIST_FLAG + } + + when ($MAKE_UBERJAR_VALUE == "yes") { + _LINK_UBERJAR=$_DO_LINK_UBERJAR + PACK_JAR=$_PACK_JAR_HELPER(${BINDIR}/${REALPRJNAME}.lib.jar) + # TODO: This condition is incorrect in case of autoinputs _UBERJAR_SELF should be empty only for + # modules without AUTO_INPUT and withuout JAVA_SRCS added inputs. + when($ALL_JAR_SOURCES) { + _UBERJAR_SELF=--jar ${BINDIR}/${REALPRJNAME}.lib.jar + } + PEERDIR+=build/platform/java/uberjar PEERDIR+=$UBERJAR_RESOURCE_PEERDIR - } - - when($JAVA_YNDEXING == "yes") { - PEERDIR+=build/platform/java/kythe - _DO_JAVA_YNDEXING=&& $_JAVAC_RUN_HELPER($_JAVA_YNDEXING_CMD) && ${cwd:BINDIR} $YMAKE_PYTHON ${input:"build/scripts/find_and_tar.py"} kindex.tar .kzip ${output;hide;tared:"kindex.tar"} - } - - when($ERROR_PRONE_VALUE) { + } + + when($JAVA_YNDEXING == "yes") { + PEERDIR+=build/platform/java/kythe + _DO_JAVA_YNDEXING=&& $_JAVAC_RUN_HELPER($_JAVA_YNDEXING_CMD) && ${cwd:BINDIR} $YMAKE_PYTHON ${input:"build/scripts/find_and_tar.py"} kindex.tar .kzip ${output;hide;tared:"kindex.tar"} + } + + when($ERROR_PRONE_VALUE) { PEERDIR+=$ERROR_PRONE_PEERDIR - JAVAC_CMD=$ERROR_PRONE_JAVAC_CMD - } - - when($ERROR_PRONE_VALUE && $JDK_VERSION == "16") { - JAVAC_FLAGS_VALUE+=$ERROR_PRONE_JDK16_ADD_OPENS - JAVAC_OPTS+=$ERROR_PRONE_JDK16_ADD_OPENS - } - + JAVAC_CMD=$ERROR_PRONE_JAVAC_CMD + } + + when($ERROR_PRONE_VALUE && $JDK_VERSION == "16") { + JAVAC_FLAGS_VALUE+=$ERROR_PRONE_JDK16_ADD_OPENS + JAVAC_OPTS+=$ERROR_PRONE_JDK16_ADD_OPENS + } + when($ERROR_PRONE_VALUE && $JDK_VERSION == "17") { JAVAC_FLAGS_VALUE+=$ERROR_PRONE_JDK16_ADD_OPENS JAVAC_OPTS+=$ERROR_PRONE_JDK16_ADD_OPENS } - when($ERROR_PRONE_VALUE && $ERROR_PRONE_VERSION == "2.7.1") { - JAVAC_FLAGS_VALUE+=$ERROR_PRONE_2_7_1_FORCED_OPTS - JAVAC_OPTS+=$ERROR_PRONE_2_7_1_FORCED_OPTS - } - - when ($JAVA_ADD_DLLS_VALUE == "yes") { - CONSUME_NON_MANAGEABLE_PEERS=yes - _PACK_JNI=$_PACK_JNI_CMD - } - - when ($LINT_LEVEL_VALUE != "none") { - _MAKE_JSTYLE_FILE_LIST= && $YMAKE_PYTHON ${input:"build/scripts/writer.py"} --file ${output;noauto:"lint-java.srclst"} -m --ya-start-command-file $LINT_JAVA_SOURCES --ya-end-command-file - } - - SET(MODULE_TYPE JAVA_LIBRARY) - ENABLE(YMAKE_JAVA_TEST) - _ADD_JAVA_STYLE_CHECKS($(BUILD_ROOT)/$MODDIR/lint-java.srclst::$(SOURCE_ROOT)) - _ADD_CLASSPATH_CLASH_CHECK() - JAVA_MODULE(IDEA_ONLY) -} - + when($ERROR_PRONE_VALUE && $ERROR_PRONE_VERSION == "2.7.1") { + JAVAC_FLAGS_VALUE+=$ERROR_PRONE_2_7_1_FORCED_OPTS + JAVAC_OPTS+=$ERROR_PRONE_2_7_1_FORCED_OPTS + } + + when ($JAVA_ADD_DLLS_VALUE == "yes") { + CONSUME_NON_MANAGEABLE_PEERS=yes + _PACK_JNI=$_PACK_JNI_CMD + } + + when ($LINT_LEVEL_VALUE != "none") { + _MAKE_JSTYLE_FILE_LIST= && $YMAKE_PYTHON ${input:"build/scripts/writer.py"} --file ${output;noauto:"lint-java.srclst"} -m --ya-start-command-file $LINT_JAVA_SOURCES --ya-end-command-file + } + + SET(MODULE_TYPE JAVA_LIBRARY) + ENABLE(YMAKE_JAVA_TEST) + _ADD_JAVA_STYLE_CHECKS($(BUILD_ROOT)/$MODDIR/lint-java.srclst::$(SOURCE_ROOT)) + _ADD_CLASSPATH_CLASH_CHECK() + JAVA_MODULE(IDEA_ONLY) +} + # tag:java-specific -_SCRIPTGEN_FLAGS= -macro _GEN_JAVA_SCRIPT_IMPL(Out, Template, Props...) { - .CMD=$SCRIPTGEN_RESOURCE_GLOBAL/scriptgen --java $JDK_RESOURCE/bin/java --output ${output:Out} --template ${input:Template} ${_SCRIPTGEN_FLAGS} -D JAR_NAME=${REALPRJNAME}.jar -D CLASSPATH=${nopath;join;ext=.jar;pre="::":MANAGED_PEERS_CLOSURE} -D PROJECT_DIR=${MODDIR} -D JAR_BASENAME=${REALPRJNAME} $Props -} - +_SCRIPTGEN_FLAGS= +macro _GEN_JAVA_SCRIPT_IMPL(Out, Template, Props...) { + .CMD=$SCRIPTGEN_RESOURCE_GLOBAL/scriptgen --java $JDK_RESOURCE/bin/java --output ${output:Out} --template ${input:Template} ${_SCRIPTGEN_FLAGS} -D JAR_NAME=${REALPRJNAME}.jar -D CLASSPATH=${nopath;join;ext=.jar;pre="::":MANAGED_PEERS_CLOSURE} -D PROJECT_DIR=${MODDIR} -D JAR_BASENAME=${REALPRJNAME} $Props +} + # tag:java-specific -_GEN_USERSCRIPTS= -macro _ADD_GEN_JAVA_SCRIPT(Out, Template, Props...) { - SET_APPEND(_GEN_USERSCRIPTS && \$_GEN_JAVA_SCRIPT_IMPL($Out $Template $Props)) -} - +_GEN_USERSCRIPTS= +macro _ADD_GEN_JAVA_SCRIPT(Out, Template, Props...) { + SET_APPEND(_GEN_USERSCRIPTS && \$_GEN_JAVA_SCRIPT_IMPL($Out $Template $Props)) +} + # tag:java-specific -_PACK_JDK= - +_PACK_JDK= + # tag:java-specific -DO_GEN_JAVA_RUN_SH= -_SOURCE_JARS= -_SOURCE_JARS_CPLIST= -GEN_JAVA_RUN_SH=$SCRIPTGEN_RESOURCE_GLOBAL/scriptgen --java $JDK_RESOURCE/bin/java --output ${output:"run.sh"} -D GENERATE_DEFAULT_RUNNER=yes -D JAR_NAME=${REALPRJNAME}.jar -D CLASSPATH=${nopath;join;pre="::":MANAGED_PEERS_CLOSURE} -D PROJECT_DIR=${REALPRJNAME} -GEN_RUN_CP=${YMAKE_PYTHON} ${input:"build/scripts/writer.py"} --file ${BINDIR}/run-bf.txt -Q -m --ya-start-command-file ${nopath;qe;pre=$REALPRJNAME/:MANAGED_PEERS_CLOSURE} --ya-end-command-file && ${YMAKE_PYTHON} ${input:"build/scripts/make_manifest_from_bf.py"} ${BINDIR}/run-bf.txt ${TARGET} -COLLECT_JAR_PROGRAM_CP=$FS_TOOLS link_or_copy_to_dir --ya-start-command-file ${ext=.jar:MANAGED_PEERS_CLOSURE} ${ext=.so:MANAGED_PEERS_CLOSURE} ${ext=.dll:MANAGED_PEERS_CLOSURE} ${ext=.dylib:MANAGED_PEERS_CLOSURE} ${_SOURCE_JARS} --ya-end-command-file ${BINDIR}/${REALPRJNAME} ${hide;late_out;nopath;ext=.jar;pre=$BINDIR/$REALPRJNAME/:MANAGED_PEERS_CLOSURE} ${hide;late_out;nopath;ext=.so;pre=$BINDIR/$REALPRJNAME/:MANAGED_PEERS_CLOSURE} ${hide;late_out;nopath;ext=.dll;pre=$BINDIR/$REALPRJNAME/:MANAGED_PEERS_CLOSURE} ${hide;late_out;nopath;ext=.dylib;pre=$BINDIR/$REALPRJNAME/:MANAGED_PEERS_CLOSURE} -MAKE_JAR_PROGRAM_CPLST=$YMAKE_PYTHON ${input:"build/scripts/make_java_classpath_file.py"} --from-args ${output;pre=$MODULE_PREFIX;suf=${MODULE_SUFFIX}.cplst:REALPRJNAME} --ya-start-command-file ${nopath;rootrel;ext=.jar;pre=$BINDIR/$REALPRJNAME/:MANAGED_PEERS_CLOSURE} ${_SOURCE_JARS_CPLIST} --ya-end-command-file -TAR_CLASSPATH= && $YMAKE_PYTHON ${input:"build/scripts/find_and_tar.py"} ${output;pre=$MODULE_PREFIX;suf=.tar:REALPRJNAME} ${cwd;pre=$BINDIR/:REALPRJNAME} -DO_TAR_CLASSPATH= -LINK_JAR_PROGRAM=$FS_TOOLS md ${BINDIR}/${REALPRJNAME} && $COLLECT_JAR_PROGRAM_CP && $DO_GEN_JAVA_RUN_SH && $GEN_RUN_CP && $MAKE_JAR_PROGRAM_CPLST $DO_TAR_CLASSPATH $_GEN_USERSCRIPTS $_PACK_JDK ${kv;hide:"p JP"} ${kv;hide:"pc light-blue"} ${kv;hide:"show_out"} - +DO_GEN_JAVA_RUN_SH= +_SOURCE_JARS= +_SOURCE_JARS_CPLIST= +GEN_JAVA_RUN_SH=$SCRIPTGEN_RESOURCE_GLOBAL/scriptgen --java $JDK_RESOURCE/bin/java --output ${output:"run.sh"} -D GENERATE_DEFAULT_RUNNER=yes -D JAR_NAME=${REALPRJNAME}.jar -D CLASSPATH=${nopath;join;pre="::":MANAGED_PEERS_CLOSURE} -D PROJECT_DIR=${REALPRJNAME} +GEN_RUN_CP=${YMAKE_PYTHON} ${input:"build/scripts/writer.py"} --file ${BINDIR}/run-bf.txt -Q -m --ya-start-command-file ${nopath;qe;pre=$REALPRJNAME/:MANAGED_PEERS_CLOSURE} --ya-end-command-file && ${YMAKE_PYTHON} ${input:"build/scripts/make_manifest_from_bf.py"} ${BINDIR}/run-bf.txt ${TARGET} +COLLECT_JAR_PROGRAM_CP=$FS_TOOLS link_or_copy_to_dir --ya-start-command-file ${ext=.jar:MANAGED_PEERS_CLOSURE} ${ext=.so:MANAGED_PEERS_CLOSURE} ${ext=.dll:MANAGED_PEERS_CLOSURE} ${ext=.dylib:MANAGED_PEERS_CLOSURE} ${_SOURCE_JARS} --ya-end-command-file ${BINDIR}/${REALPRJNAME} ${hide;late_out;nopath;ext=.jar;pre=$BINDIR/$REALPRJNAME/:MANAGED_PEERS_CLOSURE} ${hide;late_out;nopath;ext=.so;pre=$BINDIR/$REALPRJNAME/:MANAGED_PEERS_CLOSURE} ${hide;late_out;nopath;ext=.dll;pre=$BINDIR/$REALPRJNAME/:MANAGED_PEERS_CLOSURE} ${hide;late_out;nopath;ext=.dylib;pre=$BINDIR/$REALPRJNAME/:MANAGED_PEERS_CLOSURE} +MAKE_JAR_PROGRAM_CPLST=$YMAKE_PYTHON ${input:"build/scripts/make_java_classpath_file.py"} --from-args ${output;pre=$MODULE_PREFIX;suf=${MODULE_SUFFIX}.cplst:REALPRJNAME} --ya-start-command-file ${nopath;rootrel;ext=.jar;pre=$BINDIR/$REALPRJNAME/:MANAGED_PEERS_CLOSURE} ${_SOURCE_JARS_CPLIST} --ya-end-command-file +TAR_CLASSPATH= && $YMAKE_PYTHON ${input:"build/scripts/find_and_tar.py"} ${output;pre=$MODULE_PREFIX;suf=.tar:REALPRJNAME} ${cwd;pre=$BINDIR/:REALPRJNAME} +DO_TAR_CLASSPATH= +LINK_JAR_PROGRAM=$FS_TOOLS md ${BINDIR}/${REALPRJNAME} && $COLLECT_JAR_PROGRAM_CP && $DO_GEN_JAVA_RUN_SH && $GEN_RUN_CP && $MAKE_JAR_PROGRAM_CPLST $DO_TAR_CLASSPATH $_GEN_USERSCRIPTS $_PACK_JDK ${kv;hide:"p JP"} ${kv;hide:"pc light-blue"} ${kv;hide:"show_out"} + # tag:java-specific -# UBERJAR program link command -LINK_UBERJAR_PROGRAM=$YMAKE_PYTHON ${input:"build/scripts/make_java_classpath_file.py"} --from-args ${output;pre=$MODULE_PREFIX;suf=${MODULE_SUFFIX}.cplst:REALPRJNAME} $TARGET \ - && $FS_TOOLS md ${BINDIR}/${REALPRJNAME} \ - && $FS_TOOLS link_or_copy ${BINDIR}/${REALPRJNAME}.jar $TARGET \ - && $FS_TOOLS link_or_copy_to_dir --ya-start-command-file ${BINDIR}/${REALPRJNAME}.jar ${ext=.so:MANAGED_PEERS_CLOSURE} ${ext=.dll:MANAGED_PEERS_CLOSURE} ${ext=.dylib:MANAGED_PEERS_CLOSURE} ${_SOURCE_JARS} --ya-end-command-file ${BINDIR}/${REALPRJNAME} ${hide;late_out;ext=.jar;pre=$BINDIR/$REALPRJNAME/:REALPRJNAME} ${hide;late_out;nopath;ext=.so;pre=$BINDIR/$REALPRJNAME/:MANAGED_PEERS_CLOSURE} ${hide;late_out;nopath;ext=.dll;pre=$BINDIR/$REALPRJNAME/:MANAGED_PEERS_CLOSURE} ${hide;late_out;nopath;ext=.dylib;pre=$BINDIR/$REALPRJNAME/:MANAGED_PEERS_CLOSURE} \ - $DO_TAR_CLASSPATH \ - $_GEN_USERSCRIPTS \ - $_PACK_JDK - +# UBERJAR program link command +LINK_UBERJAR_PROGRAM=$YMAKE_PYTHON ${input:"build/scripts/make_java_classpath_file.py"} --from-args ${output;pre=$MODULE_PREFIX;suf=${MODULE_SUFFIX}.cplst:REALPRJNAME} $TARGET \ + && $FS_TOOLS md ${BINDIR}/${REALPRJNAME} \ + && $FS_TOOLS link_or_copy ${BINDIR}/${REALPRJNAME}.jar $TARGET \ + && $FS_TOOLS link_or_copy_to_dir --ya-start-command-file ${BINDIR}/${REALPRJNAME}.jar ${ext=.so:MANAGED_PEERS_CLOSURE} ${ext=.dll:MANAGED_PEERS_CLOSURE} ${ext=.dylib:MANAGED_PEERS_CLOSURE} ${_SOURCE_JARS} --ya-end-command-file ${BINDIR}/${REALPRJNAME} ${hide;late_out;ext=.jar;pre=$BINDIR/$REALPRJNAME/:REALPRJNAME} ${hide;late_out;nopath;ext=.so;pre=$BINDIR/$REALPRJNAME/:MANAGED_PEERS_CLOSURE} ${hide;late_out;nopath;ext=.dll;pre=$BINDIR/$REALPRJNAME/:MANAGED_PEERS_CLOSURE} ${hide;late_out;nopath;ext=.dylib;pre=$BINDIR/$REALPRJNAME/:MANAGED_PEERS_CLOSURE} \ + $DO_TAR_CLASSPATH \ + $_GEN_USERSCRIPTS \ + $_PACK_JDK + # tag:java-specific -RUN_WITH_SOURCES=no -TARED_CLASSPATH=yes # TODO jbuild creates tar with all classpath deps by default and some projects rely on this. In ymake build this tar file creation is not needed and should be disabled by dafault in future -_JAR_SRCS_CALLED=no - +RUN_WITH_SOURCES=no +TARED_CLASSPATH=yes # TODO jbuild creates tar with all classpath deps by default and some projects rely on this. In ymake build this tar file creation is not needed and should be disabled by dafault in future +_JAR_SRCS_CALLED=no + # tag:java-specific -macro _MARK_JAVA_PROG_WITH_SOURCES(Args...) { - ENABLE(_JAR_SRCS_CALLED) -} - +macro _MARK_JAVA_PROG_WITH_SOURCES(Args...) { + ENABLE(_JAR_SRCS_CALLED) +} + # tag:java-specific module _JAR_RUNABLE: _COMPILABLE_JAR_BASE { - .FINAL_TARGET=yes - .CMD=LINK_JAR_PROGRAM - .ALIASES=JAVA_SRCS=_MARK_JAVA_PROG_WITH_SOURCES GENERATE_SCRIPT=_YMAKE_GENERATE_SCRIPT - MODULE_SUFFIX=.run.cp.jar - CONSUME_NON_MANAGEABLE_PEERS=yes - - when ($RUN_WITH_SOURCES == "yes") { - _SOURCE_JARS=${ext=.jar;noext;suf=-sources.jar:MANAGED_PEERS_CLOSURE} ${hide;late_out;ext=.jar;nopath;pre=$BINDIR/$REALPRJNAME/;noext;suf=-sources.jar:MANAGED_PEERS_CLOSURE} - _SOURCE_JARS_CPLIST=${nopath;rootrel;ext=.jar;pre=$BINDIR/$REALPRJNAME/;noext;suf=-sources.jar:MANAGED_PEERS_CLOSURE} - } - - when ($_JAR_SRCS_CALLED && $TARED_CLASSPATH) { - DO_TAR_CLASSPATH=$TAR_CLASSPATH - } - - when ($DISABLE_SCRIPTGEN) { - DO_GEN_JAVA_RUN_SH= - } - otherwise { - DO_GEN_JAVA_RUN_SH=$GEN_JAVA_RUN_SH - PEERDIR+=build/platform/java/scriptgen - } - - when ($WITH_JDK_VALUE) { + .FINAL_TARGET=yes + .CMD=LINK_JAR_PROGRAM + .ALIASES=JAVA_SRCS=_MARK_JAVA_PROG_WITH_SOURCES GENERATE_SCRIPT=_YMAKE_GENERATE_SCRIPT + MODULE_SUFFIX=.run.cp.jar + CONSUME_NON_MANAGEABLE_PEERS=yes + + when ($RUN_WITH_SOURCES == "yes") { + _SOURCE_JARS=${ext=.jar;noext;suf=-sources.jar:MANAGED_PEERS_CLOSURE} ${hide;late_out;ext=.jar;nopath;pre=$BINDIR/$REALPRJNAME/;noext;suf=-sources.jar:MANAGED_PEERS_CLOSURE} + _SOURCE_JARS_CPLIST=${nopath;rootrel;ext=.jar;pre=$BINDIR/$REALPRJNAME/;noext;suf=-sources.jar:MANAGED_PEERS_CLOSURE} + } + + when ($_JAR_SRCS_CALLED && $TARED_CLASSPATH) { + DO_TAR_CLASSPATH=$TAR_CLASSPATH + } + + when ($DISABLE_SCRIPTGEN) { + DO_GEN_JAVA_RUN_SH= + } + otherwise { + DO_GEN_JAVA_RUN_SH=$GEN_JAVA_RUN_SH + PEERDIR+=build/platform/java/scriptgen + } + + when ($WITH_JDK_VALUE) { _PACK_JDK= && ${YMAKE_PYTHON} ${input:"build/scripts/tar_directory.py"} ${output;tared:"jdk.tar"} $WITH_JDK_RESOURCE $WITH_JDK_RESOURCE - } - - when ($MAKE_UBERJAR_VALUE == "yes") { - LINK_JAR_PROGRAM=$LINK_UBERJAR_PROGRAM - DYNAMIC_LINK=no - _SCRIPTGEN_FLAGS=-D IS_UBERJAR=yes - } - otherwise { - _SCRIPTGEN_FLAGS=-D IS_UBERJAR=no - } + } + + when ($MAKE_UBERJAR_VALUE == "yes") { + LINK_JAR_PROGRAM=$LINK_UBERJAR_PROGRAM + DYNAMIC_LINK=no + _SCRIPTGEN_FLAGS=-D IS_UBERJAR=yes + } + otherwise { + _SCRIPTGEN_FLAGS=-D IS_UBERJAR=no + } CHECK_PROVIDES() -} - +} + # tag:java-specific -multimodule JAR_PROGRAM { - module JAR_RUNABLE: _JAR_RUNABLE { - .ALLOWED=JAVA_RUNTIME_PEERDIR JAVA_RUNTIME_EXCLUDE - .IGNORED=JAVA_SRCS RUN_JAVA_PROGRAM - .ALIASES=EXCLUDE=_NOOP_MACRO PEERDIR=_NOOP_MACRO DEPENDENCY_MANAGEMENT=_NOOP_MACRO JAVA_RUNTIME_PEERDIR=PEERDIR JAVA_RUNTIME_EXCLUDE=EXCLUDE - .PEERDIRSELF=JAR_COMPILATION - - SET(MODULE_TYPE JAVA_PROGRAM) - } - module JAR_COMPILATION: JAR_LIBRARY { - .ALIASES=JAVA_RUNTIME_PEERDIR=_NOOP_MACRO JAVA_RUNTIME_EXCLUDE=_NOOP_MACRO - .FINAL_TARGET=no - SET(MODULE_TYPE JAVA_PROGRAM) - } -} - +multimodule JAR_PROGRAM { + module JAR_RUNABLE: _JAR_RUNABLE { + .ALLOWED=JAVA_RUNTIME_PEERDIR JAVA_RUNTIME_EXCLUDE + .IGNORED=JAVA_SRCS RUN_JAVA_PROGRAM + .ALIASES=EXCLUDE=_NOOP_MACRO PEERDIR=_NOOP_MACRO DEPENDENCY_MANAGEMENT=_NOOP_MACRO JAVA_RUNTIME_PEERDIR=PEERDIR JAVA_RUNTIME_EXCLUDE=EXCLUDE + .PEERDIRSELF=JAR_COMPILATION + + SET(MODULE_TYPE JAVA_PROGRAM) + } + module JAR_COMPILATION: JAR_LIBRARY { + .ALIASES=JAVA_RUNTIME_PEERDIR=_NOOP_MACRO JAVA_RUNTIME_EXCLUDE=_NOOP_MACRO + .FINAL_TARGET=no + SET(MODULE_TYPE JAVA_PROGRAM) + } +} + # tag:java-specific -LINK_JAR_TEST=${YMAKE_PYTHON} ${input:"build/scripts/writer.py"} --file ${BINDIR}/run-bf.txt -Q -m --ya-start-command-file ${ext=.jar:MANAGED_PEERS_CLOSURE} --ya-end-command-file && ${YMAKE_PYTHON} ${input:"build/scripts/make_manifest_from_bf.py"} ${BINDIR}/run-bf.txt ${TARGET} -YMAKE_JAVA_TEST= -module _JAR_TEST: _COMPILABLE_JAR_BASE { - .FINAL_TARGET=yes - .CMD=LINK_JAR_TEST - CONSUME_NON_MANAGEABLE_PEERS=yes - - SET(MODULE_SUFFIX .test.cp.jar) - ENABLE(YMAKE_JAVA_TEST) - JAVA_TEST() +LINK_JAR_TEST=${YMAKE_PYTHON} ${input:"build/scripts/writer.py"} --file ${BINDIR}/run-bf.txt -Q -m --ya-start-command-file ${ext=.jar:MANAGED_PEERS_CLOSURE} --ya-end-command-file && ${YMAKE_PYTHON} ${input:"build/scripts/make_manifest_from_bf.py"} ${BINDIR}/run-bf.txt ${TARGET} +YMAKE_JAVA_TEST= +module _JAR_TEST: _COMPILABLE_JAR_BASE { + .FINAL_TARGET=yes + .CMD=LINK_JAR_TEST + CONSUME_NON_MANAGEABLE_PEERS=yes + + SET(MODULE_SUFFIX .test.cp.jar) + ENABLE(YMAKE_JAVA_TEST) + JAVA_TEST() CHECK_PROVIDES() -} - +} + # tag:java-specific -multimodule JUNIT5_YMAKE { - module JAR_TESTABLE: _JAR_TEST { - .ALLOWED=JAVA_TEST_PEERDIR - .IGNORED=JAVA_SRCS RUN_JAVA_PROGRAM - .ALIASES=EXCLUDE=_NOOP_MACRO PEERDIR=_NOOP_MACRO DEPENDENCY_MANAGEMENT=_NOOP_MACRO JAVA_TEST_PEERDIR=PEERDIR - .PEERDIRSELF=JAR_COMPILATION - - SET(MODULE_TYPE JUNIT5) - } - module JAR_COMPILATION: JAR_LIBRARY { - .IGNORED=JAVA_TEST_PEERDIR - .ALIASES=JAVA_TEST_PEERDIR=_NOOP_MACRO - .FINAL_TARGET=no - - PEERDIR(devtools/junit5-runner build/platform/java/jacoco-agent) - } -} - +multimodule JUNIT5_YMAKE { + module JAR_TESTABLE: _JAR_TEST { + .ALLOWED=JAVA_TEST_PEERDIR + .IGNORED=JAVA_SRCS RUN_JAVA_PROGRAM + .ALIASES=EXCLUDE=_NOOP_MACRO PEERDIR=_NOOP_MACRO DEPENDENCY_MANAGEMENT=_NOOP_MACRO JAVA_TEST_PEERDIR=PEERDIR + .PEERDIRSELF=JAR_COMPILATION + + SET(MODULE_TYPE JUNIT5) + } + module JAR_COMPILATION: JAR_LIBRARY { + .IGNORED=JAVA_TEST_PEERDIR + .ALIASES=JAVA_TEST_PEERDIR=_NOOP_MACRO + .FINAL_TARGET=no + + PEERDIR(devtools/junit5-runner build/platform/java/jacoco-agent) + } +} + # tag:java-specific -multimodule JTEST_YMAKE { - module JAR_TESTABLE: _JAR_TEST { - .ALLOWED=YT_SPEC - .IGNORED=JAVA_SRCS RUN_JAVA_PROGRAM - .ALIASES=EXCLUDE=_NOOP_MACRO PEERDIR=_NOOP_MACRO DEPENDENCY_MANAGEMENT=_NOOP_MACRO JAVA_TEST_PEERDIR=PEERDIR - .PEERDIRSELF=JAR_COMPILATION - - SET(MODULE_TYPE JTEST) - PEERDIR(devtools/junit-runner) - DEPENDENCY_MANAGEMENT(contrib/java/org/hamcrest/hamcrest-core/1.3 contrib/java/com/google/code/gson/gson/2.8.6 contrib/java/com/beust/jcommander/1.72 contrib/java/junit/junit/4.12) - } - module JAR_COMPILATION: JAR_LIBRARY { - .ALIASES=JAVA_TEST_PEERDIR=_NOOP_MACRO - .ALLOWED=YT_SPEC - .FINAL_TARGET=no - - DEPENDS(contrib/java/org/sonarsource/scanner/cli/sonar-scanner-cli/2.8) - PEERDIR(build/platform/java/jacoco-agent) - } -} - +multimodule JTEST_YMAKE { + module JAR_TESTABLE: _JAR_TEST { + .ALLOWED=YT_SPEC + .IGNORED=JAVA_SRCS RUN_JAVA_PROGRAM + .ALIASES=EXCLUDE=_NOOP_MACRO PEERDIR=_NOOP_MACRO DEPENDENCY_MANAGEMENT=_NOOP_MACRO JAVA_TEST_PEERDIR=PEERDIR + .PEERDIRSELF=JAR_COMPILATION + + SET(MODULE_TYPE JTEST) + PEERDIR(devtools/junit-runner) + DEPENDENCY_MANAGEMENT(contrib/java/org/hamcrest/hamcrest-core/1.3 contrib/java/com/google/code/gson/gson/2.8.6 contrib/java/com/beust/jcommander/1.72 contrib/java/junit/junit/4.12) + } + module JAR_COMPILATION: JAR_LIBRARY { + .ALIASES=JAVA_TEST_PEERDIR=_NOOP_MACRO + .ALLOWED=YT_SPEC + .FINAL_TARGET=no + + DEPENDS(contrib/java/org/sonarsource/scanner/cli/sonar-scanner-cli/2.8) + PEERDIR(build/platform/java/jacoco-agent) + } +} + # tag:python-specific tag:deprecated ### @usage: PY2_LIBRARY() # deprecated ### @@ -4073,9 +4073,9 @@ module _PY3_LIBRARY: _LIBRARY { .RESTRICTED=PYTHON3_ADDINCL USE_PYTHON3 PYTHON2_ADDINCL USE_PYTHON2 OPTIMIZE_PY_PROTOS NO_OPTIMIZE_PY_PROTOS USE_GLOBAL_CMD=yes - PEERDIR($YMAKE_PYTHON3_PEER) - RUN_CYTHON_SCRIPT=$YMAKE_PYTHON3 $CYTHON_SCRIPT - + PEERDIR($YMAKE_PYTHON3_PEER) + RUN_CYTHON_SCRIPT=$YMAKE_PYTHON3 $CYTHON_SCRIPT + when ($PY_PROTO_MYPY_ENABLED == "yes") { PY_PROTO_MYPY_SUFFIX=_pb2.pyi PY_PROTO_MYPY_PLUGIN=$PY_PROTO_MYPY_PLUGIN_BASE ${output;hide;noauto;norel;nopath;noext;suf=_pb2.pyi:File} @@ -4260,7 +4260,7 @@ when ($JDK_VERSION == "10") { when ($JDK_VERSION == "8") { JDK_RESOURCE_PEERDIR=build/platform/java/jdk/jdk8 build/platform/java/jdk/jdk11 } - + # tag:java-specific when ($JDK_VERSION == "17") { UBERJAR_RESOURCE_PEERDIR=build/platform/java/uberjar/uberjar17 @@ -4355,10 +4355,10 @@ otherwise { } # tag:java-specific -when ($USE_SYSTEM_UBERJAR) { - UBERJAR_RESOURCE=$USE_SYSTEM_UBERJAR -} -otherwise { +when ($USE_SYSTEM_UBERJAR) { + UBERJAR_RESOURCE=$USE_SYSTEM_UBERJAR +} +otherwise { when ($JDK_VERSION == "17") { UBERJAR_RESOURCE=$UBERJAR17_RESOURCE_GLOBAL } @@ -4386,8 +4386,8 @@ otherwise { when ($JDK_VERSION == "8") { UBERJAR_RESOURCE=$UBERJAR8_RESOURCE_GLOBAL } -} - +} + # tag:java-specific when ($JDK_VERSION == "17") { WITH_JDK_RESOURCE=$WITH_JDK17_RESOURCE_GLOBAL @@ -4513,7 +4513,7 @@ macro UBERJAR() { # tag:java-specific UBERJAR_PREFIX_VALUE= -UBERJAR_PREFIX_FLAG= +UBERJAR_PREFIX_FLAG= ### @usage: UBERJAR_HIDING_PREFIX(Arg) ### ### Set prefix for classes to shade. All classes in UBERJAR will be moved into package prefixed with Arg. @@ -4522,12 +4522,12 @@ UBERJAR_PREFIX_FLAG= ### @see: [UBERJAR](#macro_UBERJAR) macro UBERJAR_HIDING_PREFIX(Arg) { SET(UBERJAR_PREFIX_VALUE $Arg) - SET(UBERJAR_PREFIX_FLAG ${pre=--shade-prefix :Arg}) + SET(UBERJAR_PREFIX_FLAG ${pre=--shade-prefix :Arg}) } # tag:java-specific UBERJAR_HIDE_EXCLUDE_VALUE= -UBERJAR_HIDE_EXCLUDE_FLAGS= +UBERJAR_HIDE_EXCLUDE_FLAGS= ### @usage: UBERJAR_HIDE_EXCLUDE_PATTERN(Args...) ### ### Exculude classes matching this patterns from shading (if enabled). @@ -4537,11 +4537,11 @@ UBERJAR_HIDE_EXCLUDE_FLAGS= ### @see: [UBERJAR](#macro_UBERJAR), [UBERJAR_HIDING_PREFIX](#macro_UBERJAR_HIDING_PREFIX) macro UBERJAR_HIDE_EXCLUDE_PATTERN(Args...) { SET_APPEND(UBERJAR_HIDE_EXCLUDE_VALUE $ARGS_DELIM $Args) - SET_APPEND(UBERJAR_HIDE_EXCLUDE_FLAGS ${pre=--shade-exclude :Args}) + SET_APPEND(UBERJAR_HIDE_EXCLUDE_FLAGS ${pre=--shade-exclude :Args}) } # tag:java-specific -UBERJAR_PATH_EXCLUDES= +UBERJAR_PATH_EXCLUDES= UBERJAR_PATH_EXCLUDE_VALUE= ### @usage: UBERJAR_PATH_EXCLUDE_PREFIX(Args...) ### @@ -4551,12 +4551,12 @@ UBERJAR_PATH_EXCLUDE_VALUE= ### @see: [UBERJAR](#macro_UBERJAR) macro UBERJAR_PATH_EXCLUDE_PREFIX(Args...) { SET_APPEND(UBERJAR_PATH_EXCLUDE_VALUE $ARGS_DELIM $Args) - SET_APPEND(UBERJAR_PATH_EXCLUDES ${pre=--uber-exclude :Args}) + SET_APPEND(UBERJAR_PATH_EXCLUDES ${pre=--uber-exclude :Args}) } # tag:java-specific UBERJAR_MANIFEST_TRANSFORMER_MAIN_VALUE= -UBERJAR_MANIFEST_TRANSFORMER_MAIN_FLAG= +UBERJAR_MANIFEST_TRANSFORMER_MAIN_FLAG= ### @usage: UBERJAR_MANIFEST_TRANSFORMER_MAIN(Main) ### ### Transform manifest.mf for UBERJAR() java programs, set main-class attribute @@ -4564,12 +4564,12 @@ UBERJAR_MANIFEST_TRANSFORMER_MAIN_FLAG= ### @see: [UBERJAR](#macro_UBERJAR) macro UBERJAR_MANIFEST_TRANSFORMER_MAIN(Main) { SET(UBERJAR_MANIFEST_TRANSFORMER_MAIN_VALUE $Main) - SET(UBERJAR_MANIFEST_TRANSFORMER_MAIN_FLAG --manifest-main $Main) + SET(UBERJAR_MANIFEST_TRANSFORMER_MAIN_FLAG --manifest-main $Main) } # tag:java-specific UBERJAR_MANIFEST_TRANSFORMER_ATTRIBUTE_VALUE= -UBERJAR_MANIFEST_TRANSFORMER_ATTRIBUTE_FLAGS= +UBERJAR_MANIFEST_TRANSFORMER_ATTRIBUTE_FLAGS= ### @usage: UBERJAR_MANIFEST_TRANSFORMER_ATTRIBUTE(Key, Value) ### ### Transform manifest.mf for UBERJAR() java programs, set attribute @@ -4577,12 +4577,12 @@ UBERJAR_MANIFEST_TRANSFORMER_ATTRIBUTE_FLAGS= ### @see: [UBERJAR](#macro_UBERJAR) macro UBERJAR_MANIFEST_TRANSFORMER_ATTRIBUTE(Key, Value) { SET_APPEND(UBERJAR_MANIFEST_TRANSFORMER_ATTRIBUTE_VALUE $ARGS_DELIM $Key : $Value) - SET_APPEND(UBERJAR_MANIFEST_TRANSFORMER_ATTRIBUTE_FLAGS --manifest-attribute ${Key}:${Value}) + SET_APPEND(UBERJAR_MANIFEST_TRANSFORMER_ATTRIBUTE_FLAGS --manifest-attribute ${Key}:${Value}) } # tag:java-specific UBERJAR_APPENDING_TRANSFORMER_VALUE= -UBERJAR_APPENDING_TRANSFORMER_FLAGS= +UBERJAR_APPENDING_TRANSFORMER_FLAGS= ### @usage: UBERJAR_APPENDING_TRANSFORMER(Resource) ### ### Add AppendingTransformer for UBERJAR() java programs @@ -4593,12 +4593,12 @@ UBERJAR_APPENDING_TRANSFORMER_FLAGS= ### @see: [UBERJAR](#macro_UBERJAR) macro UBERJAR_APPENDING_TRANSFORMER(Resources...) { SET_APPEND(UBERJAR_APPENDING_TRANSFORMER_VALUE $ARGS_DELIM $Resources) - SET_APPEND(UBERJAR_APPENDING_TRANSFORMER_FLAGS ${pre=--append-transformer :Resources}) + SET_APPEND(UBERJAR_APPENDING_TRANSFORMER_FLAGS ${pre=--append-transformer :Resources}) } # tag:java-specific UBERJAR_SERVICES_RESOURCE_TRANSFORMER_VALUE= -UBERJAR_SERVICES_RESOURCE_TRANSFORMER_FLAG= +UBERJAR_SERVICES_RESOURCE_TRANSFORMER_FLAG= ### @usage: UBERJAR_SERVICES_RESOURCE_TRANSFORMER() ### ### Add ServicesResourceTransformer for UBERJAR() java programs @@ -4606,7 +4606,7 @@ UBERJAR_SERVICES_RESOURCE_TRANSFORMER_FLAG= ### @see: [UBERJAR](#macro_UBERJAR) macro UBERJAR_SERVICES_RESOURCE_TRANSFORMER() { SET(UBERJAR_SERVICES_RESOURCE_TRANSFORMER_VALUE yes) - SET(UBERJAR_SERVICES_RESOURCE_TRANSFORMER_FLAG --service-transformer) + SET(UBERJAR_SERVICES_RESOURCE_TRANSFORMER_FLAG --service-transformer) } # tag:idea-specific @@ -4645,7 +4645,7 @@ JAVAC_FLAGS_VALUE= ### ### Set additional Java compilation flags. macro JAVAC_FLAGS(Args...) { - SET_APPEND(JAVAC_OPTS $Args) + SET_APPEND(JAVAC_OPTS $Args) SET_APPEND(JAVAC_FLAGS_VALUE $ARGS_DELIM $Args) } @@ -4737,20 +4737,20 @@ macro ADD_DLLS_TO_JAR() { } # tag:java-specific -MANAGED_PEERS= -MANAGED_PEERS_CLOSURE= -RUN_JAVA_PROGRAM_MANAGED= -MANAGEABLE_PEERS_ROOTS=contrib/java -HAS_MANAGEABLE_PEERS=no -PROPAGATES_MANAGEABLE_PEERS=no -YMAKE_CLASSPATH_CHECKS=yes -# All items of this list must be PEERS, GHOST PEERS or TOOLS of the test module or module itself. -# All items of this list must has at least one of HAS_MANAGEABLE_PEERS or PROPAGATES_MANAGEABLE_PEERS flags set yes. -# This variable is used by JUnit tests but not TestNG. -TEST_CLASSPATH_VALUE= -# Calculated and replaced by ymake can be used in DART DATA -TEST_CLASSPATH_MANAGED= - +MANAGED_PEERS= +MANAGED_PEERS_CLOSURE= +RUN_JAVA_PROGRAM_MANAGED= +MANAGEABLE_PEERS_ROOTS=contrib/java +HAS_MANAGEABLE_PEERS=no +PROPAGATES_MANAGEABLE_PEERS=no +YMAKE_CLASSPATH_CHECKS=yes +# All items of this list must be PEERS, GHOST PEERS or TOOLS of the test module or module itself. +# All items of this list must has at least one of HAS_MANAGEABLE_PEERS or PROPAGATES_MANAGEABLE_PEERS flags set yes. +# This variable is used by JUnit tests but not TestNG. +TEST_CLASSPATH_VALUE= +# Calculated and replaced by ymake can be used in DART DATA +TEST_CLASSPATH_MANAGED= + # tag:java-specific DEPENDENCY_MANAGEMENT_VALUE= ### @usage: DEPENDENCY_MANAGEMENT(path/to/lib1 path/to/lib2 ...) @@ -4772,7 +4772,7 @@ DEPENDENCY_MANAGEMENT_VALUE= ### Documentation: https://wiki.yandex-team.ru/yatool/java/ macro DEPENDENCY_MANAGEMENT(Args...) { SET_APPEND(DEPENDENCY_MANAGEMENT_VALUE $ARGS_DELIM $Args) - _GHOST_PEERDIR($Args) + _GHOST_PEERDIR($Args) } # tag:java-specific @@ -4860,10 +4860,10 @@ macro JAVA_EXTERNAL_DEPENDENCIES(Args...) { module _JAVA_PLACEHOLDER: _BASE_UNIT { .CMD=TOUCH_JAVA_UNIT .FINAL_TARGET=yes - .ALLOWED=DEPENDENCY_MANAGEMENT EXCLUDE - .ALIASES=RUN_JAVA_PROGRAM=_RUN_JBUILD_PROGRAM - HAS_MANAGEABLE_PEERS=yes - DYNAMIC_LINK=yes + .ALLOWED=DEPENDENCY_MANAGEMENT EXCLUDE + .ALIASES=RUN_JAVA_PROGRAM=_RUN_JBUILD_PROGRAM + HAS_MANAGEABLE_PEERS=yes + DYNAMIC_LINK=yes PEERDIR_TAGS=JAVA_PROTO JAVA_FBS JAVA_IDL JAR_COMPILATION PEERDIR(build/platform/java/jdk) PEERDIR+=$JDK_RESOURCE_PEERDIR @@ -4872,15 +4872,15 @@ module _JAVA_PLACEHOLDER: _BASE_UNIT { PEERDIR+=$UBERJAR_RESOURCE_PEERDIR } when($ERROR_PRONE_VALUE) { - # Jbuild assumes hardcoded resource name https://a.yandex-team.ru/arc_vcs/devtools/ya/jbuild/gen/consts/__init__.py?rev=1739368ed5aaa585b8300b84e5dea708a2bedd3a#L130 - # adding default peerdir as a hack to make `ya ide idea` and `ya maven-export` work for now - PEERDIR+=build/platform/java/error_prone - PEERDIR+=$ERROR_PRONE_PEERDIR + # Jbuild assumes hardcoded resource name https://a.yandex-team.ru/arc_vcs/devtools/ya/jbuild/gen/consts/__init__.py?rev=1739368ed5aaa585b8300b84e5dea708a2bedd3a#L130 + # adding default peerdir as a hack to make `ya ide idea` and `ya maven-export` work for now + PEERDIR+=build/platform/java/error_prone + PEERDIR+=$ERROR_PRONE_PEERDIR } - # in the ideal world this statement must be under condition bellow - DEPENDENCY_MANAGEMENT(contrib/java/org/jetbrains/kotlin/kotlin-stdlib-jdk8/${KOTLIN_VERSION}) + # in the ideal world this statement must be under condition bellow + DEPENDENCY_MANAGEMENT(contrib/java/org/jetbrains/kotlin/kotlin-stdlib-jdk8/${KOTLIN_VERSION}) when($WITH_KOTLIN_VALUE) { - PEERDIR+=build/platform/java/kotlin contrib/java/org/jetbrains/kotlin/kotlin-stdlib-jdk8 + PEERDIR+=build/platform/java/kotlin contrib/java/org/jetbrains/kotlin/kotlin-stdlib-jdk8 when($WITH_KOTLINC_PLUGIN_ALLOPEN) { KOTLINC_OPTS_VALUE+=-Xplugin=${KOTLIN_COMPILER_RESOURCE_GLOBAL}/plugins/kotlin-allopen-plugin.jar } @@ -4893,14 +4893,14 @@ module _JAVA_PLACEHOLDER: _BASE_UNIT { } when($ERROR_PRONE_VALUE && $JDK_VERSION == "16") { - JAVAC_FLAGS_VALUE+=$ERROR_PRONE_JDK16_ADD_OPENS + JAVAC_FLAGS_VALUE+=$ERROR_PRONE_JDK16_ADD_OPENS } when($ERROR_PRONE_VALUE && $ERROR_PRONE_VERSION == "2.7.1") { - JAVAC_FLAGS_VALUE+=$ERROR_PRONE_2_7_1_FORCED_OPTS + JAVAC_FLAGS_VALUE+=$ERROR_PRONE_2_7_1_FORCED_OPTS } - JAVA_DEPENDENCIES_CONFIGURATION(FORBID_DEFAULT_VERSIONS) + JAVA_DEPENDENCIES_CONFIGURATION(FORBID_DEFAULT_VERSIONS) DISABLE(NEED_PLATFORM_PEERDIRS) NO_PLATFORM() JAVA_MODULE() @@ -4956,7 +4956,7 @@ macro JAVA_DEPENDENCIES_CONFIGURATION(Args...) { } # tag:java-specific -# TODO(DEVTOOLS-6901): remove this variable when there are no more references to it in jbuild +# TODO(DEVTOOLS-6901): remove this variable when there are no more references to it in jbuild JAVA_FORBIDDEN_LIBRARIES_VALUE= # tag:java-specific @@ -5017,36 +5017,36 @@ multimodule SANDBOX_TASK { } # tag:sandbox-specific -multimodule SANDBOX_PY23_TASK { +multimodule SANDBOX_PY23_TASK { module SB_TASK_BIN: _PY2_PROGRAM { - PY_MAIN(sandbox.taskbox.binary) - PEERDIR(sandbox/bin sandbox/sdk2 sandbox/sandboxsdk sandbox/taskbox/worker) - SET_APPEND(NO_CHECK_IMPORTS_FOR_VALUE api.*) - SET_APPEND(NO_CHECK_IMPORTS_FOR_VALUE kernel.*) - SET_APPEND(NO_CHECK_IMPORTS_FOR_VALUE library.*) - SET_APPEND(NO_CHECK_IMPORTS_FOR_VALUE sky*) + PY_MAIN(sandbox.taskbox.binary) + PEERDIR(sandbox/bin sandbox/sdk2 sandbox/sandboxsdk sandbox/taskbox/worker) + SET_APPEND(NO_CHECK_IMPORTS_FOR_VALUE api.*) + SET_APPEND(NO_CHECK_IMPORTS_FOR_VALUE kernel.*) + SET_APPEND(NO_CHECK_IMPORTS_FOR_VALUE library.*) + SET_APPEND(NO_CHECK_IMPORTS_FOR_VALUE sky*) REGISTER_SANDBOX_IMPORT(${MODDIR}) - } - module PY2: PY2_LIBRARY { - PEERDIR(sandbox/sdk2 sandbox/sandboxsdk) + } + module PY2: PY2_LIBRARY { + PEERDIR(sandbox/sdk2 sandbox/sandboxsdk) REGISTER_SANDBOX_IMPORT(${MODDIR}) - OBJ_SUF=.py2 - RUN_CYTHON_SCRIPT=$YMAKE_PYTHON $CYTHON_SCRIPT - } - module PY3: PY3_LIBRARY { - when ($MSVC == "yes" || $CYGWIN == "yes") { - MODULE_PREFIX=py3 - } - otherwise { - MODULE_PREFIX=libpy3 - } - OBJ_SUF=.py3 - RUN_CYTHON_SCRIPT=$YMAKE_PYTHON $CYTHON_SCRIPT - PEERDIR(sandbox/sdk2) + OBJ_SUF=.py2 + RUN_CYTHON_SCRIPT=$YMAKE_PYTHON $CYTHON_SCRIPT + } + module PY3: PY3_LIBRARY { + when ($MSVC == "yes" || $CYGWIN == "yes") { + MODULE_PREFIX=py3 + } + otherwise { + MODULE_PREFIX=libpy3 + } + OBJ_SUF=.py3 + RUN_CYTHON_SCRIPT=$YMAKE_PYTHON $CYTHON_SCRIPT + PEERDIR(sandbox/sdk2) REGISTER_SANDBOX_IMPORT(${MODDIR}) - } -} - + } +} + # tag:sandbox-specific ### @usage: SANDBOX_PY3_TASK([Name]) ### @@ -5576,7 +5576,7 @@ macro SIZE(Type) { ### You should specify file name with the extension as Out. Futher processing will be done according this extension. macro JOIN_SRCS(Out, Src...) { .CMD=$YMAKE_PYTHON ${input:"build/scripts/gen_join_srcs.py"} ${output:Out} --ya-start-command-file ${input;rootrel:Src} --ya-end-command-file ${output_include;hide:Src} ${kv;hide:"p JS"} ${kv;hide:"pc magenta"} - .SEM=target_joined_source $Out ${input:Src} ${output;hide;suf=.o:Out} && modules_required yandex_common.cmake + .SEM=target_joined_source $Out ${input:Src} ${output;hide;suf=.o:Out} && modules_required yandex_common.cmake _CONDITIONAL_SRCS($TIDY_VALUE $Src) } @@ -5711,8 +5711,8 @@ macro ADDINCLSELF(FOR="") { } } -COMPILE_OUT_SUFFIX= -_COMPILE_OUTPUTS=${output;suf=${COMPILE_OUT_SUFFIX}${OBJECT_SUF}:SRC} +COMPILE_OUT_SUFFIX= +_COMPILE_OUTPUTS=${output;suf=${COMPILE_OUT_SUFFIX}${OBJECT_SUF}:SRC} _COMPILE_TIME_TRACE_OUTPUTS=${output;noauto;suf=${COMPILE_OUT_SUFFIX}${OBJECT_SUF}.time_trace.json:SRC} macro SET_COMPILE_OUTPUTS_MODIFIERS(NOREL?";norel":"") { @@ -5736,7 +5736,7 @@ macro _SRC(EXT, SRC, SRCFLAGS...) { # tag:src-processing macro _SRC("S", SRC, SRCFLAGS...) { .CMD=$C_COMPILER $C_FLAGS_PLATFORM $CFLAGS $SFLAGS $SRCFLAGS -c -o ${output:SRC.o} ${input:SRC} ${pre=-I:_C__INCLUDE} - .SEM=add_asm_source ${input:SRC} ${output;hide;suf=.o:SRC} + .SEM=add_asm_source ${input:SRC} ${output;hide;suf=.o:SRC} } # tag:src-processing @@ -5813,7 +5813,7 @@ macro _SRC("asp", SRC, SRCFLAGS...) { # tag:src-processing macro _SRC("rl6", SRC, SRCFLAGS...) { .CMD=$RUN_NO_SANITIZE ${tool:"contrib/tools/ragel6"} $RAGEL6_FLAGS ${SRCFLAGS} -L -I${ARCADIA_ROOT} -o ${output;nopath;noext;defext=.rl6.cpp:SRC} ${input:SRC} ${kv;hide:"p R6"} ${kv;hide:"pc yellow"} - .SEM=target_ragel_lexers PRIVATE ${input:SRC} ${output;hide;suf=.o:SRC} $RAGEL6_FLAGS ${SRCFLAGS} && set_global_flags RAGEL_FLAGS -L -I $S/ && conan_require ragel/6.10 && conan_import '"bin, ragel* -> ./bin"' && modules_required yandex_common.cmake + .SEM=target_ragel_lexers PRIVATE ${input:SRC} ${output;hide;suf=.o:SRC} $RAGEL6_FLAGS ${SRCFLAGS} && set_global_flags RAGEL_FLAGS -L -I $S/ && conan_require ragel/6.10 && conan_import '"bin, ragel* -> ./bin"' && modules_required yandex_common.cmake } # tag:src-processing @@ -5850,7 +5850,7 @@ macro _SRC("ev", SRC, SRCFLAGS...) { # tag:src-processing macro _SRC("proto", SRC, SRCFLAGS...) { .CMD=$PROTO_CMD($SRC) - .SEM=$PROTO_CMD($SRC) + .SEM=$PROTO_CMD($SRC) } # tag:src-processing @@ -5869,7 +5869,7 @@ macro _SRC("cfgproto", SRC, SRCFLAGS...) { # tag:src-processing macro _SRC("pyx", SRC, SRCFLAGS...) { # Copy-paste from BUILDWITH_CYTHON - .CMD=$RUN_CYTHON_SCRIPT $CYTHON_OPTIONS --cplus ${CYTHON_CPP_OUTPUT_INCLUDES} ${pre=-I:_CYTHON__INCLUDE} ${input:SRC} -o ${output;tobindir:SRC.cpp} $CYTHON_OUTPUT_INCLUDES ${SRCFLAGS} ${requirements;hide:PY_REQUIREMENTS} ${kv;hide:"p CY"} ${kv;hide:"pc yellow"} + .CMD=$RUN_CYTHON_SCRIPT $CYTHON_OPTIONS --cplus ${CYTHON_CPP_OUTPUT_INCLUDES} ${pre=-I:_CYTHON__INCLUDE} ${input:SRC} -o ${output;tobindir:SRC.cpp} $CYTHON_OUTPUT_INCLUDES ${SRCFLAGS} ${requirements;hide:PY_REQUIREMENTS} ${kv;hide:"p CY"} ${kv;hide:"pc yellow"} .ADDINCL=FOR cython contrib/tools/cython/Cython/Includes } @@ -5898,7 +5898,7 @@ macro _SRC("f", SRC, SRCFLAGS...) { # tag:src-processing macro _SRC("cpp", SRC, SRCFLAGS...) { .CMD=$_SRC_cpp($SRC $SRCFLAGS) - .SEM=target_sources PRIVATE ${input:SRC} ${output;hide;suf=.o:SRC} + .SEM=target_sources PRIVATE ${input:SRC} ${output;hide;suf=.o:SRC} } # tag:src-processing @@ -5909,7 +5909,7 @@ macro _SRC("cxx", SRC, SRCFLAGS...) { # tag:src-processing macro _SRC("cc", SRC, SRCFLAGS...) { .CMD=$_SRC(cpp $SRC $SRCFLAGS) - .SEM=target_sources PRIVATE ${input:SRC} ${output;hide;suf=.o:SRC} + .SEM=target_sources PRIVATE ${input:SRC} ${output;hide;suf=.o:SRC} } # tag:src-processing @@ -5920,7 +5920,7 @@ macro _SRC("C", SRC, SRCFLAGS...) { # tag:src-processing macro _SRC("c", SRC, SRCFLAGS...) { .CMD=$_SRC_c($SRC $SRCFLAGS) - .SEM=target_sources PRIVATE ${input:SRC} ${output;hide;suf=.o:SRC} + .SEM=target_sources PRIVATE ${input:SRC} ${output;hide;suf=.o:SRC} } # tag:src-processing @@ -5936,13 +5936,13 @@ macro _SRC("masm", SRC, SRCFLAGS...) { # tag:src-processing macro _SRC("yasm", SRC, SRCFLAGS...) { .CMD=$_SRC_yasm($SRC $SRCFLAGS PREINCLUDES $YASM_PREINCLUDES_VALUE) - .SEM=target_yasm_source PRIVATE ${input:SRC} ${output;hide;suf=.o:SRC} $YASM_FLAGS ${pre=-I :_ASM__INCLUDE} $SRCFLAGS ${pre=-P :PREINCLUDES} && set_global_flags YASM_FLAGS -f ${_YASM_FMT_VALUE}${HARDWARE_ARCH} $_YASM_PLATFORM_FLAGS_VALUE -D ${pre=_;suf=_:HARDWARE_TYPE} -D_YASM_ $ASM_PREFIX_VALUE $_YASM_PREDEFINED_FLAGS_VALUE && conan_require yasm/1.3.0 && conan_import '"bin, *yasm* -> ./bin"' && conan_import '"bin, ytasm* -> ./bin"' && modules_required yandex_common.cmake + .SEM=target_yasm_source PRIVATE ${input:SRC} ${output;hide;suf=.o:SRC} $YASM_FLAGS ${pre=-I :_ASM__INCLUDE} $SRCFLAGS ${pre=-P :PREINCLUDES} && set_global_flags YASM_FLAGS -f ${_YASM_FMT_VALUE}${HARDWARE_ARCH} $_YASM_PLATFORM_FLAGS_VALUE -D ${pre=_;suf=_:HARDWARE_TYPE} -D_YASM_ $ASM_PREFIX_VALUE $_YASM_PREDEFINED_FLAGS_VALUE && conan_require yasm/1.3.0 && conan_import '"bin, *yasm* -> ./bin"' && conan_import '"bin, ytasm* -> ./bin"' && modules_required yandex_common.cmake } # tag:src-processing macro _SRC("asm", SRC, SRCFLAGS...) { .CMD=$_SRC(yasm $SRC $SRCFLAGS) - .SEM=target_yasm_source PRIVATE ${input:SRC} ${output;hide;suf=.o:SRC} $YASM_FLAGS ${pre=-I :_ASM__INCLUDE} $SRCFLAGS && set_global_flags YASM_FLAGS -f ${_YASM_FMT_VALUE}${HARDWARE_ARCH} $_YASM_PLATFORM_FLAGS_VALUE -D ${pre=_;suf=_:HARDWARE_TYPE} -D_YASM_ $ASM_PREFIX_VALUE $_YASM_PREDEFINED_FLAGS_VALUE && conan_require yasm/1.3.0 && conan_import '"bin, *yasm* -> ./bin"' && conan_import '"bin, ytasm* -> ./bin"' && modules_required yandex_common.cmake + .SEM=target_yasm_source PRIVATE ${input:SRC} ${output;hide;suf=.o:SRC} $YASM_FLAGS ${pre=-I :_ASM__INCLUDE} $SRCFLAGS && set_global_flags YASM_FLAGS -f ${_YASM_FMT_VALUE}${HARDWARE_ARCH} $_YASM_PLATFORM_FLAGS_VALUE -D ${pre=_;suf=_:HARDWARE_TYPE} -D_YASM_ $ASM_PREFIX_VALUE $_YASM_PREDEFINED_FLAGS_VALUE && conan_require yasm/1.3.0 && conan_import '"bin, *yasm* -> ./bin"' && conan_import '"bin, ytasm* -> ./bin"' && modules_required yandex_common.cmake } # tag:src-processing @@ -6031,12 +6031,12 @@ when ($CLANG == "yes" || $GCC == "yes") { } # tag:src-processing -macro _SRC_cpp(SRC, COMPILE_OUT_SUFFIX="", SRCFLAGS...) { +macro _SRC_cpp(SRC, COMPILE_OUT_SUFFIX="", SRCFLAGS...) { .CMD=$_SRC_CPP_CMD } # tag:src-processing -macro _SRC_c(SRC, COMPILE_OUT_SUFFIX="", SRCFLAGS...) { +macro _SRC_c(SRC, COMPILE_OUT_SUFFIX="", SRCFLAGS...) { .CMD=$_SRC_C_CMD } @@ -6077,18 +6077,18 @@ macro COMPILE_LUA_21(Src, NAME="") { .CMD=$_SRC_lua_21($Src, ${pre=-n :NAME}) } -GETTEXT_KEEP_PATH=no -_MO_OUTPUT= -when ($GETTEXT_KEEP_PATH == "yes") { - _MO_OUTPUT=${output;noauto;norel;noext:SRC.mo} -} -otherwise { - _MO_OUTPUT=${output;noauto;nopath;noext;tobindir:SRC.mo} -} - +GETTEXT_KEEP_PATH=no +_MO_OUTPUT= +when ($GETTEXT_KEEP_PATH == "yes") { + _MO_OUTPUT=${output;noauto;norel;noext:SRC.mo} +} +otherwise { + _MO_OUTPUT=${output;noauto;nopath;noext;tobindir:SRC.mo} +} + # tag:src-processing macro _SRC("po", SRC, SRCFLAGS...) { - .CMD=$YMAKE_PYTHON ${input:"contrib/tools/python/src/Tools/i18n/msgfmt.py"} -o $_MO_OUTPUT ${input:SRC} + .CMD=$YMAKE_PYTHON ${input:"contrib/tools/python/src/Tools/i18n/msgfmt.py"} -o $_MO_OUTPUT ${input:SRC} } # tag:ydl-specific @@ -6168,49 +6168,49 @@ macro SRCS(FILES...) { ### @usage SRC_C_SSE2(File Flags...) ### Compile single .c-file with SSE2 and extra Flags. macro SRC_C_SSE2(FILE, FLAGS...) { - _SRC(c $FILE $SSE2_CFLAGS $FLAGS COMPILE_OUT_SUFFIX .sse2) + _SRC(c $FILE $SSE2_CFLAGS $FLAGS COMPILE_OUT_SUFFIX .sse2) } # tag:cpu tag:src-processing ### @usage SRC_C_SSE3(File Flags...) ### Compile single .c-file with SSE3 and extra Flags. macro SRC_C_SSE3(FILE, FLAGS...) { - _SRC(c $FILE $SSE3_CFLAGS $FLAGS COMPILE_OUT_SUFFIX .sse3) + _SRC(c $FILE $SSE3_CFLAGS $FLAGS COMPILE_OUT_SUFFIX .sse3) } # tag:cpu tag:src-processing ### @usage SRC_C_SSSE3(File Flags...) ### Compile single .c-file with SSSE3 and extra Flags. macro SRC_C_SSSE3(FILE, FLAGS...) { - _SRC(c $FILE $SSSE3_CFLAGS $FLAGS COMPILE_OUT_SUFFIX .ssse3) + _SRC(c $FILE $SSSE3_CFLAGS $FLAGS COMPILE_OUT_SUFFIX .ssse3) } # tag:cpu tag:src-processing ### @usage SRC_C_SSE41(File Flags...) ### Compile single .c-file with SSE4.1 and extra Flags. macro SRC_C_SSE41(FILE, FLAGS...) { - _SRC(c $FILE $SSE41_CFLAGS $FLAGS COMPILE_OUT_SUFFIX .sse41) + _SRC(c $FILE $SSE41_CFLAGS $FLAGS COMPILE_OUT_SUFFIX .sse41) } # tag:cpu tag:src-processing ### @usage SRC_C_SSE4(File Flags...) ### Compile single .c-file with SSE4 (SSE4.1, SSE4.2 and POPCNT) and extra Flags. macro SRC_C_SSE4(FILE, FLAGS...) { - _SRC(c $FILE $SSE4_CFLAGS $FLAGS COMPILE_OUT_SUFFIX .sse4) + _SRC(c $FILE $SSE4_CFLAGS $FLAGS COMPILE_OUT_SUFFIX .sse4) } # tag:cpu tag:src-processing ### @usage SRC_C_AVX(File Flags...) ### Compile single .c-file with AVX and extra Flags. macro SRC_C_AVX(FILE, FLAGS...) { - _SRC(c $FILE $AVX_CFLAGS $FLAGS COMPILE_OUT_SUFFIX .avx) + _SRC(c $FILE $AVX_CFLAGS $FLAGS COMPILE_OUT_SUFFIX .avx) } # tag:cpu tag:src-processing ### @usage SRC_C_AVX2(File Flags...) ### Compile single .c-file with AVX2 and extra Flags. macro SRC_C_AVX2(FILE, FLAGS...) { - _SRC(c $FILE $AVX2_CFLAGS $FLAGS COMPILE_OUT_SUFFIX .avx2) + _SRC(c $FILE $AVX2_CFLAGS $FLAGS COMPILE_OUT_SUFFIX .avx2) } # tag:cpu tag:src-processing @@ -6224,49 +6224,49 @@ macro SRC_CPP_PIC(FILE, FLAGS...) { ### @usage SRC_CPP_SSE2(File Flags...) ### Compile single .cpp-file with SSE2 and extra Flags. macro SRC_CPP_SSE2(FILE, FLAGS...) { - _SRC(cpp $FILE $SSE2_CFLAGS $FLAGS COMPILE_OUT_SUFFIX .sse2) + _SRC(cpp $FILE $SSE2_CFLAGS $FLAGS COMPILE_OUT_SUFFIX .sse2) } # tag:cpu tag:src-processing ### @usage SRC_CPP_SSE3(File Flags...) ### Compile single .cpp-file with SSE3 and extra Flags. macro SRC_CPP_SSE3(FILE, FLAGS...) { - _SRC(cpp $FILE $SSE3_CFLAGS $FLAGS COMPILE_OUT_SUFFIX .sse3) + _SRC(cpp $FILE $SSE3_CFLAGS $FLAGS COMPILE_OUT_SUFFIX .sse3) } # tag:cpu tag:src-processing ### @usage SRC_CPP_SSSE3(File Flags...) ### Compile single .cpp-file with SSSE3 and extra Flags. macro SRC_CPP_SSSE3(FILE, FLAGS...) { - _SRC(cpp $FILE $SSSE3_CFLAGS $FLAGS COMPILE_OUT_SUFFIX .sss3) + _SRC(cpp $FILE $SSSE3_CFLAGS $FLAGS COMPILE_OUT_SUFFIX .sss3) } # tag:cpu tag:src-processing ### @usage SRC_CPP_SSE41(File Flags...) ### Compile single .cpp-file with SSE4.1 and extra Flags. macro SRC_CPP_SSE41(FILE, FLAGS...) { - _SRC(cpp $FILE $SSE41_CFLAGS $FLAGS COMPILE_OUT_SUFFIX .sse41) + _SRC(cpp $FILE $SSE41_CFLAGS $FLAGS COMPILE_OUT_SUFFIX .sse41) } # tag:cpu tag:src-processing ### @usage SRC_CPP_SSE4(File Flags...) ### Compile single .cpp-file with SSE4 (SSE4.1, SSE4.2 and POPCNT) and extra Flags. macro SRC_CPP_SSE4(FILE, FLAGS...) { - _SRC(cpp $FILE $SSE4_CFLAGS $FLAGS COMPILE_OUT_SUFFIX .sse4) + _SRC(cpp $FILE $SSE4_CFLAGS $FLAGS COMPILE_OUT_SUFFIX .sse4) } # tag:cpu tag:src-processing ### @usage SRC_CPP_AVX(File Flags...) ### Compile single .cpp-file with AVX and extra Flags. macro SRC_CPP_AVX(FILE, FLAGS...) { - _SRC(cpp $FILE $AVX_CFLAGS $FLAGS COMPILE_OUT_SUFFIX .avx) + _SRC(cpp $FILE $AVX_CFLAGS $FLAGS COMPILE_OUT_SUFFIX .avx) } # tag:cpu tag:src-processing ### @usage SRC_CPP_AVX2(File Flags...) ### Compile single .cpp-file with AVX2 and extra Flags. macro SRC_CPP_AVX2(FILE, FLAGS...) { - _SRC(cpp $FILE $AVX2_CFLAGS $FLAGS COMPILE_OUT_SUFFIX .avx2) + _SRC(cpp $FILE $AVX2_CFLAGS $FLAGS COMPILE_OUT_SUFFIX .avx2) } # tag:python-processing tag:cython @@ -6275,7 +6275,7 @@ macro SRC_CPP_AVX2(FILE, FLAGS...) { ### ### Generates .cpp file from .pyx. macro BUILDWITH_CYTHON_CPP(Src, Options...) { - .CMD=$RUN_CYTHON_SCRIPT $CYTHON_OPTIONS ${Options} --cplus ${CYTHON_CPP_OUTPUT_INCLUDES} ${pre=-I:_CYTHON__INCLUDE} ${input:Src} -o ${output;tobindir:Src.cpp} $CYTHON_OUTPUT_INCLUDES ${requirements;hide:PY_REQUIREMENTS} ${kv;hide:"p CY"} ${kv;hide:"pc yellow"} + .CMD=$RUN_CYTHON_SCRIPT $CYTHON_OPTIONS ${Options} --cplus ${CYTHON_CPP_OUTPUT_INCLUDES} ${pre=-I:_CYTHON__INCLUDE} ${input:Src} -o ${output;tobindir:Src.cpp} $CYTHON_OUTPUT_INCLUDES ${requirements;hide:PY_REQUIREMENTS} ${kv;hide:"p CY"} ${kv;hide:"pc yellow"} ADDINCL(FOR cython contrib/tools/cython/Cython/Includes) } @@ -6285,7 +6285,7 @@ macro BUILDWITH_CYTHON_CPP(Src, Options...) { ### Generates .cpp file from .pyx and attach extra input Dep. ### If Dep changes the .cpp file will be re-generated. macro _BUILDWITH_CYTHON_CPP_DEP(Src, Dep, Options...) { - .CMD=$RUN_CYTHON_SCRIPT $CYTHON_OPTIONS ${Options} --cplus ${CYTHON_CPP_OUTPUT_INCLUDES} ${pre=-I:_CYTHON__INCLUDE} ${input:Src} ${input;hide:Dep} -o ${output;tobindir:Src.cpp} $CYTHON_OUTPUT_INCLUDES ${requirements;hide:PY_REQUIREMENTS} ${kv;hide:"p CY"} ${kv;hide:"pc yellow"} + .CMD=$RUN_CYTHON_SCRIPT $CYTHON_OPTIONS ${Options} --cplus ${CYTHON_CPP_OUTPUT_INCLUDES} ${pre=-I:_CYTHON__INCLUDE} ${input:Src} ${input;hide:Dep} -o ${output;tobindir:Src.cpp} $CYTHON_OUTPUT_INCLUDES ${requirements;hide:PY_REQUIREMENTS} ${kv;hide:"p CY"} ${kv;hide:"pc yellow"} ADDINCL(FOR cython contrib/tools/cython/Cython/Includes) } @@ -6294,7 +6294,7 @@ macro _BUILDWITH_CYTHON_CPP_DEP(Src, Dep, Options...) { ### ### Generates .c file from .pyx. macro BUILDWITH_CYTHON_C(Src, Options...) { - .CMD=$RUN_CYTHON_SCRIPT $CYTHON_OPTIONS ${Options} ${pre=-I:_CYTHON__INCLUDE} ${input:Src} -o ${output;tobindir:Src.c} $CYTHON_OUTPUT_INCLUDES ${requirements;hide:PY_REQUIREMENTS} ${kv;hide:"p CY"} ${kv;hide:"pc yellow"} + .CMD=$RUN_CYTHON_SCRIPT $CYTHON_OPTIONS ${Options} ${pre=-I:_CYTHON__INCLUDE} ${input:Src} -o ${output;tobindir:Src.c} $CYTHON_OUTPUT_INCLUDES ${requirements;hide:PY_REQUIREMENTS} ${kv;hide:"p CY"} ${kv;hide:"pc yellow"} ADDINCL(FOR cython contrib/tools/cython/Cython/Includes) } @@ -6304,7 +6304,7 @@ macro BUILDWITH_CYTHON_C(Src, Options...) { ### Generates .c file from .pyx and attach extra input Dep. ### If Dep changes the .c file will be re-generated. macro _BUILDWITH_CYTHON_C_DEP(Src, Dep, Options...) { - .CMD=$RUN_CYTHON_SCRIPT $CYTHON_OPTIONS ${Options} ${pre=-I:_CYTHON__INCLUDE} ${input:Src} ${input;hide:Dep} -o ${output;tobindir:Src.c} $CYTHON_OUTPUT_INCLUDES ${requirements;hide:PY_REQUIREMENTS} ${kv;hide:"p CY"} ${kv;hide:"pc yellow"} + .CMD=$RUN_CYTHON_SCRIPT $CYTHON_OPTIONS ${Options} ${pre=-I:_CYTHON__INCLUDE} ${input:Src} ${input;hide:Dep} -o ${output;tobindir:Src.c} $CYTHON_OUTPUT_INCLUDES ${requirements;hide:PY_REQUIREMENTS} ${kv;hide:"p CY"} ${kv;hide:"pc yellow"} ADDINCL(FOR cython contrib/tools/cython/Cython/Includes) } @@ -6313,7 +6313,7 @@ macro _BUILDWITH_CYTHON_C_DEP(Src, Dep, Options...) { ### ### BUILDWITH_CYTHON_C without .pyx infix and with cdef public .h file. macro _BUILDWITH_CYTHON_C_H(Src, Dep, Options...) { - .CMD=$RUN_CYTHON_SCRIPT $CYTHON_OPTIONS ${Options} ${pre=-I:_CYTHON__INCLUDE} ${input:Src} ${input;hide:Dep} -o ${output;noext;tobindir:Src.c} ${output;hide;addincl;noext;tobindir:Src.h} $CYTHON_OUTPUT_INCLUDES ${requirements;hide:PY_REQUIREMENTS} ${kv;hide:"p CY"} ${kv;hide:"pc yellow"} + .CMD=$RUN_CYTHON_SCRIPT $CYTHON_OPTIONS ${Options} ${pre=-I:_CYTHON__INCLUDE} ${input:Src} ${input;hide:Dep} -o ${output;noext;tobindir:Src.c} ${output;hide;addincl;noext;tobindir:Src.h} $CYTHON_OUTPUT_INCLUDES ${requirements;hide:PY_REQUIREMENTS} ${kv;hide:"p CY"} ${kv;hide:"pc yellow"} ADDINCL(FOR cython contrib/tools/cython/Cython/Includes) } @@ -6322,7 +6322,7 @@ macro _BUILDWITH_CYTHON_C_H(Src, Dep, Options...) { ### ### BUILDWITH_CYTHON_C_H with cdef api _api.h file. macro _BUILDWITH_CYTHON_C_API_H(Src, Dep, Options...) { - .CMD=$RUN_CYTHON_SCRIPT $CYTHON_OPTIONS ${Options} ${pre=-I:_CYTHON__INCLUDE} ${input:Src} ${input;hide:Dep} -o ${output;noext;tobindir:Src.c} ${output;hide;addincl;noext;tobindir:Src.h} ${output;hide;addincl;noext;defext=_api.h;tobindir:Src} $CYTHON_OUTPUT_INCLUDES ${requirements;hide:PY_REQUIREMENTS} ${kv;hide:"p CY"} ${kv;hide:"pc yellow"} + .CMD=$RUN_CYTHON_SCRIPT $CYTHON_OPTIONS ${Options} ${pre=-I:_CYTHON__INCLUDE} ${input:Src} ${input;hide:Dep} -o ${output;noext;tobindir:Src.c} ${output;hide;addincl;noext;tobindir:Src.h} ${output;hide;addincl;noext;defext=_api.h;tobindir:Src} $CYTHON_OUTPUT_INCLUDES ${requirements;hide:PY_REQUIREMENTS} ${kv;hide:"p CY"} ${kv;hide:"pc yellow"} ADDINCL(FOR cython contrib/tools/cython/Cython/Includes) } @@ -6460,9 +6460,9 @@ when ($FORCE_VCS_INFO_UPDATE == "yes") { GENERATE_VCS_C_INFO_NODEP=$YMAKE_PYTHON ${input:"build/scripts/vcs_info.py"} $(VCS)/vcs.json $VCS_C ${input:"build/scripts/c_templates/svn_interface.c"} $VCS_INFO_DISABLE_CACHE__NO_UID__ && $_SRC_c_nodeps($VCS_C, $VCS_C_OBJ, $(SOURCE_ROOT)) GENERATE_VCS_GO_INFO_NODEP=$YMAKE_PYTHON ${input:"build/scripts/vcs_info.py"} output-go $(VCS)/vcs.json $VCS_GO $VCS_INFO_DISABLE_CACHE__NO_UID__ GENERATE_VCS_JAVA_INFO_NODEP=$YMAKE_PYTHON ${input:"build/scripts/vcs_info.py"} output-java $(VCS)/vcs.json $VCS_JAVA $VCS_INFO_DISABLE_CACHE__NO_UID__ -macro UPDATE_VCS_JAVA_INFO_NODEP(Jar) { - .CMD=$YMAKE_PYTHON ${input:"build/scripts/vcs_info.py"} output-java $(VCS)/vcs.json $VCS_JAVA $Jar $VCS_INFO_DISABLE_CACHE__NO_UID__ -} +macro UPDATE_VCS_JAVA_INFO_NODEP(Jar) { + .CMD=$YMAKE_PYTHON ${input:"build/scripts/vcs_info.py"} output-java $(VCS)/vcs.json $VCS_JAVA $Jar $VCS_INFO_DISABLE_CACHE__NO_UID__ +} ### @usage: CREATE_BUILDINFO_FOR(GenHdr) ### @@ -6498,7 +6498,7 @@ macro CFG_VARS() { ### Used implicitly for .in-files processing. macro CONFIGURE_FILE(Src, Dst) { .CMD=$YMAKE_PYTHON ${input:"build/scripts/configure_file.py"} ${input:Src} ${output;addincl:Dst} $CFG_VARS ${kv;hide:"p CF"} ${kv;hide:"pc yellow"} - .SEM=set_vasrs ${CFG_VARS} && configure_file $S/${input;rootrel:Src} $B/${output;rootrel:Dst} + .SEM=set_vasrs ${CFG_VARS} && configure_file $S/${input;rootrel:Src} $B/${output;rootrel:Dst} } ### @usage: BASE_CODEGEN(tool_path prefix) @@ -6811,7 +6811,7 @@ RELEV_FML_CODEGEN_INCLS=${output_include;hide:"kernel/relevfml/relev_fml.h"} ${o ### Documentation: https://wiki.yandex-team.ru/yatool/HowToWriteYaMakeFiles/ macro GENERATE_ENUM_SERIALIZATION(File) { .CMD=$ENUM_PARSER_TOOL ${input:File} --include-path ${input;rootrel:File} --output ${output;chksum;suf=_serialized.cpp:File} ${output_include;hide:File} ${output_include;hide:"util/generic/serialized_enum.h"} ${kv;hide:"p EN"} ${kv;hide:"pc yellow"} - .SEM=generate_enum_serilization ${input:File} ${output;hide;suf=_serialized.o:File} INCLUDE_HEADERS ${input;rootrel:File} ${tool;hide:"tools/enum_parser/enum_parser/bin"} + .SEM=generate_enum_serilization ${input:File} ${output;hide;suf=_serialized.o:File} INCLUDE_HEADERS ${input;rootrel:File} ${tool;hide:"tools/enum_parser/enum_parser/bin"} PEERDIR(tools/enum_parser/enum_serialization_runtime) } @@ -6823,7 +6823,7 @@ macro GENERATE_ENUM_SERIALIZATION(File) { ### Documentation: https://wiki.yandex-team.ru/yatool/HowToWriteYaMakeFiles/ macro GENERATE_ENUM_SERIALIZATION_WITH_HEADER(File) { .CMD=$ENUM_PARSER_TOOL ${input:File} --include-path ${input;rootrel:File} --output ${output;chksum;suf=_serialized.cpp:File} --header ${output;chksum;suf=_serialized.h:File} ${output_include;hide:File} ${kv;hide:"p EN"} ${kv;hide:"pc yellow"} - .SEM=generate_enum_serilization ${input:File} ${output;hide;suf=_serialized.o:File} GEN_HEADER ${output;suf=_serialized.h:File} INCLUDE_HEADERS ${input;rootrel:File} ${tool;hide:"tools/enum_parser/enum_parser/bin"} + .SEM=generate_enum_serilization ${input:File} ${output;hide;suf=_serialized.o:File} GEN_HEADER ${output;suf=_serialized.h:File} INCLUDE_HEADERS ${input;rootrel:File} ${tool;hide:"tools/enum_parser/enum_parser/bin"} PEERDIR(tools/enum_parser/enum_serialization_runtime) } @@ -7085,7 +7085,7 @@ macro FROM_MDS(Key, OUT{output}[], OUT_NOAUTO{output}[], OUTPUT_INCLUDES[], FILE macro _FROM_EXTERNAL(File, OutFile, OUT{output}[], OUT_NOAUTO{output}[], OUTPUT_INCLUDES[], AUTOUPDATED="", PREFIX=".", RENAME[], EXECUTABLE?"--executable":"", EXT="ext:") { .CMD=${hide:SANDBOX_FAKEID} ${cwd:BINDIR} ${resource;pre=$EXT;suf=.external:OutFile} $YMAKE_PYTHON ${input:"build/scripts/fetch_from_external.py"} --external-file ${input:File} --resource-file $(RESOURCE_ROOT)/ext/$OutFile --copy-to-dir $PREFIX ${pre=--rename :RENAME} $EXECUTABLE -- $OUT $OUT_NOAUTO ${input;hide:"build/scripts/fetch_from.py"} ${input;hide:"build/scripts/fetch_from_sandbox.py"} ${input;hide:"build/scripts/fetch_from_mds.py"} ${output_include;hide:OUTPUT_INCLUDES} ${output;hide:OUT} ${output;noauto;hide:OUT_NOAUTO} ${requirements;hide:"network:full"} ${kv;hide:"p XT"} ${kv;hide:"pc yellow"} ${kv;hide:"show_out"} -#FIXME: add '${resource;pre=$EXT:OutFile}' when support of the scheme is added to executors +#FIXME: add '${resource;pre=$EXT:OutFile}' when support of the scheme is added to executors #FIXME: add 'ADD_CHECK(check.external $File)' when proper testing is implemented } @@ -7434,16 +7434,16 @@ otherwise { _CPP_PROTO_MODULE_SUFFIX=.a } -### @usage: EXPOSE(OutputsToExport...) -### -### Allows to mark outputs of macro command as unused in the current module but intended -### to be used in modules consuming current via PEERDIR. -### -### TODO(DEVTOOLS-9000) proper implementation needed -macro EXPOSE(Args...) { - .CMD=$YMAKE_PYTHON ${input:"build/scripts/touch.py"} ${output;suf=$_HASH_HELPER($Args).cpp:"empty_"} ${input;hide:Args} -} - +### @usage: EXPOSE(OutputsToExport...) +### +### Allows to mark outputs of macro command as unused in the current module but intended +### to be used in modules consuming current via PEERDIR. +### +### TODO(DEVTOOLS-9000) proper implementation needed +macro EXPOSE(Args...) { + .CMD=$YMAKE_PYTHON ${input:"build/scripts/touch.py"} ${output;suf=$_HASH_HELPER($Args).cpp:"empty_"} ${input;hide:Args} +} + # tag:proto macro _PROTO_DESC_CMD(File) { @@ -7455,8 +7455,8 @@ _PROTO_DESC_MERGE_PEERS_CMD=$YMAKE_PYTHON ${input:"build/scripts/merge_files.py" NEED_GOOGLE_PROTO_PEERDIRS=yes -PROTO_LIBRARY_SEM=$CPP_LIBRARY_SEM && target_proto_plugin cpp_styleguide ${tool:"contrib/tools/protoc/plugins/cpp_styleguide"} - +PROTO_LIBRARY_SEM=$CPP_LIBRARY_SEM && target_proto_plugin cpp_styleguide ${tool:"contrib/tools/protoc/plugins/cpp_styleguide"} + # tag:proto ### @usage: PROTO_LIBRARY() ### @@ -7477,9 +7477,9 @@ PROTO_LIBRARY_SEM=$CPP_LIBRARY_SEM && target_proto_plugin cpp_styleguide ${tool: ### See: [GRPC()](#macro_GRPC), [OPTIMIZE_PY_PROTOS()](#macro_OPTIMIZE_PY_PROTOS), [INCLUDE_TAGS()](#macro_INCLUDE_TAGS), [EXCLUDE_TAGS()](#macro_EXCLUDE_TAGS) multimodule PROTO_LIBRARY { module CPP_PROTO : LIBRARY { - .ALLOWED=EXPOSE - # TODO(svidyuk): think about marker which forces semantics inheritance - .SEM=PROTO_LIBRARY_SEM + .ALLOWED=EXPOSE + # TODO(svidyuk): think about marker which forces semantics inheritance + .SEM=PROTO_LIBRARY_SEM ENABLE(CPP_PROTO) ENABLE(GEN_PROTO) NO_CLANG_TIDY() @@ -7501,7 +7501,7 @@ multimodule PROTO_LIBRARY { module JAVA_PROTO: EXTERNAL_JAVA_LIBRARY { .EXTS=.jsrc .ALLOWED=GRPC - .SEM=ignored + .SEM=ignored SET(PEERDIR_TAGS JAVA_PROTO) ENABLE(JAVA_PROTO) PEERDIR+=$JAVA_PROTOBUF_PEERS contrib/java/javax/annotation/javax.annotation-api/1.3.1 @@ -7519,7 +7519,7 @@ multimodule PROTO_LIBRARY { .ALIASES=SRCS=PY_SRCS .ALLOWED=OPTIMIZE_PY_PROTOS NO_OPTIMIZE_PY_PROTOS .PEERDIRSELF=CPP_PROTO - .SEM=ignored + .SEM=ignored SET(PEERDIR_TAGS PY2 PY_PROTO) ENABLE(PY_PROTO) OPTIMIZE_PY_PROTOS() @@ -7543,7 +7543,7 @@ multimodule PROTO_LIBRARY { .ALIASES=SRCS=PY_SRCS .ALLOWED=OPTIMIZE_PY_PROTOS NO_OPTIMIZE_PY_PROTOS .PEERDIRSELF=CPP_PROTO - .SEM=ignored + .SEM=ignored SET(PEERDIR_TAGS PY3 PY3_PROTO) ENABLE(PY3_PROTO) OPTIMIZE_PY_PROTOS() @@ -7571,7 +7571,7 @@ multimodule PROTO_LIBRARY { module GO_PROTO: GO_LIBRARY { .IGNORED=GENERATE_ENUM_SERIALIZATION GENERATE_ENUM_SERIALIZATION_WITH_HEADER YMAPS_SPROTO - .SEM=ignored + .SEM=ignored SET(PEERDIR_TAGS GO GO_PROTO) ENABLE(GO_PROTO) @@ -7590,7 +7590,7 @@ multimodule PROTO_LIBRARY { module EXT_PROTO: _BARE_UNIT { .ALIASES=SRCS=_RAW_PROTO_SRCS .CMD=TOUCH_UNIT_MF - .SEM=ignored + .SEM=ignored .EXTS=.* .PROXY=yes .PEERDIR_POLICY=as_build_from @@ -7607,7 +7607,7 @@ multimodule PROTO_LIBRARY { module DESC_PROTO: _BARE_UNIT { .CMD=_PROTO_DESC_MERGE_CMD - .SEM=ignored + .SEM=ignored .EXTS=.desc .NODE_TYPE=Library .IGNORED=GENERATE_ENUM_SERIALIZATION GENERATE_ENUM_SERIALIZATION_WITH_HEADER YMAPS_SPROTO RESOURCE GO_PROTO_PLUGIN GRPC @@ -7637,7 +7637,7 @@ multimodule PROTO_LIBRARY { module PB_PY_PROTO: _PY_PACKAGE { .INCLUDE_TAG=no .PROXY=yes - .SEM=ignored + .SEM=ignored SET(MODULE_SUFFIX .pb_py.fake.pkg) ENABLE(PB_PY_PROTO) @@ -7680,7 +7680,7 @@ macro _RAW_PROTO_SRCS(FILES...) { COPY_FILES_TO_BUILD_PREFIX(${ext=.ev:FILES} PREFIX ${_EXT_PROTO_DIR}) } -module PROTO_DESCRIPTIONS: _BARE_UNIT { +module PROTO_DESCRIPTIONS: _BARE_UNIT { .CMD=_PROTO_DESC_MERGE_PEERS_CMD .PEERDIR_POLICY=as_build_from .NODE_TYPE=Library @@ -7689,10 +7689,10 @@ module PROTO_DESCRIPTIONS: _BARE_UNIT { SET(PEERDIR_TAGS DESC_PROTO) SET(MODULE_SUFFIX .protodesc) - SET(MODULE_TYPE PROTO_DESCRIPTIONS) -} - -module PROTO_REGISTRY: PROTO_DESCRIPTIONS { + SET(MODULE_TYPE PROTO_DESCRIPTIONS) +} + +module PROTO_REGISTRY: PROTO_DESCRIPTIONS { SET(MODULE_TYPE PROTO_REGISTRY) } @@ -7857,14 +7857,14 @@ module PREBUILT_PROGRAM: _LINK_UNIT { } } -### @usage COLLECT_JINJA_TEMPLATES(varname path) -### -### This macro collects all jinja and yaml files in the directory specified by second argument and -### stores result in the variable with mane specified by first parameter. -macro COLLECT_JINJA_TEMPLATES(VAR, DIR) { - _GLOB($VAR ${DIR}/**/*.jinja ${DIR}/**/*.yaml) -} - +### @usage COLLECT_JINJA_TEMPLATES(varname path) +### +### This macro collects all jinja and yaml files in the directory specified by second argument and +### stores result in the variable with mane specified by first parameter. +macro COLLECT_JINJA_TEMPLATES(VAR, DIR) { + _GLOB($VAR ${DIR}/**/*.jinja ${DIR}/**/*.yaml) +} + # tag:go-specific GO_HOST_OS=unknown when ($HOST_OS_LINUX) { @@ -8228,8 +8228,8 @@ macro GO_XTEST_EMBED_PATTERN(PATTERN) { ### ### Define an embed directory DIR. macro _GO_EMBED_DIR(XTEST?"_xtest":"", DIR, IMPORT_PATH) { - SET(VAR_SALT $XTEST $DIR $IMPORT_PATH) - SET(_PATTERN_GLOB uniq_embed_${hash:VAR_SALT}) + SET(VAR_SALT $XTEST $DIR $IMPORT_PATH) + SET(_PATTERN_GLOB uniq_embed_${hash:VAR_SALT}) _GLOB($_PATTERN_GLOB ${ARCADIA_ROOT}/${IMPORT_PATH}/${DIR}/**/* EXCLUDE ${ARCADIA_ROOT}/${IMPORT_PATH}/${DIR}/**/_* ${ARCADIA_ROOT}/${IMPORT_PATH}/${DIR}/**/.*) SET_APPEND(_GO_EMBED_VALUE ++embed$XTEST $DIR \$$_PATTERN_GLOB) SET_APPEND(_GO_EMBED_INPUTS \$$_PATTERN_GLOB) @@ -8372,7 +8372,7 @@ module _GO_BASE_UNIT: _BASE_UNIT { .GLOBAL=GO_LDFLAGS .PEERDIR_POLICY=as_build_from .ALIASES=SRCS=_GO_SRCS RESOURCE=_GO_RESOURCE GO_TEST_SRCS=_GO_UNUSED_SRCS GO_XTEST_SRCS=_GO_UNUSED_SRCS GRPC=_GO_GRPC GO_GRPC_GATEWAY_SRCS=_GO_GRPC_GATEWAY_SRCS GO_GRPC_GATEWAY_SWAGGER_SRCS=_GO_GRPC_GATEWAY_SWAGGER_SRCS CFLAGS=CGO_CFLAGS GO_TEST_EMBED_PATTERN=_GO_UNUSED_SRCS GO_XTEST_EMBED_PATTERN=_GO_UNUSED_SRCS GO_TEST_EMBED_DIR=_GO_UNUSED_SRCS GO_XTEST_EMBED_DIR=_GO_UNUSED_SRCS - .ALLOWED=GO_PROTO_PLUGIN USE_CXX USE_UTIL RESOURCE_FILES + .ALLOWED=GO_PROTO_PLUGIN USE_CXX USE_UTIL RESOURCE_FILES .IGNORED=GO_SKIP_TESTS USE_SKIFF ENABLE(_GO_MODULE) @@ -8665,7 +8665,7 @@ module GO_TEST: GO_PROGRAM { ADD_YTEST($MODULE_PREFIX$REALPRJNAME go.test) ADD_YTEST($MODULE_PREFIX$REALPRJNAME go.bench) - + SET_APPEND(_MAKEFILE_INCLUDE_LIKE_DEPS canondata/result.json) } @@ -8789,10 +8789,10 @@ macro PY_EXTRA_LINT_FILES(FILES...) { multimodule PY23_LIBRARY { module PY2: PY2_LIBRARY { OBJ_SUF=.py2 - RUN_CYTHON_SCRIPT=$YMAKE_PYTHON $CYTHON_SCRIPT + RUN_CYTHON_SCRIPT=$YMAKE_PYTHON $CYTHON_SCRIPT } module PY3: PY3_LIBRARY { - RUN_CYTHON_SCRIPT=$YMAKE_PYTHON $CYTHON_SCRIPT + RUN_CYTHON_SCRIPT=$YMAKE_PYTHON $CYTHON_SCRIPT when ($MSVC == "yes" || $CYGWIN == "yes") { MODULE_PREFIX=py3 } @@ -9020,19 +9020,19 @@ multimodule PY23_TEST { MODULE_PREFIX=py2_ OBJ_SUF=.py2 CANONIZE_SUB_PATH=py2test - RUN_CYTHON_SCRIPT=$YMAKE_PYTHON $CYTHON_SCRIPT + RUN_CYTHON_SCRIPT=$YMAKE_PYTHON $CYTHON_SCRIPT } module PY3TEST_PROGRAM: PY3TEST_BIN { .FINAL_TARGET=yes OBJ_SUF=.py3 CANONIZE_SUB_PATH=py3test - RUN_CYTHON_SCRIPT=$YMAKE_PYTHON $CYTHON_SCRIPT + RUN_CYTHON_SCRIPT=$YMAKE_PYTHON $CYTHON_SCRIPT } module PY3TEST_LIBRARY: _PY3_LIBRARY { PEERDIR+=library/python/pytest _REQUIRE_EXPLICIT_LICENSE() - RUN_CYTHON_SCRIPT=$YMAKE_PYTHON $CYTHON_SCRIPT + RUN_CYTHON_SCRIPT=$YMAKE_PYTHON $CYTHON_SCRIPT } } @@ -9182,21 +9182,21 @@ macro ORIGINAL_SOURCE(Source) { ENABLE(UNUSED_MACRO) } -CMAKE_PACKAGE= -CMAKE_PACKAGE_COMPONENT= -CMAKE_PACKAGE_TARGET= -CONAN_REFERENCE= -### @usage: OPENSOURCE_EXPORT_REPLACEMENT(CMAKE PkgName CMAKE_TARGET PkgName::PkgTarget CONAN ConanRef CMAKE_COMPONENT OptCmakePkgComponent) -### -### Use specified conan/system pacakcge when exporting cmake build scripts for arcadia C++ project -### for opensource publication. -macro OPENSOURCE_EXPORT_REPLACEMENT(CMAKE[], CMAKE_TARGET[], CMAKE_COMPONENET[], CONAN[]) { - SET(CMAKE_PACKAGE $CMAKE) - SET(CMAKE_PACKAGE_COMPONENT $CMAKE_COMPONENET) - SET(CMAKE_LINK_TARGET $CMAKE_TARGET) - SET(CONAN_REFERENCE $CONAN) -} - +CMAKE_PACKAGE= +CMAKE_PACKAGE_COMPONENT= +CMAKE_PACKAGE_TARGET= +CONAN_REFERENCE= +### @usage: OPENSOURCE_EXPORT_REPLACEMENT(CMAKE PkgName CMAKE_TARGET PkgName::PkgTarget CONAN ConanRef CMAKE_COMPONENT OptCmakePkgComponent) +### +### Use specified conan/system pacakcge when exporting cmake build scripts for arcadia C++ project +### for opensource publication. +macro OPENSOURCE_EXPORT_REPLACEMENT(CMAKE[], CMAKE_TARGET[], CMAKE_COMPONENET[], CONAN[]) { + SET(CMAKE_PACKAGE $CMAKE) + SET(CMAKE_PACKAGE_COMPONENT $CMAKE_COMPONENET) + SET(CMAKE_LINK_TARGET $CMAKE_TARGET) + SET(CONAN_REFERENCE $CONAN) +} + # tag:licence CREDITS_FILE_EXTRA_EXT= CREDITS_FLAGS= |