diff options
author | heretic <heretic@yandex-team.ru> | 2022-02-10 16:45:46 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:45:46 +0300 |
commit | 81eddc8c0b55990194e112b02d127b87d54164a9 (patch) | |
tree | 9142afc54d335ea52910662635b898e79e192e49 /build | |
parent | 397cbe258b9e064f49c4ca575279f02f39fef76e (diff) | |
download | ydb-81eddc8c0b55990194e112b02d127b87d54164a9.tar.gz |
Restoring authorship annotation for <heretic@yandex-team.ru>. Commit 2 of 2.
Diffstat (limited to 'build')
109 files changed, 4113 insertions, 4113 deletions
diff --git a/build/conf/license.conf b/build/conf/license.conf index dd25bcf145..f2fb576b0d 100644 --- a/build/conf/license.conf +++ b/build/conf/license.conf @@ -25,8 +25,8 @@ LICENSES_UNATTRIBUTED= \ AFL-2.0 \ AML \ APSL-1.0 \ - ASM-BSD-3-Clause \ - Amazon-SL \ + ASM-BSD-3-Clause \ + Amazon-SL \ Artistic-1.0-Perl \ BCL \ BSD-3-Clause-Open-MPI \ @@ -34,9 +34,9 @@ LICENSES_UNATTRIBUTED= \ BSLA \ Bison-Exception \ BouncyCastle-MIT \ - Brian-Gladman-3-Clause \ + Brian-Gladman-3-Clause \ Bsd-New-Tcpdump \ - Bsd-Original-Uc-1986 \ + Bsd-Original-Uc-1986 \ CC-BY-1.0 \ CC-BY-2.0 \ CC-BY-2.5 \ @@ -149,14 +149,14 @@ LICENSES_UNATTRIBUTED= \ Xnet \ jQuery-MIT -LICENSES_PATCHES_FORBIDDEN= \ - Unicode - +LICENSES_PATCHES_FORBIDDEN= \ + Unicode + LICENSES_FORBIDDEN= \ AGPL-3.0-only \ AGPL-3.0-or-later \ - Artistic-1.0 \ - Musl-Exception \ + Artistic-1.0 \ + Musl-Exception \ ${LICENSES_UNATTRIBUTED} # Group for proprietary code licenses @@ -177,110 +177,110 @@ LICENSES_REQUIRE_DISCLOSURE= \ EPL-1.0 \ EPL-2.0 \ GPL \ - GPL-1.0-only \ - GPL-1.0-or-later \ - GPL-1.0-or-later WITH Linux-syscall-note \ - GPL-1.1 \ + GPL-1.0-only \ + GPL-1.0-or-later \ + GPL-1.0-or-later WITH Linux-syscall-note \ + GPL-1.1 \ GPL-2.0 \ GPL-2.0-only \ - GPL-2.0-only WITH GCC-exception-2.0 \ + GPL-2.0-only WITH GCC-exception-2.0 \ GPL-2.0-only WITH Linux-syscall-note \ GPL-2.0-or-later \ GPL-2.0-or-later WITH GCC-exception-2.0 \ - GPL-2.0-or-later WITH Linux-syscall-note \ + GPL-2.0-or-later WITH Linux-syscall-note \ GPL-3.0-only \ - GPL-3.0-or-later \ - GPL-3.0-or-later WITH Bison-exception-2.2 + GPL-3.0-or-later \ + GPL-3.0-or-later WITH Bison-exception-2.2 LICENSES_REQUIRE_DISCLOSURE_STATIC= \ LGPL \ - LGPL-1.0-or-later \ + LGPL-1.0-or-later \ LGPL-2.0-only \ LGPL-2.0-or-later \ - LGPL-2.0-or-later WITH Libtool-exception \ - LGPL-2.0-or-later WITH Linux-syscall-note \ + LGPL-2.0-or-later WITH Libtool-exception \ + LGPL-2.0-or-later WITH Linux-syscall-note \ LGPL-2.1-only \ - LGPL-2.1-only WITH Linux-syscall-note \ + LGPL-2.1-only WITH Linux-syscall-note \ LGPL-2.1-or-later \ - LGPL-2.1-or-later WITH Linux-syscall-note \ + LGPL-2.1-or-later WITH Linux-syscall-note \ LGPL-3.0-only \ LGPL-3.0-or-later # These licenses allows any kind of linkage with proprietary code LICENSES_PERMISSIVE= \ 0BSD \ - Apache-1.0 \ + Apache-1.0 \ Apache-1.1 \ Apache-2.0 \ Apache-2.0 WITH LLVM-exception \ APSL-2.0 \ - Beerware \ - blessing \ + Beerware \ + blessing \ BSL-1.0 \ BSD \ - BSD-1-Clause \ + BSD-1-Clause \ BSD-2-Clause \ BSD-2-Clause-Patent \ BSD-2-Clause-Views \ BSD-3-Clause \ BSD-4-Clause \ - BSD-4-Clause-UC \ + BSD-4-Clause-UC \ BSD-derived \ - BSD-ORIGINAL-UC-1986 \ - BSD-Source-Code \ + BSD-ORIGINAL-UC-1986 \ + BSD-Source-Code \ Bsd-Simplified-Darwin \ - Bsd-Unchanged \ - Bsd-Unmodified \ - bzip2-1.0.6 \ + Bsd-Unchanged \ + Bsd-Unmodified \ + bzip2-1.0.6 \ CC0-1.0 \ - CC-PDDC \ - Cmu-Computing-Services \ + CC-PDDC \ + Cmu-Computing-Services \ CUP-Parser \ curl \ Custom-Punycode \ Facebook-SDK \ FDK \ - FSFAP \ + FSFAP \ FTL \ H2 \ - IBM-pibs \ + IBM-pibs \ ICU \ Ietf \ IJG \ Intel-Simplified \ ISC \ JSON \ - Khronos \ - Libpbm \ + Khronos \ + Libpbm \ LicenseRef-scancode-bitstream \ LicenseRef-scancode-ams-fonts \ - Linux-OpenIB \ - Libpng \ + Linux-OpenIB \ + Libpng \ libpng-2.0 \ libtiff \ - Martin-Birgmeier \ + Martin-Birgmeier \ MIT \ MIT-0 \ MIT-CMU \ - MIT-Modern-Variant \ + MIT-Modern-Variant \ MIT-Nagy \ - MIT-open-group \ + MIT-open-group \ Mit-Old-Style \ - Mit-Veillard-Variant \ + Mit-Veillard-Variant \ MPL-1.0 \ MPL-1.1 \ MPL-2.0 \ Minpack \ NCSA \ - NTP \ + NTP \ Not-Applicable \ - Nvidia \ + Nvidia \ OGC-1.0 \ OLDAP-2.8 \ OML \ OpenSSL \ PayPal-SDK \ - PCRE \ + PCRE \ PD \ Public-Domain \ Public-Domain-US-Govt \ @@ -288,40 +288,40 @@ LICENSES_PERMISSIVE= \ PIL \ Plexus \ PostgreSQL \ - Protobuf-License \ + Protobuf-License \ PSF \ PSF-2.0 \ Python-2.0 \ Qhull \ - Red-Hat-Attribution \ + Red-Hat-Attribution \ Repoze-public \ - RSA-MD \ - RSA-MD4 \ - RSA-1990 \ + RSA-MD \ + RSA-MD4 \ + RSA-1990 \ Sleepycat \ - Snprintf \ + Snprintf \ SGI-B-2.0 \ SMLNJ \ - SSH-short \ + SSH-short \ SSLeay \ - Sunpro \ + Sunpro \ Unicode-DFS-2016 \ - Unicode-Icu-58 \ - Unicode-Mappings \ + Unicode-Icu-58 \ + Unicode-Mappings \ Unlicense \ Unrar \ UPL-1.0 \ Vertica \ W3C \ WTFPL \ - X11 \ - X11-Lucent \ + X11 \ + X11-Lucent \ YandexOpen \ Zlib \ zlib-acknowledgement \ - ZPL-2.1 \ - ${CUSTOM_LICENSE_MUSL_EXCEPTION} \ - ${LICENSES_PATCHES_FORBIDDEN} + ZPL-2.1 \ + ${CUSTOM_LICENSE_MUSL_EXCEPTION} \ + ${LICENSES_PATCHES_FORBIDDEN} LICENSES_PERMISSIVE_DYNAMIC= \ LGPL \ @@ -332,18 +332,18 @@ LICENSES_PERMISSIVE_DYNAMIC= \ LGPL-3.0-only \ LGPL-3.0-or-later -# https://st.yandex-team.ru/ARCADIAWGSUP-34 -CUSTOM_LICENSE_LIBSSH2_AGENT_WIN=Libssh2-Agent-Win -# Permissive only in musllib -CUSTOM_LICENSE_MUSL_EXCEPTION=Musl-Exception-in-Musllib - +# https://st.yandex-team.ru/ARCADIAWGSUP-34 +CUSTOM_LICENSE_LIBSSH2_AGENT_WIN=Libssh2-Agent-Win +# Permissive only in musllib +CUSTOM_LICENSE_MUSL_EXCEPTION=Musl-Exception-in-Musllib + # TODO: this list is almost empty. needed for DEVRULES-151 LICENSES_REQUIRE_CITATION= \ - Apache-2.0 \ - Cmu-Computing-Services \ - OpenSSL \ - Spencer-94 \ - ${CUSTOM_LICENSE_LIBSSH2_AGENT_WIN} + Apache-2.0 \ + Cmu-Computing-Services \ + OpenSSL \ + Spencer-94 \ + ${CUSTOM_LICENSE_LIBSSH2_AGENT_WIN} LICENSES_SERVICE= \ Service-Dll-Harness \ diff --git a/build/conf/project_specific/maps/aar.conf b/build/conf/project_specific/maps/aar.conf index 32603595b8..780ff38984 100644 --- a/build/conf/project_specific/maps/aar.conf +++ b/build/conf/project_specific/maps/aar.conf @@ -303,7 +303,7 @@ $_AAR_COPY_DOC_VALUE \ && ${cwd:BINDIR} $COPY_CMD build/libs/${suf=-sources.jar:REALPRJNAME} ${output;suf=-sources.jar:REALPRJNAME} macro _AAR_CMD_IMPL(EXTRA_INPUTS...) { - .CMD=$_AAR_CMDLINE && $GENERATE_MF + .CMD=$_AAR_CMDLINE && $GENERATE_MF } AAR_CMD=$_AAR_CMD_IMPL($_AAR_EXTRA_INPUTS_VALUE) diff --git a/build/conf/project_specific/yql_udf.conf b/build/conf/project_specific/yql_udf.conf index 9441d5117a..badaf36687 100644 --- a/build/conf/project_specific/yql_udf.conf +++ b/build/conf/project_specific/yql_udf.conf @@ -123,8 +123,8 @@ multimodule YQL_UDF { .ALIASES=SRCS=GLOBAL_SRCS OBJ_SUF=.udfs _ADD_YQL_UDF_DEPS() - # disable credits generation for static library - SET(CREDITS_FLAGS) + # disable credits generation for static library + SET(CREDITS_FLAGS) when ($MSVC == "yes" || $CYGWIN == "yes") { MODULE_SUFFIX=.static.lib } diff --git a/build/external_resources/android_sdk/ya.make b/build/external_resources/android_sdk/ya.make index 9377185a95..bc01c12523 100644 --- a/build/external_resources/android_sdk/ya.make +++ b/build/external_resources/android_sdk/ya.make @@ -6,13 +6,13 @@ IF (OS_ANDROID) # Android SDK for linux and darwin: Build-Tools 30.0.3, Platform 30 DECLARE_EXTERNAL_HOST_RESOURCES_BUNDLE( ANDROID_SDK - sbr:2564045529 FOR LINUX - sbr:2564523615 FOR DARWIN + sbr:2564045529 FOR LINUX + sbr:2564523615 FOR DARWIN ) IF (NOT HOST_OS_LINUX AND NOT HOST_OS_DARWIN) MESSAGE(FATAL_ERROR Unsupported platform for ANDROID_SDK) ENDIF() - DECLARE_EXTERNAL_RESOURCE(ANDROID_AVD sbr:2563860055) + DECLARE_EXTERNAL_RESOURCE(ANDROID_AVD sbr:2563860055) ELSE() MESSAGE(FATAL_ERROR Unsupported platform) ENDIF() diff --git a/build/external_resources/flake8_py2/ya.make b/build/external_resources/flake8_py2/ya.make index 692d5c81d3..412a014b9e 100644 --- a/build/external_resources/flake8_py2/ya.make +++ b/build/external_resources/flake8_py2/ya.make @@ -2,8 +2,8 @@ RESOURCES_LIBRARY() OWNER(g:yatool) -IF (HOST_OS_DARWIN AND HOST_ARCH_ARM64 OR - HOST_OS_DARWIN AND HOST_ARCH_X86_64 OR +IF (HOST_OS_DARWIN AND HOST_ARCH_ARM64 OR + HOST_OS_DARWIN AND HOST_ARCH_X86_64 OR HOST_OS_LINUX AND HOST_ARCH_PPC64LE OR HOST_OS_LINUX AND HOST_ARCH_X86_64 OR HOST_OS_WINDOWS AND HOST_ARCH_X86_64) diff --git a/build/external_resources/flake8_py3/ya.make b/build/external_resources/flake8_py3/ya.make index 6d851262fd..c2192b2df6 100644 --- a/build/external_resources/flake8_py3/ya.make +++ b/build/external_resources/flake8_py3/ya.make @@ -2,8 +2,8 @@ RESOURCES_LIBRARY() OWNER(g:yatool) -IF (HOST_OS_DARWIN AND HOST_ARCH_ARM64 OR - HOST_OS_DARWIN AND HOST_ARCH_X86_64 OR +IF (HOST_OS_DARWIN AND HOST_ARCH_ARM64 OR + HOST_OS_DARWIN AND HOST_ARCH_X86_64 OR HOST_OS_LINUX AND HOST_ARCH_PPC64LE OR HOST_OS_LINUX AND HOST_ARCH_X86_64 OR HOST_OS_WINDOWS AND HOST_ARCH_X86_64) diff --git a/build/external_resources/go_fake_xcrun/ya.make b/build/external_resources/go_fake_xcrun/ya.make index 430f312bd7..f82b5e750a 100644 --- a/build/external_resources/go_fake_xcrun/ya.make +++ b/build/external_resources/go_fake_xcrun/ya.make @@ -7,7 +7,7 @@ IF (NOT HOST_OS_DARWIN AND NOT HOST_OS_LINUX AND NOT HOST_OS_WINDOWS) ELSE() DECLARE_EXTERNAL_HOST_RESOURCES_BUNDLE( GO_FAKE_XCRUN - sbr:2000736487 FOR DARWIN-ARM64 + sbr:2000736487 FOR DARWIN-ARM64 sbr:2000736487 FOR DARWIN sbr:2000736769 FOR LINUX sbr:2000736617 FOR WIN32 diff --git a/build/platform/android_sdk/ya.make b/build/platform/android_sdk/ya.make index c66207788d..1e726065da 100644 --- a/build/platform/android_sdk/ya.make +++ b/build/platform/android_sdk/ya.make @@ -1,20 +1,20 @@ -RESOURCES_LIBRARY() - -OWNER(g:mapkit) - -IF (NOT OS_ANDROID) - MESSAGE(FATAL_ERROR Unsupported platform) -ENDIF() - -IF (HOST_OS_LINUX) +RESOURCES_LIBRARY() + +OWNER(g:mapkit) + +IF (NOT OS_ANDROID) + MESSAGE(FATAL_ERROR Unsupported platform) +ENDIF() + +IF (HOST_OS_LINUX) # Android SDK for linux: Build-Tools 30.0.3, Platform 30 - DECLARE_EXTERNAL_HOST_RESOURCES_BUNDLE( - ANDROID_SDK - sbr:2564045529 FOR LINUX - ) - DECLARE_EXTERNAL_RESOURCE(ANDROID_AVD sbr:2563860055) -ELSE() - MESSAGE(FATAL_ERROR Unsupported host platform) -ENDIF() - -END() + DECLARE_EXTERNAL_HOST_RESOURCES_BUNDLE( + ANDROID_SDK + sbr:2564045529 FOR LINUX + ) + DECLARE_EXTERNAL_RESOURCE(ANDROID_AVD sbr:2563860055) +ELSE() + MESSAGE(FATAL_ERROR Unsupported host platform) +ENDIF() + +END() diff --git a/build/platform/bfd/ya.make b/build/platform/bfd/ya.make index 3f92fabc82..67501f665f 100644 --- a/build/platform/bfd/ya.make +++ b/build/platform/bfd/ya.make @@ -2,7 +2,7 @@ RESOURCES_LIBRARY() OWNER(somov) -INCLUDE(${ARCADIA_ROOT}/build/platform/binutils/binutils.resource) +INCLUDE(${ARCADIA_ROOT}/build/platform/binutils/binutils.resource) LDFLAGS(-fuse-ld=$BINUTILS_ROOT_RESOURCE_GLOBAL/bin/ld.bfd) diff --git a/build/platform/binutils/binutils.resource b/build/platform/binutils/binutils.resource index 32ff6b293c..28823ecd80 100644 --- a/build/platform/binutils/binutils.resource +++ b/build/platform/binutils/binutils.resource @@ -1,7 +1,7 @@ -IF (HOST_OS_DARWIN AND OS_LINUX AND ARCH_X86_64) - DECLARE_EXTERNAL_RESOURCE(BINUTILS_ROOT sbr:333256689) -ELSEIF (HOST_OS_LINUX AND OS_LINUX) - DECLARE_EXTERNAL_RESOURCE(BINUTILS_ROOT sbr:360916612) -ELSE() - MESSAGE(FATAL_ERROR "There is no binutils for selected build configuration") -ENDIF() +IF (HOST_OS_DARWIN AND OS_LINUX AND ARCH_X86_64) + DECLARE_EXTERNAL_RESOURCE(BINUTILS_ROOT sbr:333256689) +ELSEIF (HOST_OS_LINUX AND OS_LINUX) + DECLARE_EXTERNAL_RESOURCE(BINUTILS_ROOT sbr:360916612) +ELSE() + MESSAGE(FATAL_ERROR "There is no binutils for selected build configuration") +ENDIF() diff --git a/build/platform/binutils/ya.make b/build/platform/binutils/ya.make index 1d714b7eed..aedcb12f23 100644 --- a/build/platform/binutils/ya.make +++ b/build/platform/binutils/ya.make @@ -2,7 +2,7 @@ RESOURCES_LIBRARY() OWNER(g:contrib somov) -INCLUDE(binutils.resource) +INCLUDE(binutils.resource) END() diff --git a/build/platform/cctools/ya.make b/build/platform/cctools/ya.make index dbb1d42a94..c17a6abc67 100644 --- a/build/platform/cctools/ya.make +++ b/build/platform/cctools/ya.make @@ -2,11 +2,11 @@ RESOURCES_LIBRARY() OWNER(somov) -DECLARE_EXTERNAL_HOST_RESOURCES_BUNDLE( - CCTOOLS_ROOT - sbr:2135298496 FOR LINUX - sbr:2135992724 FOR DARWIN - sbr:2135992724 FOR DARWIN-ARM64 -) +DECLARE_EXTERNAL_HOST_RESOURCES_BUNDLE( + CCTOOLS_ROOT + sbr:2135298496 FOR LINUX + sbr:2135992724 FOR DARWIN + sbr:2135992724 FOR DARWIN-ARM64 +) END() diff --git a/build/platform/clang/ya.make b/build/platform/clang/ya.make index 6b180fff06..342b928637 100644 --- a/build/platform/clang/ya.make +++ b/build/platform/clang/ya.make @@ -11,8 +11,8 @@ IF (CLANG10BC AND CLANG10 AND HOST_OS_LINUX) sbr:1844539535 FOR DARWIN ) ELSE() - # Remove -std=c++17 flag from LLVM_COMPILE_CXX and CLANG_EMIT_AST_CXX macro when update clang to 11 - # DEVTOOLS-7845 + # Remove -std=c++17 flag from LLVM_COMPILE_CXX and CLANG_EMIT_AST_CXX macro when update clang to 11 + # DEVTOOLS-7845 DECLARE_EXTERNAL_HOST_RESOURCES_BUNDLE( CLANG # Clang 7 sbr:707372498 FOR LINUX # In 942524429 and 958916803 llvm-link does not run. diff --git a/build/platform/coverage_push_tool/ya.make b/build/platform/coverage_push_tool/ya.make index 1b4df90479..675569dbe5 100644 --- a/build/platform/coverage_push_tool/ya.make +++ b/build/platform/coverage_push_tool/ya.make @@ -1,10 +1,10 @@ -RESOURCES_LIBRARY() -OWNER(heretic) -IF(USE_SYSTEM_COVERAGE_PUSH_TOOL) - MESSAGE(WARNING System coverage push tool $USE_SYSTEM_COVERAGE_PUSH_TOOL will be used) -ELSEIF(HOST_OS_LINUX) - DECLARE_EXTERNAL_RESOURCE(COVERAGE_PUSH_TOOL sbr:1748856682) -ELSE() - MESSAGE(FATAL_ERROR Unsupported host for COVERAGE_PUSH_TOOL) -ENDIF() -END() +RESOURCES_LIBRARY() +OWNER(heretic) +IF(USE_SYSTEM_COVERAGE_PUSH_TOOL) + MESSAGE(WARNING System coverage push tool $USE_SYSTEM_COVERAGE_PUSH_TOOL will be used) +ELSEIF(HOST_OS_LINUX) + DECLARE_EXTERNAL_RESOURCE(COVERAGE_PUSH_TOOL sbr:1748856682) +ELSE() + MESSAGE(FATAL_ERROR Unsupported host for COVERAGE_PUSH_TOOL) +ENDIF() +END() diff --git a/build/platform/cuda/stdtree/ya.make b/build/platform/cuda/stdtree/ya.make index 03a0e2f3ee..01feaee51e 100644 --- a/build/platform/cuda/stdtree/ya.make +++ b/build/platform/cuda/stdtree/ya.make @@ -1,13 +1,13 @@ -RESOURCES_LIBRARY() - -OWNER(g:contrib heretic) - -IF (OS_LINUX) - DECLARE_EXTERNAL_RESOURCE(STD_TREE sbr:1094784663) -ELSE() - MESSAGE(FATAL_ERROR "No stdc++ tree part for the selected platform found") -ENDIF() -LDFLAGS("-L$STD_TREE_RESOURCE_GLOBAL") -EXTRALIBS(tree) - -END() +RESOURCES_LIBRARY() + +OWNER(g:contrib heretic) + +IF (OS_LINUX) + DECLARE_EXTERNAL_RESOURCE(STD_TREE sbr:1094784663) +ELSE() + MESSAGE(FATAL_ERROR "No stdc++ tree part for the selected platform found") +ENDIF() +LDFLAGS("-L$STD_TREE_RESOURCE_GLOBAL") +EXTRALIBS(tree) + +END() diff --git a/build/platform/cuda/ya.make b/build/platform/cuda/ya.make index a4e312502d..3615f682cd 100644 --- a/build/platform/cuda/ya.make +++ b/build/platform/cuda/ya.make @@ -26,14 +26,14 @@ IF (USE_ARCADIA_CUDA) ELSE() ENABLE(CUDA_NOT_FOUND) ENDIF() - ELSEIF(OS_LINUX AND ARCH_AARCH64) - IF (CUDA_VERSION == "11.3") - DECLARE_EXTERNAL_RESOURCE(CUDA sbr:2227720086) # CUDA Toolkit 11.3.20210513 (11.3.1) for Linux x86-64 with linux-aarch64 support - # host tools installer https://sandbox.yandex-team.ru/resource/2227828799/view - # cross compile parts installer https://sandbox.yandex-team.ru/resource/2227885870/view - ELSE() - ENABLE(CUDA_NOT_FOUND) - ENDIF() + ELSEIF(OS_LINUX AND ARCH_AARCH64) + IF (CUDA_VERSION == "11.3") + DECLARE_EXTERNAL_RESOURCE(CUDA sbr:2227720086) # CUDA Toolkit 11.3.20210513 (11.3.1) for Linux x86-64 with linux-aarch64 support + # host tools installer https://sandbox.yandex-team.ru/resource/2227828799/view + # cross compile parts installer https://sandbox.yandex-team.ru/resource/2227885870/view + ELSE() + ENABLE(CUDA_NOT_FOUND) + ENDIF() ELSE() ENABLE(CUDA_NOT_FOUND) ENDIF() @@ -89,8 +89,8 @@ IF (USE_ARCADIA_CUDA_HOST_COMPILER) # Equivalent to nvcc -allow-unsupported-compiler (present since 11.0). CFLAGS(GLOBAL "-D__NV_NO_HOST_COMPILER_CHECK") ENDIF() - ELSEIF(OS_LINUX AND ARCH_AARCH64) - DECLARE_EXTERNAL_RESOURCE(CUDA_HOST_TOOLCHAIN sbr:1886578148) # Clang 11.0.0 for linux-x86_64 + ELSEIF(OS_LINUX AND ARCH_AARCH64) + DECLARE_EXTERNAL_RESOURCE(CUDA_HOST_TOOLCHAIN sbr:1886578148) # Clang 11.0.0 for linux-x86_64 ELSE() ENABLE(CUDA_HOST_COMPILER_NOT_FOUND) ENDIF() @@ -109,16 +109,16 @@ IF (USE_ARCADIA_CUDA_HOST_COMPILER) ELSEIF (HOST_OS_DARWIN AND HOST_ARCH_X86_64) IF (OS_DARWIN AND ARCH_X86_64) - SET(__XCODE_RESOURCE_NAME CUDA_HOST_TOOLCHAIN) + SET(__XCODE_RESOURCE_NAME CUDA_HOST_TOOLCHAIN) IF (CUDA_VERSION == "10.1") SET(__XCODE_TOOLCHAIN_VERSION "9.2") # (not latest) - ELSE() - SET(__XCODE_TOOLCHAIN_VERSION "") - ENABLE(CUDA_HOST_COMPILER_NOT_FOUND) + ELSE() + SET(__XCODE_TOOLCHAIN_VERSION "") + ENABLE(CUDA_HOST_COMPILER_NOT_FOUND) + ENDIF() + IF (__XCODE_TOOLCHAIN_VERSION) + INCLUDE(${ARCADIA_ROOT}/build/platform/xcode/ya.make.inc) ENDIF() - IF (__XCODE_TOOLCHAIN_VERSION) - INCLUDE(${ARCADIA_ROOT}/build/platform/xcode/ya.make.inc) - ENDIF() ELSE() ENABLE(CUDA_HOST_COMPILER_NOT_FOUND) ENDIF() @@ -169,23 +169,23 @@ ENDIF() IF (HOST_OS_WINDOWS) SET_APPEND(LDFLAGS_GLOBAL "\"/LIBPATH:${CUDA_ROOT}/lib/x64\"") -ELSEIF(HOST_OS_LINUX AND OS_LINUX AND ARCH_AARCH64) - LDFLAGS("-L${CUDA_ROOT}/targets/sbsa-linux/lib") +ELSEIF(HOST_OS_LINUX AND OS_LINUX AND ARCH_AARCH64) + LDFLAGS("-L${CUDA_ROOT}/targets/sbsa-linux/lib") ELSEIF(HOST_OS_LINUX) LDFLAGS("-L${CUDA_ROOT}/lib64") ELSE() LDFLAGS("-L${CUDA_ROOT}/lib") ENDIF() -IF (CUDA_REQUIRED) - IF(HOST_OS_LINUX) - LDFLAGS("-L${CUDA_ROOT}/lib64/stubs") - EXTRALIBS(-lcuda) - ELSEIF(HOST_OS_DARWIN) - LDFLAGS("-F${CUDA_ROOT}/lib/stubs -framework CUDA") - ENDIF() -ENDIF() - +IF (CUDA_REQUIRED) + IF(HOST_OS_LINUX) + LDFLAGS("-L${CUDA_ROOT}/lib64/stubs") + EXTRALIBS(-lcuda) + ELSEIF(HOST_OS_DARWIN) + LDFLAGS("-F${CUDA_ROOT}/lib/stubs -framework CUDA") + ENDIF() +ENDIF() + IF (HOST_OS_WINDOWS) LDFLAGS(cudadevrt.lib cudart_static.lib) ELSE() diff --git a/build/platform/gold/ya.make b/build/platform/gold/ya.make index 59f6d0e123..91f01602f7 100644 --- a/build/platform/gold/ya.make +++ b/build/platform/gold/ya.make @@ -2,7 +2,7 @@ RESOURCES_LIBRARY() OWNER(somov) -INCLUDE(${ARCADIA_ROOT}/build/platform/binutils/binutils.resource) +INCLUDE(${ARCADIA_ROOT}/build/platform/binutils/binutils.resource) LDFLAGS( -fuse-ld=$BINUTILS_ROOT_RESOURCE_GLOBAL/bin/ld.gold diff --git a/build/platform/java/error_prone/2.10.0/ya.make b/build/platform/java/error_prone/2.10.0/ya.make index fbe71c80f3..d08a624350 100644 --- a/build/platform/java/error_prone/2.10.0/ya.make +++ b/build/platform/java/error_prone/2.10.0/ya.make @@ -1,4 +1,4 @@ -RESOURCES_LIBRARY() -OWNER(heretic) -DECLARE_EXTERNAL_RESOURCE(ERROR_PRONE_2_10_0 sbr:2649935593) -END() +RESOURCES_LIBRARY() +OWNER(heretic) +DECLARE_EXTERNAL_RESOURCE(ERROR_PRONE_2_10_0 sbr:2649935593) +END() diff --git a/build/platform/java/error_prone/2.3.1/ya.make b/build/platform/java/error_prone/2.3.1/ya.make index 13800abfd1..5d2267036f 100644 --- a/build/platform/java/error_prone/2.3.1/ya.make +++ b/build/platform/java/error_prone/2.3.1/ya.make @@ -1,4 +1,4 @@ -RESOURCES_LIBRARY() -OWNER(heretic) -DECLARE_EXTERNAL_RESOURCE(ERROR_PRONE_2_3_1 sbr:616853779) -END() +RESOURCES_LIBRARY() +OWNER(heretic) +DECLARE_EXTERNAL_RESOURCE(ERROR_PRONE_2_3_1 sbr:616853779) +END() diff --git a/build/platform/java/error_prone/2.7.1/ya.make b/build/platform/java/error_prone/2.7.1/ya.make index 0d60128316..81a345ba98 100644 --- a/build/platform/java/error_prone/2.7.1/ya.make +++ b/build/platform/java/error_prone/2.7.1/ya.make @@ -1,4 +1,4 @@ -RESOURCES_LIBRARY() -OWNER(heretic) -DECLARE_EXTERNAL_RESOURCE(ERROR_PRONE_2_7_1 sbr:2202855601) -END() +RESOURCES_LIBRARY() +OWNER(heretic) +DECLARE_EXTERNAL_RESOURCE(ERROR_PRONE_2_7_1 sbr:2202855601) +END() diff --git a/build/platform/java/error_prone/ya.make b/build/platform/java/error_prone/ya.make index 89facf44d1..ee2eceafc0 100644 --- a/build/platform/java/error_prone/ya.make +++ b/build/platform/java/error_prone/ya.make @@ -1,28 +1,28 @@ -RESOURCES_LIBRARY() -OWNER(heretic) -IF(USE_SYSTEM_ERROR_PRONE) - MESSAGE(WARNING System Error Prone $USE_SYSTEM_ERROR_PRONE will be used) +RESOURCES_LIBRARY() +OWNER(heretic) +IF(USE_SYSTEM_ERROR_PRONE) + MESSAGE(WARNING System Error Prone $USE_SYSTEM_ERROR_PRONE will be used) ELSEIF(ERROR_PRONE_VERSION == "2.3.1") - DECLARE_EXTERNAL_RESOURCE(ERROR_PRONE sbr:616853779) + DECLARE_EXTERNAL_RESOURCE(ERROR_PRONE sbr:616853779) ELSEIF(ERROR_PRONE_VERSION == "2.3.2") - DECLARE_EXTERNAL_RESOURCE(ERROR_PRONE sbr:760800655) + DECLARE_EXTERNAL_RESOURCE(ERROR_PRONE sbr:760800655) ELSEIF(ERROR_PRONE_VERSION == "2.3.3") - DECLARE_EXTERNAL_RESOURCE(ERROR_PRONE sbr:919320393) + DECLARE_EXTERNAL_RESOURCE(ERROR_PRONE sbr:919320393) ELSEIF(ERROR_PRONE_VERSION == "2.4.0") - DECLARE_EXTERNAL_RESOURCE(ERROR_PRONE sbr:1585305794) + DECLARE_EXTERNAL_RESOURCE(ERROR_PRONE sbr:1585305794) ELSEIF(ERROR_PRONE_VERSION == "2.6.0") DECLARE_EXTERNAL_RESOURCE(ERROR_PRONE sbr:2139890169) -ELSEIF(ERROR_PRONE_VERSION == "2.7.1") - DECLARE_EXTERNAL_RESOURCE(ERROR_PRONE sbr:2202855601) -ELSEIF(ERROR_PRONE_VERSION == "2.10.0") - DECLARE_EXTERNAL_RESOURCE(ERROR_PRONE sbr:2649935593) -ELSE() - MESSAGE(FATAL_ERROR Unsupported Error Prone version: $ERROR_PRONE_VERSION) -ENDIF() -END() - -RECURSE( - 2.10.0 - 2.7.1 - 2.3.1 -) +ELSEIF(ERROR_PRONE_VERSION == "2.7.1") + DECLARE_EXTERNAL_RESOURCE(ERROR_PRONE sbr:2202855601) +ELSEIF(ERROR_PRONE_VERSION == "2.10.0") + DECLARE_EXTERNAL_RESOURCE(ERROR_PRONE sbr:2649935593) +ELSE() + MESSAGE(FATAL_ERROR Unsupported Error Prone version: $ERROR_PRONE_VERSION) +ENDIF() +END() + +RECURSE( + 2.10.0 + 2.7.1 + 2.3.1 +) diff --git a/build/platform/java/groovy/ya.make b/build/platform/java/groovy/ya.make index dabe96508a..01058729b2 100644 --- a/build/platform/java/groovy/ya.make +++ b/build/platform/java/groovy/ya.make @@ -1,10 +1,10 @@ -RESOURCES_LIBRARY() -OWNER(heretic) -IF(USE_SYSTEM_GROOVY_COMPILER) - MESSAGE(WARNING System groovy $USE_SYSTEM_GROOVY_COMPILER will be used) +RESOURCES_LIBRARY() +OWNER(heretic) +IF(USE_SYSTEM_GROOVY_COMPILER) + MESSAGE(WARNING System groovy $USE_SYSTEM_GROOVY_COMPILER will be used) ELSEIF(GROOVY_VERSION == "3.0.5") - DECLARE_EXTERNAL_RESOURCE(GROOVY_COMPILER sbr:1710622475) -ELSE() - MESSAGE(FATAL_ERROR Unexpected groovy version ${GROOVY_VERSION}) -ENDIF() -END() + DECLARE_EXTERNAL_RESOURCE(GROOVY_COMPILER sbr:1710622475) +ELSE() + MESSAGE(FATAL_ERROR Unexpected groovy version ${GROOVY_VERSION}) +ENDIF() +END() diff --git a/build/platform/java/jacoco-agent/ya.make b/build/platform/java/jacoco-agent/ya.make index 5c30947de4..c298dc9020 100644 --- a/build/platform/java/jacoco-agent/ya.make +++ b/build/platform/java/jacoco-agent/ya.make @@ -1,9 +1,9 @@ -RESOURCES_LIBRARY() -OWNER(heretic) -IF(USE_SYSTEM_JACOCO_AGENT) - MESSAGE(WARNING System jacoco agent $USE_SYSTEM_JACOCO_AGENT will be used) -ELSE() - DECLARE_EXTERNAL_RESOURCE(JACOCO_AGENT sbr:2493693569) -ENDIF() - -END() +RESOURCES_LIBRARY() +OWNER(heretic) +IF(USE_SYSTEM_JACOCO_AGENT) + MESSAGE(WARNING System jacoco agent $USE_SYSTEM_JACOCO_AGENT will be used) +ELSE() + DECLARE_EXTERNAL_RESOURCE(JACOCO_AGENT sbr:2493693569) +ENDIF() + +END() diff --git a/build/platform/java/jdk/jdk17/ya.make b/build/platform/java/jdk/jdk17/ya.make index 9fb611c820..97aa391945 100644 --- a/build/platform/java/jdk/jdk17/ya.make +++ b/build/platform/java/jdk/jdk17/ya.make @@ -1,23 +1,23 @@ -OWNER(heretic) -RESOURCES_LIBRARY() -INCLUDE(${ARCADIA_ROOT}/build/platform/java/jdk/resources.inc) - -DECLARE_EXTERNAL_HOST_RESOURCES_BUNDLE( - JDK17 - ${JDK17_DARWIN} FOR DARWIN - ${JDK17_DARWIN_ARM64} FOR DARWIN-ARM64 - ${JDK17_LINUX} FOR LINUX - ${JDK17_WINDOWS} FOR WIN32 -) - -IF(OS_DARWIN AND ARCH_ARM64) - DECLARE_EXTERNAL_RESOURCE(WITH_JDK17 ${JDK17_DARWIN_ARM64}) -ELSEIF(OS_DARWIN) - DECLARE_EXTERNAL_RESOURCE(WITH_JDK17 ${JDK17_DARWIN}) -ELSEIF(OS_LINUX) - DECLARE_EXTERNAL_RESOURCE(WITH_JDK17 ${JDK17_LINUX}) -ELSEIF(OS_WINDOWS) - DECLARE_EXTERNAL_RESOURCE(WITH_JDK17 ${JDK17_WINDOWS}) -ENDIF() - -END() +OWNER(heretic) +RESOURCES_LIBRARY() +INCLUDE(${ARCADIA_ROOT}/build/platform/java/jdk/resources.inc) + +DECLARE_EXTERNAL_HOST_RESOURCES_BUNDLE( + JDK17 + ${JDK17_DARWIN} FOR DARWIN + ${JDK17_DARWIN_ARM64} FOR DARWIN-ARM64 + ${JDK17_LINUX} FOR LINUX + ${JDK17_WINDOWS} FOR WIN32 +) + +IF(OS_DARWIN AND ARCH_ARM64) + DECLARE_EXTERNAL_RESOURCE(WITH_JDK17 ${JDK17_DARWIN_ARM64}) +ELSEIF(OS_DARWIN) + DECLARE_EXTERNAL_RESOURCE(WITH_JDK17 ${JDK17_DARWIN}) +ELSEIF(OS_LINUX) + DECLARE_EXTERNAL_RESOURCE(WITH_JDK17 ${JDK17_LINUX}) +ELSEIF(OS_WINDOWS) + DECLARE_EXTERNAL_RESOURCE(WITH_JDK17 ${JDK17_WINDOWS}) +ENDIF() + +END() diff --git a/build/platform/java/jdk/resources.inc b/build/platform/java/jdk/resources.inc index 20e482a53f..7413263cd9 100644 --- a/build/platform/java/jdk/resources.inc +++ b/build/platform/java/jdk/resources.inc @@ -1,49 +1,49 @@ -# JDK 17 -SET(JDK17_DARWIN_ARM64 sbr:2720893567) -SET(JDK17_DARWIN sbr:2720886299) -SET(JDK17_LINUX sbr:2720875090) -SET(JDK17_WINDOWS sbr:2720881931) - -# JDK 16 -SET(JDK16_DARWIN_ARM64 sbr:2197985911) -SET(JDK16_DARWIN sbr:2197936962) -SET(JDK16_LINUX sbr:2197854301) -SET(JDK16_WINDOWS sbr:2197964128) - -# JDK 15 -SET(JDK15_DARWIN sbr:1901471162) -SET(JDK15_DARWIN_ARM64 sbr:2107376046) -SET(JDK15_LINUX sbr:1901452000) -SET(JDK15_WINDOWS sbr:1901563630) - -# JDK 14 -SET(JDK14_DARWIN sbr:1714972232) -SET(JDK14_LINUX sbr:1714966923) -SET(JDK14_WINDOWS sbr:1714975688) - -# JDK 13 -SET(JDK13_DARWIN sbr:1327581343) -SET(JDK13_LINUX sbr:1327248424) -SET(JDK13_WINDOWS sbr:1327617393) - -SET(JDK13_LINUX_ASAN sbr:1327513158) -# JDK 12 -SET(JDK12_DARWIN sbr:1128561457) -SET(JDK12_LINUX sbr:1128737735) -SET(JDK12_WINDOWS sbr:1128743394) -# JDK 11 -SET(JDK11_DARWIN sbr:1903539486) -SET(JDK11_DARWIN_ARM64 sbr:2107253283) -SET(JDK11_LINUX sbr:1903522585) -SET(JDK11_WINDOWS sbr:1903567822) - -SET(JDK11_LINUX_ASAN sbr:1323637508) -# JDK 10 -SET(JDK10_DARWIN sbr:545649998) -SET(JDK10_LINUX sbr:545649806) -SET(JDK10_WINDOWS sbr:545648079) -# JDK 8 -SET(JDK8_DARWIN_ARM64 sbr:1901326056) -SET(JDK8_DARWIN sbr:1901326056) -SET(JDK8_LINUX sbr:1901306329) -SET(JDK8_WINDOWS sbr:1901510679) +# JDK 17 +SET(JDK17_DARWIN_ARM64 sbr:2720893567) +SET(JDK17_DARWIN sbr:2720886299) +SET(JDK17_LINUX sbr:2720875090) +SET(JDK17_WINDOWS sbr:2720881931) + +# JDK 16 +SET(JDK16_DARWIN_ARM64 sbr:2197985911) +SET(JDK16_DARWIN sbr:2197936962) +SET(JDK16_LINUX sbr:2197854301) +SET(JDK16_WINDOWS sbr:2197964128) + +# JDK 15 +SET(JDK15_DARWIN sbr:1901471162) +SET(JDK15_DARWIN_ARM64 sbr:2107376046) +SET(JDK15_LINUX sbr:1901452000) +SET(JDK15_WINDOWS sbr:1901563630) + +# JDK 14 +SET(JDK14_DARWIN sbr:1714972232) +SET(JDK14_LINUX sbr:1714966923) +SET(JDK14_WINDOWS sbr:1714975688) + +# JDK 13 +SET(JDK13_DARWIN sbr:1327581343) +SET(JDK13_LINUX sbr:1327248424) +SET(JDK13_WINDOWS sbr:1327617393) + +SET(JDK13_LINUX_ASAN sbr:1327513158) +# JDK 12 +SET(JDK12_DARWIN sbr:1128561457) +SET(JDK12_LINUX sbr:1128737735) +SET(JDK12_WINDOWS sbr:1128743394) +# JDK 11 +SET(JDK11_DARWIN sbr:1903539486) +SET(JDK11_DARWIN_ARM64 sbr:2107253283) +SET(JDK11_LINUX sbr:1903522585) +SET(JDK11_WINDOWS sbr:1903567822) + +SET(JDK11_LINUX_ASAN sbr:1323637508) +# JDK 10 +SET(JDK10_DARWIN sbr:545649998) +SET(JDK10_LINUX sbr:545649806) +SET(JDK10_WINDOWS sbr:545648079) +# JDK 8 +SET(JDK8_DARWIN_ARM64 sbr:1901326056) +SET(JDK8_DARWIN sbr:1901326056) +SET(JDK8_LINUX sbr:1901306329) +SET(JDK8_WINDOWS sbr:1901510679) diff --git a/build/platform/java/jdk/ya.make b/build/platform/java/jdk/ya.make index 2ba2493e56..909ae36e18 100644 --- a/build/platform/java/jdk/ya.make +++ b/build/platform/java/jdk/ya.make @@ -1,302 +1,302 @@ -RESOURCES_LIBRARY() -OWNER(heretic) - -INCLUDE(resources.inc) - -IF(JDK_VERSION == "17") - DECLARE_EXTERNAL_HOST_RESOURCES_BUNDLE( - JDK_DEFAULT - ${JDK17_DARWIN} FOR DARWIN - ${JDK17_DARWIN_ARM64} FOR DARWIN-ARM64 - ${JDK17_LINUX} FOR LINUX - ${JDK17_WINDOWS} FOR WIN32 - ) - IF(NOT HOST_OS_LINUX AND NOT HOST_OS_WINDOWS AND NOT HOST_OS_DARWIN) - MESSAGE(FATAL_ERROR Unsupported platform for JDK17) - ENDIF() -ELSEIF(JDK_VERSION == "16") - DECLARE_EXTERNAL_HOST_RESOURCES_BUNDLE( - JDK_DEFAULT - ${JDK16_DARWIN} FOR DARWIN - ${JDK16_DARWIN_ARM64} FOR DARWIN-ARM64 - ${JDK16_LINUX} FOR LINUX - ${JDK16_WINDOWS} FOR WIN32 - ) - IF(NOT HOST_OS_LINUX AND NOT HOST_OS_WINDOWS AND NOT HOST_OS_DARWIN) - MESSAGE(FATAL_ERROR Unsupported platform for JDK16) - ENDIF() -ELSEIF(JDK_VERSION == "15") - DECLARE_EXTERNAL_HOST_RESOURCES_BUNDLE( - JDK_DEFAULT - ${JDK15_DARWIN} FOR DARWIN - ${JDK15_DARWIN_ARM64} FOR DARWIN-ARM64 - ${JDK15_LINUX} FOR LINUX - ${JDK15_WINDOWS} FOR WIN32 - ) - IF(NOT HOST_OS_LINUX AND NOT HOST_OS_WINDOWS AND NOT HOST_OS_DARWIN) - MESSAGE(FATAL_ERROR Unsupported platform for JDK15) - ENDIF() -ELSEIF(JDK_VERSION == "14") - DECLARE_EXTERNAL_HOST_RESOURCES_BUNDLE( - JDK_DEFAULT - ${JDK14_DARWIN} FOR DARWIN - ${JDK14_LINUX} FOR LINUX - ${JDK14_WINDOWS} FOR WIN32 - ) - IF(NOT HOST_OS_LINUX AND NOT HOST_OS_WINDOWS AND NOT HOST_OS_DARWIN) - MESSAGE(FATAL_ERROR Unsupported platform for JDK14) - ENDIF() -ELSEIF(JDK_VERSION == "13") - DECLARE_EXTERNAL_HOST_RESOURCES_BUNDLE( - JDK_DEFAULT - ${JDK13_DARWIN} FOR DARWIN - ${JDK13_LINUX} FOR LINUX - ${JDK13_WINDOWS} FOR WIN32 - ) - IF(NOT HOST_OS_LINUX AND NOT HOST_OS_WINDOWS AND NOT HOST_OS_DARWIN) - MESSAGE(FATAL_ERROR Unsupported platform for JDK13) - ENDIF() -ELSEIF(JDK_VERSION == "12") - DECLARE_EXTERNAL_HOST_RESOURCES_BUNDLE( - JDK_DEFAULT - ${JDK12_DARWIN} FOR DARWIN - ${JDK12_LINUX} FOR LINUX - ${JDK12_WINDOWS} FOR WIN32 - ) - IF(NOT HOST_OS_LINUX AND NOT HOST_OS_WINDOWS AND NOT HOST_OS_DARWIN) - MESSAGE(FATAL_ERROR Unsupported platform for JDK12) - ENDIF() -ELSEIF(JDK_VERSION == "11") - DECLARE_EXTERNAL_HOST_RESOURCES_BUNDLE( - JDK_DEFAULT - ${JDK11_DARWIN} FOR DARWIN - ${JDK11_DARWIN_ARM64} FOR DARWIN-ARM64 - ${JDK11_LINUX} FOR LINUX - ${JDK11_WINDOWS} FOR WIN32 - ) - IF(NOT HOST_OS_LINUX AND NOT HOST_OS_WINDOWS AND NOT HOST_OS_DARWIN) - MESSAGE(FATAL_ERROR Unsupported platform for JDK11) - ENDIF() -ELSEIF(JDK_VERSION == "10") - DECLARE_EXTERNAL_HOST_RESOURCES_BUNDLE( - JDK_DEFAULT - ${JDK10_DARWIN} FOR DARWIN - ${JDK10_LINUX} FOR LINUX - ${JDK10_WINDOWS} FOR WIN32 - ) -ELSEIF(JDK_VERSION == "8") - DECLARE_EXTERNAL_HOST_RESOURCES_BUNDLE( - JDK_DEFAULT - ${JDK8_DARWIN_ARM64} FOR DARWIN-ARM64 - ${JDK8_DARWIN} FOR DARWIN - ${JDK8_LINUX} FOR LINUX - ${JDK8_WINDOWS} FOR WIN32 - ) - IF(NOT HOST_OS_LINUX AND NOT HOST_OS_WINDOWS AND NOT HOST_OS_DARWIN) - MESSAGE(FATAL_ERROR Unsupported platform for JDK8) - ENDIF() -ELSE() - MESSAGE(FATAL_ERROR Unsupported JDK version) -ENDIF() +RESOURCES_LIBRARY() +OWNER(heretic) -IF(USE_SYSTEM_JDK) - MESSAGE(WARNING System JDK $USE_SYSTEM_JDK will be used) -ELSEIF(JDK_VERSION == "17") - DECLARE_EXTERNAL_HOST_RESOURCES_BUNDLE( - JDK - ${JDK17_DARWIN} FOR DARWIN - ${JDK17_DARWIN_ARM64} FOR DARWIN-ARM64 - ${JDK17_LINUX} FOR LINUX - ${JDK17_WINDOWS} FOR WIN32 - ) - IF(NOT HOST_OS_LINUX AND NOT HOST_OS_WINDOWS AND NOT HOST_OS_DARWIN) - MESSAGE(FATAL_ERROR Unsupported platform for JDK17) - ENDIF() - - IF(OS_DARWIN AND ARCH_ARM64) - DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK17_DARWIN_ARM64}) - ELSEIF(OS_DARWIN) - DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK17_DARWIN}) - ELSEIF(OS_LINUX) - DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK17_LINUX}) - ELSEIF(OS_WINDOWS) - DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK17_WINDOWS}) - ENDIF() -ELSEIF(JDK_VERSION == "16") - DECLARE_EXTERNAL_HOST_RESOURCES_BUNDLE( - JDK - ${JDK16_DARWIN} FOR DARWIN - ${JDK16_DARWIN_ARM64} FOR DARWIN-ARM64 - ${JDK16_LINUX} FOR LINUX - ${JDK16_WINDOWS} FOR WIN32 - ) - IF(NOT HOST_OS_LINUX AND NOT HOST_OS_WINDOWS AND NOT HOST_OS_DARWIN) - MESSAGE(FATAL_ERROR Unsupported platform for JDK16) - ENDIF() - - IF(OS_DARWIN AND ARCH_ARM64) - DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK16_DARWIN_ARM64}) - ELSEIF(OS_DARWIN) - DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK16_DARWIN}) - ELSEIF(OS_LINUX) - DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK16_LINUX}) - ELSEIF(OS_WINDOWS) - DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK16_WINDOWS}) - ENDIF() +INCLUDE(resources.inc) + +IF(JDK_VERSION == "17") + DECLARE_EXTERNAL_HOST_RESOURCES_BUNDLE( + JDK_DEFAULT + ${JDK17_DARWIN} FOR DARWIN + ${JDK17_DARWIN_ARM64} FOR DARWIN-ARM64 + ${JDK17_LINUX} FOR LINUX + ${JDK17_WINDOWS} FOR WIN32 + ) + IF(NOT HOST_OS_LINUX AND NOT HOST_OS_WINDOWS AND NOT HOST_OS_DARWIN) + MESSAGE(FATAL_ERROR Unsupported platform for JDK17) + ENDIF() +ELSEIF(JDK_VERSION == "16") + DECLARE_EXTERNAL_HOST_RESOURCES_BUNDLE( + JDK_DEFAULT + ${JDK16_DARWIN} FOR DARWIN + ${JDK16_DARWIN_ARM64} FOR DARWIN-ARM64 + ${JDK16_LINUX} FOR LINUX + ${JDK16_WINDOWS} FOR WIN32 + ) + IF(NOT HOST_OS_LINUX AND NOT HOST_OS_WINDOWS AND NOT HOST_OS_DARWIN) + MESSAGE(FATAL_ERROR Unsupported platform for JDK16) + ENDIF() ELSEIF(JDK_VERSION == "15") - DECLARE_EXTERNAL_HOST_RESOURCES_BUNDLE( - JDK - ${JDK15_DARWIN} FOR DARWIN - ${JDK15_DARWIN_ARM64} FOR DARWIN-ARM64 - ${JDK15_LINUX} FOR LINUX - ${JDK15_WINDOWS} FOR WIN32 - ) - IF(NOT HOST_OS_LINUX AND NOT HOST_OS_WINDOWS AND NOT HOST_OS_DARWIN) - MESSAGE(FATAL_ERROR Unsupported platform for JDK15) - ENDIF() - - IF(OS_DARWIN AND ARCH_ARM64) - DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK15_DARWIN_ARM64}) - ELSEIF(OS_DARWIN) - DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK15_DARWIN}) - ELSEIF(OS_LINUX) - DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK15_LINUX}) - ELSEIF(OS_WINDOWS) - DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK15_WINDOWS}) - ENDIF() + DECLARE_EXTERNAL_HOST_RESOURCES_BUNDLE( + JDK_DEFAULT + ${JDK15_DARWIN} FOR DARWIN + ${JDK15_DARWIN_ARM64} FOR DARWIN-ARM64 + ${JDK15_LINUX} FOR LINUX + ${JDK15_WINDOWS} FOR WIN32 + ) + IF(NOT HOST_OS_LINUX AND NOT HOST_OS_WINDOWS AND NOT HOST_OS_DARWIN) + MESSAGE(FATAL_ERROR Unsupported platform for JDK15) + ENDIF() ELSEIF(JDK_VERSION == "14") - DECLARE_EXTERNAL_HOST_RESOURCES_BUNDLE( - JDK - ${JDK14_DARWIN} FOR DARWIN - ${JDK14_LINUX} FOR LINUX - ${JDK14_WINDOWS} FOR WIN32 - ) - IF(NOT HOST_OS_LINUX AND NOT HOST_OS_WINDOWS AND NOT HOST_OS_DARWIN) - MESSAGE(FATAL_ERROR Unsupported platform for JDK14) - ENDIF() - - IF(OS_DARWIN) - DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK14_DARWIN}) - ELSEIF(OS_LINUX) - DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK14_LINUX}) - ELSEIF(OS_WINDOWS) - DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK14_WINDOWS}) - ENDIF() + DECLARE_EXTERNAL_HOST_RESOURCES_BUNDLE( + JDK_DEFAULT + ${JDK14_DARWIN} FOR DARWIN + ${JDK14_LINUX} FOR LINUX + ${JDK14_WINDOWS} FOR WIN32 + ) + IF(NOT HOST_OS_LINUX AND NOT HOST_OS_WINDOWS AND NOT HOST_OS_DARWIN) + MESSAGE(FATAL_ERROR Unsupported platform for JDK14) + ENDIF() ELSEIF(JDK_VERSION == "13") - DECLARE_EXTERNAL_HOST_RESOURCES_BUNDLE( - JDK - ${JDK13_DARWIN} FOR DARWIN - ${JDK13_LINUX} FOR LINUX - ${JDK13_WINDOWS} FOR WIN32 - ) - IF(NOT HOST_OS_LINUX AND NOT HOST_OS_WINDOWS AND NOT HOST_OS_DARWIN) - MESSAGE(FATAL_ERROR Unsupported platform for JDK13) - ENDIF() + DECLARE_EXTERNAL_HOST_RESOURCES_BUNDLE( + JDK_DEFAULT + ${JDK13_DARWIN} FOR DARWIN + ${JDK13_LINUX} FOR LINUX + ${JDK13_WINDOWS} FOR WIN32 + ) + IF(NOT HOST_OS_LINUX AND NOT HOST_OS_WINDOWS AND NOT HOST_OS_DARWIN) + MESSAGE(FATAL_ERROR Unsupported platform for JDK13) + ENDIF() +ELSEIF(JDK_VERSION == "12") + DECLARE_EXTERNAL_HOST_RESOURCES_BUNDLE( + JDK_DEFAULT + ${JDK12_DARWIN} FOR DARWIN + ${JDK12_LINUX} FOR LINUX + ${JDK12_WINDOWS} FOR WIN32 + ) + IF(NOT HOST_OS_LINUX AND NOT HOST_OS_WINDOWS AND NOT HOST_OS_DARWIN) + MESSAGE(FATAL_ERROR Unsupported platform for JDK12) + ENDIF() +ELSEIF(JDK_VERSION == "11") + DECLARE_EXTERNAL_HOST_RESOURCES_BUNDLE( + JDK_DEFAULT + ${JDK11_DARWIN} FOR DARWIN + ${JDK11_DARWIN_ARM64} FOR DARWIN-ARM64 + ${JDK11_LINUX} FOR LINUX + ${JDK11_WINDOWS} FOR WIN32 + ) + IF(NOT HOST_OS_LINUX AND NOT HOST_OS_WINDOWS AND NOT HOST_OS_DARWIN) + MESSAGE(FATAL_ERROR Unsupported platform for JDK11) + ENDIF() +ELSEIF(JDK_VERSION == "10") + DECLARE_EXTERNAL_HOST_RESOURCES_BUNDLE( + JDK_DEFAULT + ${JDK10_DARWIN} FOR DARWIN + ${JDK10_LINUX} FOR LINUX + ${JDK10_WINDOWS} FOR WIN32 + ) +ELSEIF(JDK_VERSION == "8") + DECLARE_EXTERNAL_HOST_RESOURCES_BUNDLE( + JDK_DEFAULT + ${JDK8_DARWIN_ARM64} FOR DARWIN-ARM64 + ${JDK8_DARWIN} FOR DARWIN + ${JDK8_LINUX} FOR LINUX + ${JDK8_WINDOWS} FOR WIN32 + ) + IF(NOT HOST_OS_LINUX AND NOT HOST_OS_WINDOWS AND NOT HOST_OS_DARWIN) + MESSAGE(FATAL_ERROR Unsupported platform for JDK8) + ENDIF() +ELSE() + MESSAGE(FATAL_ERROR Unsupported JDK version) +ENDIF() + +IF(USE_SYSTEM_JDK) + MESSAGE(WARNING System JDK $USE_SYSTEM_JDK will be used) +ELSEIF(JDK_VERSION == "17") + DECLARE_EXTERNAL_HOST_RESOURCES_BUNDLE( + JDK + ${JDK17_DARWIN} FOR DARWIN + ${JDK17_DARWIN_ARM64} FOR DARWIN-ARM64 + ${JDK17_LINUX} FOR LINUX + ${JDK17_WINDOWS} FOR WIN32 + ) + IF(NOT HOST_OS_LINUX AND NOT HOST_OS_WINDOWS AND NOT HOST_OS_DARWIN) + MESSAGE(FATAL_ERROR Unsupported platform for JDK17) + ENDIF() + + IF(OS_DARWIN AND ARCH_ARM64) + DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK17_DARWIN_ARM64}) + ELSEIF(OS_DARWIN) + DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK17_DARWIN}) + ELSEIF(OS_LINUX) + DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK17_LINUX}) + ELSEIF(OS_WINDOWS) + DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK17_WINDOWS}) + ENDIF() +ELSEIF(JDK_VERSION == "16") + DECLARE_EXTERNAL_HOST_RESOURCES_BUNDLE( + JDK + ${JDK16_DARWIN} FOR DARWIN + ${JDK16_DARWIN_ARM64} FOR DARWIN-ARM64 + ${JDK16_LINUX} FOR LINUX + ${JDK16_WINDOWS} FOR WIN32 + ) + IF(NOT HOST_OS_LINUX AND NOT HOST_OS_WINDOWS AND NOT HOST_OS_DARWIN) + MESSAGE(FATAL_ERROR Unsupported platform for JDK16) + ENDIF() + + IF(OS_DARWIN AND ARCH_ARM64) + DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK16_DARWIN_ARM64}) + ELSEIF(OS_DARWIN) + DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK16_DARWIN}) + ELSEIF(OS_LINUX) + DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK16_LINUX}) + ELSEIF(OS_WINDOWS) + DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK16_WINDOWS}) + ENDIF() +ELSEIF(JDK_VERSION == "15") + DECLARE_EXTERNAL_HOST_RESOURCES_BUNDLE( + JDK + ${JDK15_DARWIN} FOR DARWIN + ${JDK15_DARWIN_ARM64} FOR DARWIN-ARM64 + ${JDK15_LINUX} FOR LINUX + ${JDK15_WINDOWS} FOR WIN32 + ) + IF(NOT HOST_OS_LINUX AND NOT HOST_OS_WINDOWS AND NOT HOST_OS_DARWIN) + MESSAGE(FATAL_ERROR Unsupported platform for JDK15) + ENDIF() + + IF(OS_DARWIN AND ARCH_ARM64) + DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK15_DARWIN_ARM64}) + ELSEIF(OS_DARWIN) + DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK15_DARWIN}) + ELSEIF(OS_LINUX) + DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK15_LINUX}) + ELSEIF(OS_WINDOWS) + DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK15_WINDOWS}) + ENDIF() +ELSEIF(JDK_VERSION == "14") + DECLARE_EXTERNAL_HOST_RESOURCES_BUNDLE( + JDK + ${JDK14_DARWIN} FOR DARWIN + ${JDK14_LINUX} FOR LINUX + ${JDK14_WINDOWS} FOR WIN32 + ) + IF(NOT HOST_OS_LINUX AND NOT HOST_OS_WINDOWS AND NOT HOST_OS_DARWIN) + MESSAGE(FATAL_ERROR Unsupported platform for JDK14) + ENDIF() + + IF(OS_DARWIN) + DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK14_DARWIN}) + ELSEIF(OS_LINUX) + DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK14_LINUX}) + ELSEIF(OS_WINDOWS) + DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK14_WINDOWS}) + ENDIF() +ELSEIF(JDK_VERSION == "13") + DECLARE_EXTERNAL_HOST_RESOURCES_BUNDLE( + JDK + ${JDK13_DARWIN} FOR DARWIN + ${JDK13_LINUX} FOR LINUX + ${JDK13_WINDOWS} FOR WIN32 + ) + IF(NOT HOST_OS_LINUX AND NOT HOST_OS_WINDOWS AND NOT HOST_OS_DARWIN) + MESSAGE(FATAL_ERROR Unsupported platform for JDK13) + ENDIF() IF(SANITIZER_TYPE == "address") - IF(HOST_OS_LINUX) - DECLARE_EXTERNAL_RESOURCE(JDK_FOR_TESTS ${JDK13_LINUX_ASAN}) - ELSE() - MESSAGE(FATAL_ERROR Unsupported platform for JDK13 with asan) - ENDIF() - ENDIF() - - IF(OS_DARWIN) - DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK13_DARWIN}) - ELSEIF(OS_LINUX) - DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK13_LINUX}) - ELSEIF(OS_WINDOWS) - DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK13_WINDOWS}) - ENDIF() + IF(HOST_OS_LINUX) + DECLARE_EXTERNAL_RESOURCE(JDK_FOR_TESTS ${JDK13_LINUX_ASAN}) + ELSE() + MESSAGE(FATAL_ERROR Unsupported platform for JDK13 with asan) + ENDIF() + ENDIF() + + IF(OS_DARWIN) + DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK13_DARWIN}) + ELSEIF(OS_LINUX) + DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK13_LINUX}) + ELSEIF(OS_WINDOWS) + DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK13_WINDOWS}) + ENDIF() ELSEIF(JDK_VERSION == "12") - DECLARE_EXTERNAL_HOST_RESOURCES_BUNDLE( - JDK - ${JDK12_DARWIN} FOR DARWIN - ${JDK12_LINUX} FOR LINUX - ${JDK12_WINDOWS} FOR WIN32 - ) - IF(NOT HOST_OS_LINUX AND NOT HOST_OS_WINDOWS AND NOT HOST_OS_DARWIN) - MESSAGE(FATAL_ERROR Unsupported platform for JDK12) - ENDIF() - - IF(OS_DARWIN) - DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK12_DARWIN}) - ELSEIF(OS_LINUX) - DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK12_LINUX}) - ELSEIF(OS_WINDOWS) - DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK12_WINDOWS}) - ENDIF() + DECLARE_EXTERNAL_HOST_RESOURCES_BUNDLE( + JDK + ${JDK12_DARWIN} FOR DARWIN + ${JDK12_LINUX} FOR LINUX + ${JDK12_WINDOWS} FOR WIN32 + ) + IF(NOT HOST_OS_LINUX AND NOT HOST_OS_WINDOWS AND NOT HOST_OS_DARWIN) + MESSAGE(FATAL_ERROR Unsupported platform for JDK12) + ENDIF() + + IF(OS_DARWIN) + DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK12_DARWIN}) + ELSEIF(OS_LINUX) + DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK12_LINUX}) + ELSEIF(OS_WINDOWS) + DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK12_WINDOWS}) + ENDIF() ELSEIF(JDK_VERSION == "11") - DECLARE_EXTERNAL_HOST_RESOURCES_BUNDLE( - JDK - ${JDK11_DARWIN} FOR DARWIN - ${JDK11_DARWIN_ARM64} FOR DARWIN-ARM64 - ${JDK11_LINUX} FOR LINUX - ${JDK11_WINDOWS} FOR WIN32 - ) - IF(NOT HOST_OS_LINUX AND NOT HOST_OS_WINDOWS AND NOT HOST_OS_DARWIN) - MESSAGE(FATAL_ERROR Unsupported platform for JDK11) - ENDIF() + DECLARE_EXTERNAL_HOST_RESOURCES_BUNDLE( + JDK + ${JDK11_DARWIN} FOR DARWIN + ${JDK11_DARWIN_ARM64} FOR DARWIN-ARM64 + ${JDK11_LINUX} FOR LINUX + ${JDK11_WINDOWS} FOR WIN32 + ) + IF(NOT HOST_OS_LINUX AND NOT HOST_OS_WINDOWS AND NOT HOST_OS_DARWIN) + MESSAGE(FATAL_ERROR Unsupported platform for JDK11) + ENDIF() IF(SANITIZER_TYPE == "address") - IF(HOST_OS_LINUX) - DECLARE_EXTERNAL_RESOURCE(JDK_FOR_TESTS ${JDK11_LINUX_ASAN}) - ELSE() - MESSAGE(FATAL_ERROR Unsupported platform for JDK11 with asan) - ENDIF() - ENDIF() - - IF(OS_DARWIN AND ARCH_ARM64) - DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK11_DARWIN_ARM64}) - ELSEIF(OS_DARWIN) - DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK11_DARWIN}) - ELSEIF(OS_LINUX) - DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK11_LINUX}) - ELSEIF(OS_WINDOWS) - DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK11_WINDOWS}) - ENDIF() + IF(HOST_OS_LINUX) + DECLARE_EXTERNAL_RESOURCE(JDK_FOR_TESTS ${JDK11_LINUX_ASAN}) + ELSE() + MESSAGE(FATAL_ERROR Unsupported platform for JDK11 with asan) + ENDIF() + ENDIF() + + IF(OS_DARWIN AND ARCH_ARM64) + DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK11_DARWIN_ARM64}) + ELSEIF(OS_DARWIN) + DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK11_DARWIN}) + ELSEIF(OS_LINUX) + DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK11_LINUX}) + ELSEIF(OS_WINDOWS) + DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK11_WINDOWS}) + ENDIF() ELSEIF(JDK_VERSION == "10") - DECLARE_EXTERNAL_HOST_RESOURCES_BUNDLE( - JDK - ${JDK10_DARWIN} FOR DARWIN - ${JDK10_LINUX} FOR LINUX - ${JDK10_WINDOWS} FOR WIN32 - ) - IF(NOT HOST_OS_LINUX AND NOT HOST_OS_WINDOWS AND NOT HOST_OS_DARWIN) - MESSAGE(FATAL_ERROR Unsupported platform for JDK10) - ENDIF() - - IF(OS_DARWIN) - DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK10_DARWIN}) - ELSEIF(OS_LINUX) - DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK10_LINUX}) - ELSEIF(OS_WINDOWS) - DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK10_WINDOWS}) - ENDIF() + DECLARE_EXTERNAL_HOST_RESOURCES_BUNDLE( + JDK + ${JDK10_DARWIN} FOR DARWIN + ${JDK10_LINUX} FOR LINUX + ${JDK10_WINDOWS} FOR WIN32 + ) + IF(NOT HOST_OS_LINUX AND NOT HOST_OS_WINDOWS AND NOT HOST_OS_DARWIN) + MESSAGE(FATAL_ERROR Unsupported platform for JDK10) + ENDIF() + + IF(OS_DARWIN) + DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK10_DARWIN}) + ELSEIF(OS_LINUX) + DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK10_LINUX}) + ELSEIF(OS_WINDOWS) + DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK10_WINDOWS}) + ENDIF() ELSEIF(JDK_VERSION == "8") - DECLARE_EXTERNAL_HOST_RESOURCES_BUNDLE( - JDK - ${JDK8_DARWIN_ARM64} FOR DARWIN-ARM64 - ${JDK8_DARWIN} FOR DARWIN - ${JDK8_LINUX} FOR LINUX - ${JDK8_WINDOWS} FOR WIN32 - ) - IF(NOT HOST_OS_LINUX AND NOT HOST_OS_WINDOWS AND NOT HOST_OS_DARWIN) - MESSAGE(FATAL_ERROR Unsupported platform for JDK8) - ENDIF() - - IF(OS_DARWIN AND ARCH_ARM64) - DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK8_DARWIN_ARM64}) - ELSEIF(OS_DARWIN) - DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK8_DARWIN}) - ELSEIF(OS_LINUX) - DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK8_LINUX}) - ELSEIF(OS_WINDOWS) - DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK8_WINDOWS}) - ENDIF() -ELSE() - MESSAGE(FATAL_ERROR Unsupported JDK version) -ENDIF() - -END() + DECLARE_EXTERNAL_HOST_RESOURCES_BUNDLE( + JDK + ${JDK8_DARWIN_ARM64} FOR DARWIN-ARM64 + ${JDK8_DARWIN} FOR DARWIN + ${JDK8_LINUX} FOR LINUX + ${JDK8_WINDOWS} FOR WIN32 + ) + IF(NOT HOST_OS_LINUX AND NOT HOST_OS_WINDOWS AND NOT HOST_OS_DARWIN) + MESSAGE(FATAL_ERROR Unsupported platform for JDK8) + ENDIF() + + IF(OS_DARWIN AND ARCH_ARM64) + DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK8_DARWIN_ARM64}) + ELSEIF(OS_DARWIN) + DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK8_DARWIN}) + ELSEIF(OS_LINUX) + DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK8_LINUX}) + ELSEIF(OS_WINDOWS) + DECLARE_EXTERNAL_RESOURCE(WITH_JDK ${JDK8_WINDOWS}) + ENDIF() +ELSE() + MESSAGE(FATAL_ERROR Unsupported JDK version) +ENDIF() + +END() RECURSE( jdk8 @@ -307,5 +307,5 @@ RECURSE( jdk14 jdk15 jdk16 - jdk17 + jdk17 ) diff --git a/build/platform/java/jni/ya.make b/build/platform/java/jni/ya.make index fdee4311c1..9d8dab98b1 100644 --- a/build/platform/java/jni/ya.make +++ b/build/platform/java/jni/ya.make @@ -1,29 +1,29 @@ -LIBRARY() -OWNER(heretic) - +LIBRARY() +OWNER(heretic) + PEERDIR( build/platform/java/jdk ${JDK_RESOURCE_PEERDIR} ) - -IF(OS_DARWIN) - SET(PLATFORM_NAME darwin) -ELSEIF(OS_LINUX) - SET(PLATFORM_NAME linux) -ELSEIF(OS_WINDOWS) - SET(PLATFORM_NAME win32) -ENDIF() - -IF (USE_SYSTEM_JDK) - SET(JDK_ROOT ${USE_SYSTEM_JDK}) -ELSE() + +IF(OS_DARWIN) + SET(PLATFORM_NAME darwin) +ELSEIF(OS_LINUX) + SET(PLATFORM_NAME linux) +ELSEIF(OS_WINDOWS) + SET(PLATFORM_NAME win32) +ENDIF() + +IF (USE_SYSTEM_JDK) + SET(JDK_ROOT ${USE_SYSTEM_JDK}) +ELSE() SET(JDK_ROOT ${JDK_DEFAULT_RESOURCE_GLOBAL}) -ENDIF() -IF (PLATFORM_NAME) - CFLAGS(GLOBAL -I${JDK_ROOT}/include) - CFLAGS(GLOBAL -I${JDK_ROOT}/include/${PLATFORM_NAME}) -ELSE() - MESSAGE(FATAL_ERROR Unsupported platform for jni) -ENDIF() - -END() +ENDIF() +IF (PLATFORM_NAME) + CFLAGS(GLOBAL -I${JDK_ROOT}/include) + CFLAGS(GLOBAL -I${JDK_ROOT}/include/${PLATFORM_NAME}) +ELSE() + MESSAGE(FATAL_ERROR Unsupported platform for jni) +ENDIF() + +END() diff --git a/build/platform/java/jstyle_lib/ya.make b/build/platform/java/jstyle_lib/ya.make index 52ac900a81..fa55e63071 100644 --- a/build/platform/java/jstyle_lib/ya.make +++ b/build/platform/java/jstyle_lib/ya.make @@ -1,11 +1,11 @@ -RESOURCES_LIBRARY() +RESOURCES_LIBRARY() -OWNER(heretic) +OWNER(heretic) IF (USE_SYSTEM_JSTYLE_LIB) - MESSAGE(WARNING System java codestyle library $USE_SYSTEM_JSTYLE_LIB will be used) -ELSE() - DECLARE_EXTERNAL_RESOURCE(JSTYLE_LIB sbr:2525400095) -ENDIF() + MESSAGE(WARNING System java codestyle library $USE_SYSTEM_JSTYLE_LIB will be used) +ELSE() + DECLARE_EXTERNAL_RESOURCE(JSTYLE_LIB sbr:2525400095) +ENDIF() -END() +END() diff --git a/build/platform/java/kotlin/ya.make b/build/platform/java/kotlin/ya.make index 4b3b794d29..b4c0b0b83a 100644 --- a/build/platform/java/kotlin/ya.make +++ b/build/platform/java/kotlin/ya.make @@ -1,12 +1,12 @@ -# how to build: https://a.yandex-team.ru/arc/trunk/arcadia/devtools/kotlin_compiler_uberjar -RESOURCES_LIBRARY() -OWNER(heretic) -IF(USE_SYSTEM_KOTLIN_COMPILER) - MESSAGE(WARNING System kotlin $USE_SYSTEM_KOTLIN_COMPILER will be used) +# how to build: https://a.yandex-team.ru/arc/trunk/arcadia/devtools/kotlin_compiler_uberjar +RESOURCES_LIBRARY() +OWNER(heretic) +IF(USE_SYSTEM_KOTLIN_COMPILER) + MESSAGE(WARNING System kotlin $USE_SYSTEM_KOTLIN_COMPILER will be used) ELSEIF(KOTLIN_VERSION == "1.3.72") - DECLARE_EXTERNAL_RESOURCE(KOTLIN_COMPILER sbr:1463870128) + DECLARE_EXTERNAL_RESOURCE(KOTLIN_COMPILER sbr:1463870128) ELSEIF(KOTLIN_VERSION == "1.4.0") - DECLARE_EXTERNAL_RESOURCE(KOTLIN_COMPILER sbr:1708283452) + DECLARE_EXTERNAL_RESOURCE(KOTLIN_COMPILER sbr:1708283452) ELSEIF(KOTLIN_VERSION == "1.4.10") DECLARE_EXTERNAL_RESOURCE(KOTLIN_COMPILER sbr:1730522145) ELSEIF(KOTLIN_VERSION == "1.4.20") @@ -14,7 +14,7 @@ ELSEIF(KOTLIN_VERSION == "1.4.20") ELSEIF(KOTLIN_VERSION == "1.4.30") DECLARE_EXTERNAL_RESOURCE(KOTLIN_COMPILER sbr:1974389794) ELSEIF(KOTLIN_VERSION == "1.5.10") - DECLARE_EXTERNAL_RESOURCE(KOTLIN_COMPILER sbr:2183338194) + DECLARE_EXTERNAL_RESOURCE(KOTLIN_COMPILER sbr:2183338194) ELSEIF(KOTLIN_VERSION == "1.5.20") DECLARE_EXTERNAL_RESOURCE(KOTLIN_COMPILER sbr:2257446523) ELSEIF(KOTLIN_VERSION == "1.5.21") @@ -24,8 +24,8 @@ ELSEIF(KOTLIN_VERSION == "1.5.30") ELSEIF(KOTLIN_VERSION == "1.5.31") DECLARE_EXTERNAL_RESOURCE(KOTLIN_COMPILER sbr:2444978303) ELSEIF(KOTLIN_VERSION == "1.6.10") - DECLARE_EXTERNAL_RESOURCE(KOTLIN_COMPILER sbr:2754878302) -ELSE() - MESSAGE(FATAL_ERROR Unexpected KOTLIN_VERSION ${KOTLIN_VERSION}) -ENDIF() -END() + DECLARE_EXTERNAL_RESOURCE(KOTLIN_COMPILER sbr:2754878302) +ELSE() + MESSAGE(FATAL_ERROR Unexpected KOTLIN_VERSION ${KOTLIN_VERSION}) +ENDIF() +END() diff --git a/build/platform/java/scriptgen/ya.make b/build/platform/java/scriptgen/ya.make index ebbf19e3b7..d296097f52 100644 --- a/build/platform/java/scriptgen/ya.make +++ b/build/platform/java/scriptgen/ya.make @@ -10,13 +10,13 @@ DECLARE_EXTERNAL_HOST_RESOURCES_BUNDLE( SCRIPTGEN ${SCRIPTGEN_LINUX} FOR LINUX ${SCRIPTGEN_DARWIN} FOR DARWIN - ${SCRIPTGEN_DARWIN_ARM64} FOR DARWIN-ARM64 + ${SCRIPTGEN_DARWIN_ARM64} FOR DARWIN-ARM64 ${SCRIPTGEN_WIN32} FOR WIN32 ) -IF(OS_DARWIN AND ARCH_ARM64) - DECLARE_EXTERNAL_RESOURCE(WITH_SCRIPTGEN ${SCRIPTGEN_DARWIN_ARM64}) -ELSEIF(OS_DARWIN AND ARCH_X86_64) +IF(OS_DARWIN AND ARCH_ARM64) + DECLARE_EXTERNAL_RESOURCE(WITH_SCRIPTGEN ${SCRIPTGEN_DARWIN_ARM64}) +ELSEIF(OS_DARWIN AND ARCH_X86_64) DECLARE_EXTERNAL_RESOURCE(WITH_SCRIPTGEN ${SCRIPTGEN_DARWIN}) ELSEIF(OS_LINUX) DECLARE_EXTERNAL_RESOURCE(WITH_SCRIPTGEN ${SCRIPTGEN_LINUX}) @@ -24,4 +24,4 @@ ELSEIF(OS_WINDOWS) DECLARE_EXTERNAL_RESOURCE(WITH_SCRIPTGEN ${SCRIPTGEN_WIN32}) ENDIF() -END() +END() diff --git a/build/platform/java/uberjar/uberjar17/ya.make b/build/platform/java/uberjar/uberjar17/ya.make index 21aeffce19..bc9bf4411b 100644 --- a/build/platform/java/uberjar/uberjar17/ya.make +++ b/build/platform/java/uberjar/uberjar17/ya.make @@ -1,6 +1,6 @@ -RESOURCES_LIBRARY() -OWNER(heretic) -# same resource as 16 -DECLARE_EXTERNAL_RESOURCE(UBERJAR17 sbr:2199772343) - -END() +RESOURCES_LIBRARY() +OWNER(heretic) +# same resource as 16 +DECLARE_EXTERNAL_RESOURCE(UBERJAR17 sbr:2199772343) + +END() diff --git a/build/platform/java/uberjar/ya.make b/build/platform/java/uberjar/ya.make index f280dd7bcf..29c934d5b1 100644 --- a/build/platform/java/uberjar/ya.make +++ b/build/platform/java/uberjar/ya.make @@ -1,31 +1,31 @@ -RESOURCES_LIBRARY() -OWNER(heretic) +RESOURCES_LIBRARY() +OWNER(heretic) -IF(USE_SYSTEM_UBERJAR) - MESSAGE(WARNING System uberjar $USE_SYSTEM_UBERJAR will be used) -ELSEIF(JDK_VERSION == "17") - DECLARE_EXTERNAL_RESOURCE(UBERJAR sbr:2199772343) -ELSEIF(JDK_VERSION == "16") - DECLARE_EXTERNAL_RESOURCE(UBERJAR sbr:2199772343) -ELSEIF(JDK_VERSION == "15") - DECLARE_EXTERNAL_RESOURCE(UBERJAR sbr:2074702997) +IF(USE_SYSTEM_UBERJAR) + MESSAGE(WARNING System uberjar $USE_SYSTEM_UBERJAR will be used) +ELSEIF(JDK_VERSION == "17") + DECLARE_EXTERNAL_RESOURCE(UBERJAR sbr:2199772343) +ELSEIF(JDK_VERSION == "16") + DECLARE_EXTERNAL_RESOURCE(UBERJAR sbr:2199772343) +ELSEIF(JDK_VERSION == "15") + DECLARE_EXTERNAL_RESOURCE(UBERJAR sbr:2074702997) ELSEIF(JDK_VERSION == "14") - DECLARE_EXTERNAL_RESOURCE(UBERJAR sbr:1407329657) + DECLARE_EXTERNAL_RESOURCE(UBERJAR sbr:1407329657) ELSEIF(JDK_VERSION == "13") - DECLARE_EXTERNAL_RESOURCE(UBERJAR sbr:1165818979) + DECLARE_EXTERNAL_RESOURCE(UBERJAR sbr:1165818979) ELSEIF(JDK_VERSION == "12") - DECLARE_EXTERNAL_RESOURCE(UBERJAR sbr:962498940) + DECLARE_EXTERNAL_RESOURCE(UBERJAR sbr:962498940) ELSEIF(JDK_VERSION == "11") - DECLARE_EXTERNAL_RESOURCE(UBERJAR sbr:962498940) + DECLARE_EXTERNAL_RESOURCE(UBERJAR sbr:962498940) ELSEIF(JDK_VERSION == "10" OR JDK10) # !JDK10 flag is deprecated, this check should be removed later - DECLARE_EXTERNAL_RESOURCE(UBERJAR sbr:720309903) + DECLARE_EXTERNAL_RESOURCE(UBERJAR sbr:720309903) ELSEIF(JDK_VERSION == "8") - DECLARE_EXTERNAL_RESOURCE(UBERJAR sbr:962511340) -ELSE() - MESSAGE(FATAL_ERROR Uberjar is not supported for selected JDK version) -ENDIF() + DECLARE_EXTERNAL_RESOURCE(UBERJAR sbr:962511340) +ELSE() + MESSAGE(FATAL_ERROR Uberjar is not supported for selected JDK version) +ENDIF() -END() +END() RECURSE( uberjar8 diff --git a/build/platform/java/ya.make b/build/platform/java/ya.make index b2f1d09237..7194053b98 100644 --- a/build/platform/java/ya.make +++ b/build/platform/java/ya.make @@ -1,10 +1,10 @@ -RECURSE( - jdk - jni - uberjar - error_prone - jacoco-agent - kotlin - jstyle_lib +RECURSE( + jdk + jni + uberjar + error_prone + jacoco-agent + kotlin + jstyle_lib scriptgen -) +) diff --git a/build/platform/linux_sdk/ya.make b/build/platform/linux_sdk/ya.make index 228d5f9e4a..add74eee9e 100644 --- a/build/platform/linux_sdk/ya.make +++ b/build/platform/linux_sdk/ya.make @@ -20,7 +20,7 @@ ELSEIF (ARCH_X86_64) ELSEIF (OS_SDK == "ubuntu-18") DECLARE_EXTERNAL_RESOURCE(OS_SDK_ROOT sbr:617908641) ELSEIF (OS_SDK == "ubuntu-20") - DECLARE_EXTERNAL_RESOURCE(OS_SDK_ROOT sbr:2635714620) + DECLARE_EXTERNAL_RESOURCE(OS_SDK_ROOT sbr:2635714620) ELSE() MESSAGE(FATAL_ERROR "There is no ${OS_SDK} SDK for x86-64") ENDIF() diff --git a/build/platform/macos_sdk/ya.make b/build/platform/macos_sdk/ya.make index 41ca8261ab..6fb8dc54c0 100644 --- a/build/platform/macos_sdk/ya.make +++ b/build/platform/macos_sdk/ya.make @@ -2,19 +2,19 @@ RESOURCES_LIBRARY() OWNER(somov) -# macOS 11.1 Big Sur SDK / Xcode 12.4 (12D4e) -DECLARE_EXTERNAL_RESOURCE(MACOS_SDK sbr:2088833948) +# macOS 11.1 Big Sur SDK / Xcode 12.4 (12D4e) +DECLARE_EXTERNAL_RESOURCE(MACOS_SDK sbr:2088833948) -IF (USE_STL_SYSTEM) - SET(__XCODE_RESOURCE_NAME CPP_XCODE_TOOLCHAIN_ROOT) - SET(__XCODE_TOOLCHAIN_VERSION ${CPP_XCODE_TOOLCHAIN_VERSION}) - INCLUDE(${ARCADIA_ROOT}/build/platform/xcode/ya.make.inc) - CFLAGS( +IF (USE_STL_SYSTEM) + SET(__XCODE_RESOURCE_NAME CPP_XCODE_TOOLCHAIN_ROOT) + SET(__XCODE_TOOLCHAIN_VERSION ${CPP_XCODE_TOOLCHAIN_VERSION}) + INCLUDE(${ARCADIA_ROOT}/build/platform/xcode/ya.make.inc) + CFLAGS( GLOBAL -F$MACOS_SDK_RESOURCE_GLOBAL/System/Library/Frameworks - ) + ) LDFLAGS( -F$MACOS_SDK_RESOURCE_GLOBAL/System/Library/Frameworks ) -ENDIF() - +ENDIF() + END() diff --git a/build/platform/macos_system_stl/ya.make b/build/platform/macos_system_stl/ya.make index be97b8f165..4631bbc57a 100644 --- a/build/platform/macos_system_stl/ya.make +++ b/build/platform/macos_system_stl/ya.make @@ -1,15 +1,15 @@ -RESOURCES_LIBRARY() - -OWNER(g:cpp-contrib) - -# Taken from the default toolchain of the Xcode 12.5.1 -DECLARE_EXTERNAL_RESOURCE(MACOS_SYSTEM_STL sbr:2561940097) - -# xcode toolchain allready contains system headers -IF (USE_STL_SYSTEM AND NOT XCODE) - CFLAGS( - GLOBAL -I${MACOS_SYSTEM_STL_RESOURCE_GLOBAL}/include - ) -ENDIF() - -END() +RESOURCES_LIBRARY() + +OWNER(g:cpp-contrib) + +# Taken from the default toolchain of the Xcode 12.5.1 +DECLARE_EXTERNAL_RESOURCE(MACOS_SYSTEM_STL sbr:2561940097) + +# xcode toolchain allready contains system headers +IF (USE_STL_SYSTEM AND NOT XCODE) + CFLAGS( + GLOBAL -I${MACOS_SYSTEM_STL_RESOURCE_GLOBAL}/include + ) +ENDIF() + +END() diff --git a/build/platform/python/python310/ya.make b/build/platform/python/python310/ya.make index 1c5fee1308..fea3696e6d 100644 --- a/build/platform/python/python310/ya.make +++ b/build/platform/python/python310/ya.make @@ -1,12 +1,12 @@ -RESOURCES_LIBRARY() - -OWNER( - g:contrib - g:yatool -) - -INCLUDE(${ARCADIA_ROOT}/build/platform/python/resources.inc) - +RESOURCES_LIBRARY() + +OWNER( + g:contrib + g:yatool +) + +INCLUDE(${ARCADIA_ROOT}/build/platform/python/resources.inc) + DECLARE_EXTERNAL_HOST_RESOURCES_BUNDLE( PYTHON310 ${PYTHON310_DARWIN} FOR DARWIN @@ -15,16 +15,16 @@ DECLARE_EXTERNAL_HOST_RESOURCES_BUNDLE( ${PYTHON310_WINDOWS} FOR WIN32 ) -IF (OS_LINUX) - DECLARE_EXTERNAL_RESOURCE(EXTERNAL_PYTHON310 ${PYTHON310_LINUX}) -ELSEIF (OS_DARWIN) +IF (OS_LINUX) + DECLARE_EXTERNAL_RESOURCE(EXTERNAL_PYTHON310 ${PYTHON310_LINUX}) +ELSEIF (OS_DARWIN) IF (ARCH_ARM64) DECLARE_EXTERNAL_RESOURCE(EXTERNAL_PYTHON310 ${PYTHON310_DARWIN_ARM64}) ELSEIF(ARCH_X86_64) DECLARE_EXTERNAL_RESOURCE(EXTERNAL_PYTHON310 ${PYTHON310_DARWIN}) ENDIF() -ELSEIF (OS_WINDOWS) - DECLARE_EXTERNAL_RESOURCE(EXTERNAL_PYTHON310 ${PYTHON310_WINDOWS}) -ENDIF() - -END() +ELSEIF (OS_WINDOWS) + DECLARE_EXTERNAL_RESOURCE(EXTERNAL_PYTHON310 ${PYTHON310_WINDOWS}) +ENDIF() + +END() diff --git a/build/platform/python/resources.inc b/build/platform/python/resources.inc index 35e568ab82..a730a5039b 100644 --- a/build/platform/python/resources.inc +++ b/build/platform/python/resources.inc @@ -5,7 +5,7 @@ SET(PYTHON36_LINUX sbr:2569180519) # Different from others(compatible with runn SET(PYTHON37_LINUX sbr:616675620) SET(PYTHON38_LINUX sbr:1211259884) SET(PYTHON39_LINUX sbr:2019057022) -SET(PYTHON310_LINUX sbr:2505611617) +SET(PYTHON310_LINUX sbr:2505611617) SET(PYTHON27_LINUX_ARM64 sbr:2145006545) @@ -16,7 +16,7 @@ SET(PYTHON36_DARWIN sbr:426412777) SET(PYTHON37_DARWIN sbr:616740054) SET(PYTHON38_DARWIN sbr:1211286783) SET(PYTHON39_DARWIN sbr:2046345566) -SET(PYTHON310_DARWIN sbr:2505677448) +SET(PYTHON310_DARWIN sbr:2505677448) SET(PYTHON38_DARWIN_ARM64 sbr:2577173323) SET(PYTHON39_DARWIN_ARM64 sbr:2533263197) @@ -29,4 +29,4 @@ SET(PYTHON36_WINDOWS sbr:410161131) SET(PYTHON37_WINDOWS sbr:629042628) SET(PYTHON38_WINDOWS sbr:1211466284) SET(PYTHON39_WINDOWS sbr:2018972280) -SET(PYTHON310_WINDOWS sbr:2506068927) +SET(PYTHON310_WINDOWS sbr:2506068927) diff --git a/build/platform/python/tests/ya.make b/build/platform/python/tests/ya.make index 8fd335ebd1..0d8965240e 100644 --- a/build/platform/python/tests/ya.make +++ b/build/platform/python/tests/ya.make @@ -30,7 +30,7 @@ PEERDIR( build/platform/python/python37 build/platform/python/python38 build/platform/python/python39 - build/platform/python/python310 + build/platform/python/python310 ) END() diff --git a/build/platform/python/ya.make b/build/platform/python/ya.make index f5954e343a..247e65f4c9 100644 --- a/build/platform/python/ya.make +++ b/build/platform/python/ya.make @@ -30,8 +30,8 @@ IF (USE_SYSTEM_PYTHON) DECLARE_EXTERNAL_RESOURCE(EXTERNAL_PYTHON ${PYTHON38_LINUX}) ELSEIF (_SYSTEM_PYTHON39) DECLARE_EXTERNAL_RESOURCE(EXTERNAL_PYTHON ${PYTHON39_LINUX}) - ELSEIF (_SYSTEM_PYTHON310) - DECLARE_EXTERNAL_RESOURCE(EXTERNAL_PYTHON ${PYTHON310_LINUX}) + ELSEIF (_SYSTEM_PYTHON310) + DECLARE_EXTERNAL_RESOURCE(EXTERNAL_PYTHON ${PYTHON310_LINUX}) ELSE() ENABLE(PYTHON_NOT_FOUND) ENDIF() @@ -71,8 +71,8 @@ IF (USE_SYSTEM_PYTHON) DECLARE_EXTERNAL_RESOURCE(EXTERNAL_PYTHON ${PYTHON38_DARWIN}) ELSEIF (_SYSTEM_PYTHON39) DECLARE_EXTERNAL_RESOURCE(EXTERNAL_PYTHON ${PYTHON39_DARWIN}) - ELSEIF (_SYSTEM_PYTHON310) - DECLARE_EXTERNAL_RESOURCE(EXTERNAL_PYTHON ${PYTHON310_DARWIN}) + ELSEIF (_SYSTEM_PYTHON310) + DECLARE_EXTERNAL_RESOURCE(EXTERNAL_PYTHON ${PYTHON310_DARWIN}) ELSE() ENABLE(PYTHON_NOT_FOUND) ENDIF() @@ -107,8 +107,8 @@ IF (USE_SYSTEM_PYTHON) DECLARE_EXTERNAL_RESOURCE(EXTERNAL_PYTHON ${PYTHON38_WINDOWS}) ELSEIF (_SYSTEM_PYTHON39) DECLARE_EXTERNAL_RESOURCE(EXTERNAL_PYTHON ${PYTHON39_WINDOWS}) - ELSEIF (_SYSTEM_PYTHON310) - DECLARE_EXTERNAL_RESOURCE(EXTERNAL_PYTHON ${PYTHON310_WINDOWS}) + ELSEIF (_SYSTEM_PYTHON310) + DECLARE_EXTERNAL_RESOURCE(EXTERNAL_PYTHON ${PYTHON310_WINDOWS}) ELSE() ENABLE(PYTHON_NOT_FOUND) ENDIF() diff --git a/build/platform/qt/ya.make b/build/platform/qt/ya.make index 0110995dba..750e319b84 100644 --- a/build/platform/qt/ya.make +++ b/build/platform/qt/ya.make @@ -1,22 +1,22 @@ -RESOURCES_LIBRARY() - -OWNER(g:contrib heretic) - -IF (NOT QT_REQUIRED) - MESSAGE(FATAL_ERROR "No QT Toolkit for your build") -ELSE() - IF (OS_LINUX) +RESOURCES_LIBRARY() + +OWNER(g:contrib heretic) + +IF (NOT QT_REQUIRED) + MESSAGE(FATAL_ERROR "No QT Toolkit for your build") +ELSE() + IF (OS_LINUX) # Qt version 5.15.2 for linux DECLARE_EXTERNAL_RESOURCE(QT sbr:2773138831) - ELSEIF (OS_DARWIN) + ELSEIF (OS_DARWIN) CFLAGS(GLOBAL "-F$QT_RESOURCE_GLOBAL/lib") LDFLAGS("-F$QT_RESOURCE_GLOBAL/lib") # Qt version 5.15.2 for darwin DECLARE_EXTERNAL_RESOURCE(QT sbr:2773128565) - ELSE() - ENABLE(QT_NOT_FOUND) - ENDIF() - + ELSE() + ENABLE(QT_NOT_FOUND) + ENDIF() + IF (HOST_OS_LINUX) DECLARE_EXTERNAL_RESOURCE(HOST_QT sbr:2773138831) ELSEIF (HOST_OS_DARWIN) @@ -25,12 +25,12 @@ ELSE() ENABLE(QT_NOT_FOUND) ENDIF() - IF (QT_NOT_FOUND) - MESSAGE(FATAL_ERROR "No QT Toolkit for the selected platform") - ELSE() + IF (QT_NOT_FOUND) + MESSAGE(FATAL_ERROR "No QT Toolkit for the selected platform") + ELSE() CFLAGS(GLOBAL "-isystem$QT_RESOURCE_GLOBAL/include") - LDFLAGS("-L$QT_RESOURCE_GLOBAL/lib") - ENDIF() -ENDIF() - -END() + LDFLAGS("-L$QT_RESOURCE_GLOBAL/lib") + ENDIF() +ENDIF() + +END() diff --git a/build/platform/test_tool/host.ya.make.inc b/build/platform/test_tool/host.ya.make.inc index de1e63ba4f..c25f2b1326 100644 --- a/build/platform/test_tool/host.ya.make.inc +++ b/build/platform/test_tool/host.ya.make.inc @@ -13,4 +13,4 @@ ELSEIF (HOST_OS_LINUX AND HOST_ARCH_X86_64) ELSEIF (HOST_OS_WINDOWS AND HOST_ARCH_X86_64) DECLARE_EXTERNAL_RESOURCE(TEST_TOOL_HOST sbr:2764984404) DECLARE_EXTERNAL_RESOURCE(TEST_TOOL3_HOST sbr:2764989842) -ENDIF() +ENDIF() diff --git a/build/platform/test_tool/ya.make b/build/platform/test_tool/ya.make index c678eb83d8..fd97d51ed8 100644 --- a/build/platform/test_tool/ya.make +++ b/build/platform/test_tool/ya.make @@ -1,20 +1,20 @@ -RESOURCES_LIBRARY() +RESOURCES_LIBRARY() OWNER( g:yatest heretic ) - -IF (TEST_TOOL_HOST_LOCAL) - MESSAGE(WARNING Host test tool $TEST_TOOL_HOST_LOCAL will be used) -ENDIF() -INCLUDE(host.ya.make.inc) -IF (TEST_TOOL_TARGET_LOCAL) - MESSAGE(WARNING Target test tool $TEST_TOOL_TARGET_LOCAL will be used) -ENDIF() -IF (OS_IOS AND NOT BUILD_IOS_APP) - DECLARE_EXTERNAL_RESOURCE(TEST_TOOL_TARGET sbr:707351393) - INCLUDE(${ARCADIA_ROOT}/build/platform/xcode/tools/ya.make.inc) -ENDIF() - -END() - + +IF (TEST_TOOL_HOST_LOCAL) + MESSAGE(WARNING Host test tool $TEST_TOOL_HOST_LOCAL will be used) +ENDIF() +INCLUDE(host.ya.make.inc) +IF (TEST_TOOL_TARGET_LOCAL) + MESSAGE(WARNING Target test tool $TEST_TOOL_TARGET_LOCAL will be used) +ENDIF() +IF (OS_IOS AND NOT BUILD_IOS_APP) + DECLARE_EXTERNAL_RESOURCE(TEST_TOOL_TARGET sbr:707351393) + INCLUDE(${ARCADIA_ROOT}/build/platform/xcode/tools/ya.make.inc) +ENDIF() + +END() + diff --git a/build/platform/wine/ya.make b/build/platform/wine/ya.make index 226fd6c358..7d74cb279b 100644 --- a/build/platform/wine/ya.make +++ b/build/platform/wine/ya.make @@ -2,9 +2,9 @@ RESOURCES_LIBRARY() OWNER(neksard) -# do not forget to update resources in ya.conf.json +# do not forget to update resources in ya.conf.json DECLARE_EXTERNAL_RESOURCE(WINE_TOOL sbr:1093314933) -DECLARE_EXTERNAL_RESOURCE(WINE32_TOOL sbr:2264052281) +DECLARE_EXTERNAL_RESOURCE(WINE32_TOOL sbr:2264052281) SET(NEED_PLATFORM_PEERDIRS no) END() diff --git a/build/platform/xcode/swift/ya.make b/build/platform/xcode/swift/ya.make index 5222da3d9e..3d50525acb 100644 --- a/build/platform/xcode/swift/ya.make +++ b/build/platform/xcode/swift/ya.make @@ -1,12 +1,12 @@ -RESOURCES_LIBRARY() -OWNER(heretic) - -IF (HOST_OS_DARWIN) - SET(__XCODE_RESOURCE_NAME SWIFT_XCODE_TOOLCHAIN_ROOT) - SET(__XCODE_TOOLCHAIN_VERSION ${SWIFT_XCODE_TOOLCHAIN_VERSION}) - INCLUDE(${ARCADIA_ROOT}/build/platform/xcode/ya.make.inc) -ELSE() - MESSAGE(FATAL_ERROR Unsupported host platform for swift compiler) -ENDIF() - -END() +RESOURCES_LIBRARY() +OWNER(heretic) + +IF (HOST_OS_DARWIN) + SET(__XCODE_RESOURCE_NAME SWIFT_XCODE_TOOLCHAIN_ROOT) + SET(__XCODE_TOOLCHAIN_VERSION ${SWIFT_XCODE_TOOLCHAIN_VERSION}) + INCLUDE(${ARCADIA_ROOT}/build/platform/xcode/ya.make.inc) +ELSE() + MESSAGE(FATAL_ERROR Unsupported host platform for swift compiler) +ENDIF() + +END() diff --git a/build/platform/xcode/tools/ya.make b/build/platform/xcode/tools/ya.make index 699fc4f123..4c4e135179 100644 --- a/build/platform/xcode/tools/ya.make +++ b/build/platform/xcode/tools/ya.make @@ -1,4 +1,4 @@ -RESOURCES_LIBRARY() -OWNER(heretic) -INCLUDE(ya.make.inc) -END() +RESOURCES_LIBRARY() +OWNER(heretic) +INCLUDE(ya.make.inc) +END() diff --git a/build/platform/xcode/tools/ya.make.inc b/build/platform/xcode/tools/ya.make.inc index d8fa3a9c92..a154917e33 100644 --- a/build/platform/xcode/tools/ya.make.inc +++ b/build/platform/xcode/tools/ya.make.inc @@ -1,9 +1,9 @@ -IF (NOT HOST_OS_DARWIN) - MESSAGE(FATAL_ERROR Unsupported host platform for Xcode tools) -ENDIF() +IF (NOT HOST_OS_DARWIN) + MESSAGE(FATAL_ERROR Unsupported host platform for Xcode tools) +ENDIF() IF (LOCAL_XCODE_TOOLS) # Local XCode installation is used instead. ELSEIF (XCODE_TOOLS_VERSION == "10.1") - DECLARE_EXTERNAL_RESOURCE(XCODE_TOOLS_ROOT sbr:799017771) -ELSE() - MESSAGE(FATAL_ERROR Unsupported Xcode tools version: $XCODE_TOOLS_VERSION) -ENDIF() + DECLARE_EXTERNAL_RESOURCE(XCODE_TOOLS_ROOT sbr:799017771) +ELSE() + MESSAGE(FATAL_ERROR Unsupported Xcode tools version: $XCODE_TOOLS_VERSION) +ENDIF() diff --git a/build/platform/xcode/ya.make.inc b/build/platform/xcode/ya.make.inc index 3387a3cc70..3b24e18448 100644 --- a/build/platform/xcode/ya.make.inc +++ b/build/platform/xcode/ya.make.inc @@ -1,16 +1,16 @@ -IF (NOT __XCODE_RESOURCE_NAME) - MESSAGE(FATAL_ERROR "Unspecified __XCODE_RESOURCE_NAME variable") -ENDIF() -IF (NOT __XCODE_TOOLCHAIN_VERSION) - MESSAGE(FATAL_ERROR "Unspecified Xcode toolchain version for" $XCODE_RESOURCE_NAME) +IF (NOT __XCODE_RESOURCE_NAME) + MESSAGE(FATAL_ERROR "Unspecified __XCODE_RESOURCE_NAME variable") +ENDIF() +IF (NOT __XCODE_TOOLCHAIN_VERSION) + MESSAGE(FATAL_ERROR "Unspecified Xcode toolchain version for" $XCODE_RESOURCE_NAME) ELSEIF (__XCODE_TOOLCHAIN_VERSION == "10.2.1") - DECLARE_EXTERNAL_RESOURCE(${__XCODE_RESOURCE_NAME} sbr:971159365) + DECLARE_EXTERNAL_RESOURCE(${__XCODE_RESOURCE_NAME} sbr:971159365) ELSEIF (__XCODE_TOOLCHAIN_VERSION == "9.2") - DECLARE_EXTERNAL_RESOURCE(${__XCODE_RESOURCE_NAME} sbr:498971125) + DECLARE_EXTERNAL_RESOURCE(${__XCODE_RESOURCE_NAME} sbr:498971125) ELSEIF (__XCODE_TOOLCHAIN_VERSION == "8.3.3") - DECLARE_EXTERNAL_RESOURCE(${__XCODE_RESOURCE_NAME} sbr:701155000) + DECLARE_EXTERNAL_RESOURCE(${__XCODE_RESOURCE_NAME} sbr:701155000) ELSEIF (__XCODE_TOOLCHAIN_VERSION == "8.2.1") - DECLARE_EXTERNAL_RESOURCE(${__XCODE_RESOURCE_NAME} sbr:500014407) -ELSE() - MESSAGE(FATAL_ERROR "Unsupported Xcode toolchain version" $__XCODE_TOOLCHAIN_VERSION "for" $XCODE_RESOURCE_NAME) -ENDIF() + DECLARE_EXTERNAL_RESOURCE(${__XCODE_RESOURCE_NAME} sbr:500014407) +ELSE() + MESSAGE(FATAL_ERROR "Unsupported Xcode toolchain version" $__XCODE_TOOLCHAIN_VERSION "for" $XCODE_RESOURCE_NAME) +ENDIF() diff --git a/build/plugins/bundle.py b/build/plugins/bundle.py index 23a41353c6..0bec8254ee 100644 --- a/build/plugins/bundle.py +++ b/build/plugins/bundle.py @@ -10,13 +10,13 @@ def onbundle(unit, *args): It makes little sense to specify BUNDLE on non-final targets and so this may stop working without prior notice. Bundle on multimodule will select final target among multimodule variants and will fail if there are none or more than one. """ - i = 0 - while i < len(args): - if i + 2 < len(args) and args[i + 1] == "NAME": - target, name = args[i], args[i + 2] - i += 3 - else: - target, name = args[i], os.path.basename(args[i]) - i += 1 - + i = 0 + while i < len(args): + if i + 2 < len(args) and args[i + 1] == "NAME": + target, name = args[i], args[i + 2] + i += 3 + else: + target, name = args[i], os.path.basename(args[i]) + i += 1 + unit.on_bundle_target([target, name]) diff --git a/build/plugins/credits.py b/build/plugins/credits.py index 0a100e87c6..0ce1659326 100644 --- a/build/plugins/credits.py +++ b/build/plugins/credits.py @@ -1,22 +1,22 @@ -from _common import rootrel_arc_src - - -def oncredits_disclaimer(unit, *args): - if unit.get('WITH_CREDITS'): - unit.message(["warn", "CREDITS WARNING: {}".format(' '.join(args))]) - -def oncheck_contrib_credits(unit, *args): - module_path = rootrel_arc_src(unit.path(), unit) - excepts = set() - if 'EXCEPT' in args: - args = list(args) - except_pos = args.index('EXCEPT') - excepts = set(args[except_pos + 1:]) - args = args[:except_pos] - for arg in args: - if module_path.startswith(arg) and not unit.get('CREDITS_TEXTS_FILE') and not unit.get('NO_CREDITS_TEXTS_FILE'): - for ex in excepts: - if module_path.startswith(ex): - break - else: - unit.message(["error", "License texts not found. See https://st.yandex-team.ru/DTCC-324"]) +from _common import rootrel_arc_src + + +def oncredits_disclaimer(unit, *args): + if unit.get('WITH_CREDITS'): + unit.message(["warn", "CREDITS WARNING: {}".format(' '.join(args))]) + +def oncheck_contrib_credits(unit, *args): + module_path = rootrel_arc_src(unit.path(), unit) + excepts = set() + if 'EXCEPT' in args: + args = list(args) + except_pos = args.index('EXCEPT') + excepts = set(args[except_pos + 1:]) + args = args[:except_pos] + for arg in args: + if module_path.startswith(arg) and not unit.get('CREDITS_TEXTS_FILE') and not unit.get('NO_CREDITS_TEXTS_FILE'): + for ex in excepts: + if module_path.startswith(ex): + break + else: + unit.message(["error", "License texts not found. See https://st.yandex-team.ru/DTCC-324"]) diff --git a/build/plugins/ios_app_settings.py b/build/plugins/ios_app_settings.py index bdb6658563..60ec0b4b52 100644 --- a/build/plugins/ios_app_settings.py +++ b/build/plugins/ios_app_settings.py @@ -1,19 +1,19 @@ -import _common as common -import ymake -import os - -def onios_app_settings(unit, *args): - tail, kv = common.sort_by_keywords( - {'OS_VERSION': 1, 'DEVICES': -1}, - args - ) - if tail: - ymake.report_configure_error('Bad IOS_COMMON_SETTINGS usage - unknown data: ' + str(tail)) - if kv.get('OS_VERSION', []): - unit.onios_app_common_flags(['--minimum-deployment-target', kv.get('OS_VERSION', [])[0]]) - unit.onios_app_assets_flags(['--filter-for-device-os-version', kv.get('OS_VERSION', [])[0]]) - devices_flags = [] - for device in kv.get('DEVICES', []): - devices_flags += ['--target-device', device] - if devices_flags: - unit.onios_app_common_flags(devices_flags) +import _common as common +import ymake +import os + +def onios_app_settings(unit, *args): + tail, kv = common.sort_by_keywords( + {'OS_VERSION': 1, 'DEVICES': -1}, + args + ) + if tail: + ymake.report_configure_error('Bad IOS_COMMON_SETTINGS usage - unknown data: ' + str(tail)) + if kv.get('OS_VERSION', []): + unit.onios_app_common_flags(['--minimum-deployment-target', kv.get('OS_VERSION', [])[0]]) + unit.onios_app_assets_flags(['--filter-for-device-os-version', kv.get('OS_VERSION', [])[0]]) + devices_flags = [] + for device in kv.get('DEVICES', []): + devices_flags += ['--target-device', device] + if devices_flags: + unit.onios_app_common_flags(devices_flags) diff --git a/build/plugins/ios_assets.py b/build/plugins/ios_assets.py index 77cdcb2177..5f0ccb9467 100644 --- a/build/plugins/ios_assets.py +++ b/build/plugins/ios_assets.py @@ -1,30 +1,30 @@ -import _common as common -import ymake -import os - - -def onios_assets(unit, *args): - _, kv = common.sort_by_keywords( - {'ROOT': 1, 'CONTENTS': -1, 'FLAGS': -1}, - args - ) - if not kv.get('ROOT', []) and kv.get('CONTENTS', []): - ymake.report_configure_error('Please specify ROOT directory for assets') - origin_root = kv.get('ROOT')[0] - destination_root = os.path.normpath(os.path.join('$BINDIR', os.path.basename(origin_root))) - rel_list = [] - for cont in kv.get('CONTENTS', []): - rel = os.path.relpath(cont, origin_root) - if rel.startswith('..'): - ymake.report_configure_error('{} is not subpath of {}'.format(cont, origin_root)) - rel_list.append(rel) - if not rel_list: - return - results_list = [os.path.join('$B', unit.path()[3:], os.path.basename(origin_root), i) for i in rel_list] - if len(kv.get('CONTENTS', [])) != len(results_list): - ymake.report_configure_error('IOS_ASSETTS content length is not equals results') - for s, d in zip(kv.get('CONTENTS', []), results_list): - unit.oncopy_file([s, d]) - if kv.get('FLAGS', []): - unit.onios_app_assets_flags(kv.get('FLAGS', [])) - unit.on_ios_assets([destination_root] + results_list) +import _common as common +import ymake +import os + + +def onios_assets(unit, *args): + _, kv = common.sort_by_keywords( + {'ROOT': 1, 'CONTENTS': -1, 'FLAGS': -1}, + args + ) + if not kv.get('ROOT', []) and kv.get('CONTENTS', []): + ymake.report_configure_error('Please specify ROOT directory for assets') + origin_root = kv.get('ROOT')[0] + destination_root = os.path.normpath(os.path.join('$BINDIR', os.path.basename(origin_root))) + rel_list = [] + for cont in kv.get('CONTENTS', []): + rel = os.path.relpath(cont, origin_root) + if rel.startswith('..'): + ymake.report_configure_error('{} is not subpath of {}'.format(cont, origin_root)) + rel_list.append(rel) + if not rel_list: + return + results_list = [os.path.join('$B', unit.path()[3:], os.path.basename(origin_root), i) for i in rel_list] + if len(kv.get('CONTENTS', [])) != len(results_list): + ymake.report_configure_error('IOS_ASSETTS content length is not equals results') + for s, d in zip(kv.get('CONTENTS', []), results_list): + unit.oncopy_file([s, d]) + if kv.get('FLAGS', []): + unit.onios_app_assets_flags(kv.get('FLAGS', [])) + unit.on_ios_assets([destination_root] + results_list) diff --git a/build/plugins/java.py b/build/plugins/java.py index c7699ed0d5..16fc126734 100644 --- a/build/plugins/java.py +++ b/build/plugins/java.py @@ -1,7 +1,7 @@ import _common as common -import ymake +import ymake import json -import os +import os import base64 @@ -32,13 +32,13 @@ def extract_macro_calls2(unit, macro_value_name): def on_run_jbuild_program(unit, *args): - args = list(args) + args = list(args) """ Custom code generation @link: https://wiki.yandex-team.ru/yatool/java/#kodogeneracijarunjavaprogram """ - flat, kv = common.sort_by_keywords({'IN': -1, 'IN_DIR': -1, 'OUT': -1, 'OUT_DIR': -1, 'CWD': 1, 'CLASSPATH': -1, 'CP_USE_COMMAND_FILE': 1, 'ADD_SRCS_TO_CLASSPATH': 0}, args) + flat, kv = common.sort_by_keywords({'IN': -1, 'IN_DIR': -1, 'OUT': -1, 'OUT_DIR': -1, 'CWD': 1, 'CLASSPATH': -1, 'CP_USE_COMMAND_FILE': 1, 'ADD_SRCS_TO_CLASSPATH': 0}, args) depends = kv.get('CLASSPATH', []) + kv.get('JAR', []) fake_out = None if depends: @@ -46,9 +46,9 @@ def on_run_jbuild_program(unit, *args): fake_out = "fake.out.{}".format(hash(tuple(args))) unit.on_run_java(['TOOL'] + depends + ["OUT", fake_out]) - if not kv.get('CP_USE_COMMAND_FILE'): - args += ['CP_USE_COMMAND_FILE', unit.get(['JAVA_PROGRAM_CP_USE_COMMAND_FILE']) or 'yes'] - + if not kv.get('CP_USE_COMMAND_FILE'): + args += ['CP_USE_COMMAND_FILE', unit.get(['JAVA_PROGRAM_CP_USE_COMMAND_FILE']) or 'yes'] + if fake_out is not None: args += ['FAKE_OUT', fake_out] @@ -57,23 +57,23 @@ def on_run_jbuild_program(unit, *args): unit.set(['RUN_JAVA_PROGRAM_VALUE', new_val]) -def ongenerate_script(unit, *args): +def ongenerate_script(unit, *args): """ heretic@ promised to make tutorial here Don't forget Feel free to remind """ - flat, kv = common.sort_by_keywords( - {'OUT': -1, 'TEMPLATE': -1, 'CUSTOM_PROPERTY': -1}, - args - ) - if len(kv.get('TEMPLATE', [])) > len(kv.get('OUT', [])): - ymake.report_configure_error('To many arguments for TEMPLATE parameter') - prev = unit.get(['GENERATE_SCRIPT_VALUE']) or '' - new_val = (prev + ' ' + base64.b64encode(json.dumps(list(args), encoding='utf-8'))).strip() - unit.set(['GENERATE_SCRIPT_VALUE', new_val]) - - + flat, kv = common.sort_by_keywords( + {'OUT': -1, 'TEMPLATE': -1, 'CUSTOM_PROPERTY': -1}, + args + ) + if len(kv.get('TEMPLATE', [])) > len(kv.get('OUT', [])): + ymake.report_configure_error('To many arguments for TEMPLATE parameter') + prev = unit.get(['GENERATE_SCRIPT_VALUE']) or '' + new_val = (prev + ' ' + base64.b64encode(json.dumps(list(args), encoding='utf-8'))).strip() + unit.set(['GENERATE_SCRIPT_VALUE', new_val]) + + def onjava_module(unit, *args): args_delim = unit.get('ARGS_DELIM') idea_only = True if 'IDEA_ONLY' in args else False @@ -101,9 +101,9 @@ def onjava_module(unit, *args): 'EXTERNAL_JAR': extract_macro_calls(unit, 'EXTERNAL_JAR_VALUE', args_delim), 'RUN_JAVA_PROGRAM': extract_macro_calls2(unit, 'RUN_JAVA_PROGRAM_VALUE'), 'RUN_JAVA_PROGRAM_MANAGED': '${RUN_JAVA_PROGRAM_MANAGED}', - 'MAVEN_GROUP_ID': extract_macro_calls(unit, 'MAVEN_GROUP_ID_VALUE', args_delim), - 'JAR_INCLUDE_FILTER': extract_macro_calls(unit, 'JAR_INCLUDE_FILTER_VALUE', args_delim), - 'JAR_EXCLUDE_FILTER': extract_macro_calls(unit, 'JAR_EXCLUDE_FILTER_VALUE', args_delim), + 'MAVEN_GROUP_ID': extract_macro_calls(unit, 'MAVEN_GROUP_ID_VALUE', args_delim), + 'JAR_INCLUDE_FILTER': extract_macro_calls(unit, 'JAR_INCLUDE_FILTER_VALUE', args_delim), + 'JAR_EXCLUDE_FILTER': extract_macro_calls(unit, 'JAR_EXCLUDE_FILTER_VALUE', args_delim), # TODO remove when java test dart is in prod 'UNITTEST_DIR': unit.get('UNITTEST_DIR'), @@ -116,70 +116,70 @@ def onjava_module(unit, *args): 'TIMEOUT': extract_macro_calls(unit, 'TEST_TIMEOUT', args_delim), 'TAG': extract_macro_calls(unit, 'TEST_TAGS_VALUE', args_delim), 'SIZE': extract_macro_calls(unit, 'TEST_SIZE_NAME', args_delim), - 'DEPENDS': extract_macro_calls(unit, 'TEST_DEPENDS_VALUE', args_delim), - 'IDEA_EXCLUDE': extract_macro_calls(unit, 'IDEA_EXCLUDE_DIRS_VALUE', args_delim), - 'IDEA_RESOURCE': extract_macro_calls(unit, 'IDEA_RESOURCE_DIRS_VALUE', args_delim), - 'IDEA_MODULE_NAME': extract_macro_calls(unit, 'IDEA_MODULE_NAME_VALUE', args_delim), - 'GENERATE_SCRIPT': extract_macro_calls2(unit, 'GENERATE_SCRIPT_VALUE'), - 'FAKEID': extract_macro_calls(unit, 'FAKEID', args_delim), - 'TEST_DATA': extract_macro_calls(unit, 'TEST_DATA_VALUE', args_delim), - 'JAVA_FORBIDDEN_LIBRARIES': extract_macro_calls(unit, 'JAVA_FORBIDDEN_LIBRARIES_VALUE', args_delim), - 'JDK_RESOURCE': 'JDK' + (unit.get('JDK_VERSION') or '_DEFAULT') + 'DEPENDS': extract_macro_calls(unit, 'TEST_DEPENDS_VALUE', args_delim), + 'IDEA_EXCLUDE': extract_macro_calls(unit, 'IDEA_EXCLUDE_DIRS_VALUE', args_delim), + 'IDEA_RESOURCE': extract_macro_calls(unit, 'IDEA_RESOURCE_DIRS_VALUE', args_delim), + 'IDEA_MODULE_NAME': extract_macro_calls(unit, 'IDEA_MODULE_NAME_VALUE', args_delim), + 'GENERATE_SCRIPT': extract_macro_calls2(unit, 'GENERATE_SCRIPT_VALUE'), + 'FAKEID': extract_macro_calls(unit, 'FAKEID', args_delim), + 'TEST_DATA': extract_macro_calls(unit, 'TEST_DATA_VALUE', args_delim), + 'JAVA_FORBIDDEN_LIBRARIES': extract_macro_calls(unit, 'JAVA_FORBIDDEN_LIBRARIES_VALUE', args_delim), + 'JDK_RESOURCE': 'JDK' + (unit.get('JDK_VERSION') or '_DEFAULT') } - if unit.get('ENABLE_PREVIEW_VALUE') == 'yes' and unit.get('JDK_VERSION') in ('15', '16', '17'): - data['ENABLE_PREVIEW'] = extract_macro_calls(unit, 'ENABLE_PREVIEW_VALUE', args_delim) - - if unit.get('SAVE_JAVAC_GENERATED_SRCS_DIR') and unit.get('SAVE_JAVAC_GENERATED_SRCS_TAR'): - data['SAVE_JAVAC_GENERATED_SRCS_DIR'] = extract_macro_calls(unit, 'SAVE_JAVAC_GENERATED_SRCS_DIR', args_delim) - data['SAVE_JAVAC_GENERATED_SRCS_TAR'] = extract_macro_calls(unit, 'SAVE_JAVAC_GENERATED_SRCS_TAR', args_delim) - - if unit.get('JAVA_ADD_DLLS_VALUE') == 'yes': - data['ADD_DLLS_FROM_DEPENDS'] = extract_macro_calls(unit, 'JAVA_ADD_DLLS_VALUE', args_delim) - - if unit.get('ERROR_PRONE_VALUE') == 'yes': - data['ERROR_PRONE'] = extract_macro_calls(unit, 'ERROR_PRONE_VALUE', args_delim) - - if unit.get('WITH_KOTLIN_VALUE') == 'yes': - data['WITH_KOTLIN'] = extract_macro_calls(unit, 'WITH_KOTLIN_VALUE', args_delim) - if unit.get('KOTLIN_JVM_TARGET'): - data['KOTLIN_JVM_TARGET'] = extract_macro_calls(unit, 'KOTLIN_JVM_TARGET', args_delim) + if unit.get('ENABLE_PREVIEW_VALUE') == 'yes' and unit.get('JDK_VERSION') in ('15', '16', '17'): + data['ENABLE_PREVIEW'] = extract_macro_calls(unit, 'ENABLE_PREVIEW_VALUE', args_delim) + + if unit.get('SAVE_JAVAC_GENERATED_SRCS_DIR') and unit.get('SAVE_JAVAC_GENERATED_SRCS_TAR'): + data['SAVE_JAVAC_GENERATED_SRCS_DIR'] = extract_macro_calls(unit, 'SAVE_JAVAC_GENERATED_SRCS_DIR', args_delim) + data['SAVE_JAVAC_GENERATED_SRCS_TAR'] = extract_macro_calls(unit, 'SAVE_JAVAC_GENERATED_SRCS_TAR', args_delim) + + if unit.get('JAVA_ADD_DLLS_VALUE') == 'yes': + data['ADD_DLLS_FROM_DEPENDS'] = extract_macro_calls(unit, 'JAVA_ADD_DLLS_VALUE', args_delim) + + if unit.get('ERROR_PRONE_VALUE') == 'yes': + data['ERROR_PRONE'] = extract_macro_calls(unit, 'ERROR_PRONE_VALUE', args_delim) + + if unit.get('WITH_KOTLIN_VALUE') == 'yes': + data['WITH_KOTLIN'] = extract_macro_calls(unit, 'WITH_KOTLIN_VALUE', args_delim) + if unit.get('KOTLIN_JVM_TARGET'): + data['KOTLIN_JVM_TARGET'] = extract_macro_calls(unit, 'KOTLIN_JVM_TARGET', args_delim) if unit.get('KOTLINC_FLAGS_VALUE'): data['KOTLINC_FLAGS'] = extract_macro_calls(unit, 'KOTLINC_FLAGS_VALUE', args_delim) - if unit.get('KOTLINC_OPTS_VALUE'): - data['KOTLINC_OPTS'] = extract_macro_calls(unit, 'KOTLINC_OPTS_VALUE', args_delim) - - if unit.get('DIRECT_DEPS_ONLY_VALUE') == 'yes': - data['DIRECT_DEPS_ONLY'] = extract_macro_calls(unit, 'DIRECT_DEPS_ONLY_VALUE', args_delim) - - if unit.get('JAVA_EXTERNAL_DEPENDENCIES_VALUE'): - valid = [] - for dep in sum(extract_macro_calls(unit, 'JAVA_EXTERNAL_DEPENDENCIES_VALUE', args_delim), []): - if os.path.normpath(dep).startswith('..'): - ymake.report_configure_error('{}: {} - relative paths in JAVA_EXTERNAL_DEPENDENCIES is not allowed'.format(unit.path(), dep)) - elif os.path.isabs(dep): - ymake.report_configure_error('{}: {} absolute paths in JAVA_EXTERNAL_DEPENDENCIES is not allowed'.format(unit.path(), dep)) - else: - valid.append(dep) - if valid: - data['EXTERNAL_DEPENDENCIES'] = [valid] - - if unit.get('MAKE_UBERJAR_VALUE') == 'yes': - if unit.get('MODULE_TYPE') != 'JAVA_PROGRAM': - ymake.report_configure_error('{}: UBERJAR supported only for JAVA_PROGRAM module type'.format(unit.path())) - data['UBERJAR'] = extract_macro_calls(unit, 'MAKE_UBERJAR_VALUE', args_delim) - data['UBERJAR_PREFIX'] = extract_macro_calls(unit, 'UBERJAR_PREFIX_VALUE', args_delim) - data['UBERJAR_HIDE_EXCLUDE'] = extract_macro_calls(unit, 'UBERJAR_HIDE_EXCLUDE_VALUE', args_delim) - data['UBERJAR_PATH_EXCLUDE'] = extract_macro_calls(unit, 'UBERJAR_PATH_EXCLUDE_VALUE', args_delim) - data['UBERJAR_MANIFEST_TRANSFORMER_MAIN'] = extract_macro_calls(unit, 'UBERJAR_MANIFEST_TRANSFORMER_MAIN_VALUE', args_delim) - data['UBERJAR_MANIFEST_TRANSFORMER_ATTRIBUTE'] = extract_macro_calls(unit, 'UBERJAR_MANIFEST_TRANSFORMER_ATTRIBUTE_VALUE', args_delim) - data['UBERJAR_APPENDING_TRANSFORMER'] = extract_macro_calls(unit, 'UBERJAR_APPENDING_TRANSFORMER_VALUE', args_delim) - data['UBERJAR_SERVICES_RESOURCE_TRANSFORMER'] = extract_macro_calls(unit, 'UBERJAR_SERVICES_RESOURCE_TRANSFORMER_VALUE', args_delim) - - if unit.get('WITH_JDK_VALUE') == 'yes': - if unit.get('MODULE_TYPE') != 'JAVA_PROGRAM': - ymake.report_configure_error('{}: JDK export supported only for JAVA_PROGRAM module type'.format(unit.path())) - data['WITH_JDK'] = extract_macro_calls(unit, 'WITH_JDK_VALUE', args_delim) - + if unit.get('KOTLINC_OPTS_VALUE'): + data['KOTLINC_OPTS'] = extract_macro_calls(unit, 'KOTLINC_OPTS_VALUE', args_delim) + + if unit.get('DIRECT_DEPS_ONLY_VALUE') == 'yes': + data['DIRECT_DEPS_ONLY'] = extract_macro_calls(unit, 'DIRECT_DEPS_ONLY_VALUE', args_delim) + + if unit.get('JAVA_EXTERNAL_DEPENDENCIES_VALUE'): + valid = [] + for dep in sum(extract_macro_calls(unit, 'JAVA_EXTERNAL_DEPENDENCIES_VALUE', args_delim), []): + if os.path.normpath(dep).startswith('..'): + ymake.report_configure_error('{}: {} - relative paths in JAVA_EXTERNAL_DEPENDENCIES is not allowed'.format(unit.path(), dep)) + elif os.path.isabs(dep): + ymake.report_configure_error('{}: {} absolute paths in JAVA_EXTERNAL_DEPENDENCIES is not allowed'.format(unit.path(), dep)) + else: + valid.append(dep) + if valid: + data['EXTERNAL_DEPENDENCIES'] = [valid] + + if unit.get('MAKE_UBERJAR_VALUE') == 'yes': + if unit.get('MODULE_TYPE') != 'JAVA_PROGRAM': + ymake.report_configure_error('{}: UBERJAR supported only for JAVA_PROGRAM module type'.format(unit.path())) + data['UBERJAR'] = extract_macro_calls(unit, 'MAKE_UBERJAR_VALUE', args_delim) + data['UBERJAR_PREFIX'] = extract_macro_calls(unit, 'UBERJAR_PREFIX_VALUE', args_delim) + data['UBERJAR_HIDE_EXCLUDE'] = extract_macro_calls(unit, 'UBERJAR_HIDE_EXCLUDE_VALUE', args_delim) + data['UBERJAR_PATH_EXCLUDE'] = extract_macro_calls(unit, 'UBERJAR_PATH_EXCLUDE_VALUE', args_delim) + data['UBERJAR_MANIFEST_TRANSFORMER_MAIN'] = extract_macro_calls(unit, 'UBERJAR_MANIFEST_TRANSFORMER_MAIN_VALUE', args_delim) + data['UBERJAR_MANIFEST_TRANSFORMER_ATTRIBUTE'] = extract_macro_calls(unit, 'UBERJAR_MANIFEST_TRANSFORMER_ATTRIBUTE_VALUE', args_delim) + data['UBERJAR_APPENDING_TRANSFORMER'] = extract_macro_calls(unit, 'UBERJAR_APPENDING_TRANSFORMER_VALUE', args_delim) + data['UBERJAR_SERVICES_RESOURCE_TRANSFORMER'] = extract_macro_calls(unit, 'UBERJAR_SERVICES_RESOURCE_TRANSFORMER_VALUE', args_delim) + + if unit.get('WITH_JDK_VALUE') == 'yes': + if unit.get('MODULE_TYPE') != 'JAVA_PROGRAM': + ymake.report_configure_error('{}: JDK export supported only for JAVA_PROGRAM module type'.format(unit.path())) + data['WITH_JDK'] = extract_macro_calls(unit, 'WITH_JDK_VALUE', args_delim) + if not data['EXTERNAL_JAR']: has_processor = extract_macro_calls(unit, 'GENERATE_VCS_JAVA_INFO_NODEP', args_delim) data['EMBED_VCS'] = [[str(has_processor and has_processor[0] and has_processor[0][0])]] @@ -221,8 +221,8 @@ def onjava_module(unit, *args): unit.set_property(['JAVA_DART_DATA', dart]) if not idea_only and unit.get('MODULE_TYPE') in ('JAVA_PROGRAM', 'JAVA_LIBRARY', 'JTEST', 'TESTNG', 'JUNIT5') and not unit.path().startswith('$S/contrib/java'): unit.on_add_classpath_clash_check() - if unit.get('LINT_LEVEL_VALUE') != "none": - unit.onadd_check(['JAVA_STYLE', unit.get('LINT_LEVEL_VALUE')]) + if unit.get('LINT_LEVEL_VALUE') != "none": + unit.onadd_check(['JAVA_STYLE', unit.get('LINT_LEVEL_VALUE')]) def on_add_java_style_checks(unit, *args): @@ -364,11 +364,11 @@ def parse_words(words): def on_ymake_generate_script(unit, *args): for out, tmpl, props in parse_words(list(args)): unit.on_add_gen_java_script([out, tmpl] + list(props)) - -def on_jdk_version_macro_check(unit, *args): - if len(args) != 1: - unit.message(["error", "Invalid syntax. Single argument required."]) - jdk_version = args[0] - availible_versions = ('10', '11', '12', '13', '14', '15', '16', '17',) - if jdk_version not in availible_versions: - unit.message(["error", "Invalid jdk version: {}. {} are availible".format(jdk_version, availible_versions)]) + +def on_jdk_version_macro_check(unit, *args): + if len(args) != 1: + unit.message(["error", "Invalid syntax. Single argument required."]) + jdk_version = args[0] + availible_versions = ('10', '11', '12', '13', '14', '15', '16', '17',) + if jdk_version not in availible_versions: + unit.message(["error", "Invalid jdk version: {}. {} are availible".format(jdk_version, availible_versions)]) diff --git a/build/plugins/pybuild.py b/build/plugins/pybuild.py index 781ee89584..f32a2d39a0 100644 --- a/build/plugins/pybuild.py +++ b/build/plugins/pybuild.py @@ -492,7 +492,7 @@ def onpy_srcs(unit, *args): cpp_runtime_path = 'contrib/libs/protobuf' py_runtime_path = 'contrib/python/protobuf' builtin_proto_path = cpp_runtime_path + '/' + BUILTIN_PROTO - + if protos: if not upath.startswith(py_runtime_path) and not upath.startswith(builtin_proto_path): unit.onpeerdir(py_runtime_path) diff --git a/build/plugins/res.py b/build/plugins/res.py index 8928cc99e8..a937caba81 100644 --- a/build/plugins/res.py +++ b/build/plugins/res.py @@ -1,31 +1,31 @@ from _common import iterpair, listid, pathid, rootrel_arc_src, tobuilddir, filter_out_by_keyword -def split(lst, limit): - # paths are specified with replaceable prefix - # real length is unknown at the moment, that why we use root_lenght - # as a rough estimation - root_lenght = 200 - filepath = None - lenght = 0 - bucket = [] - - for item in lst: - if filepath: - lenght += root_lenght + len(filepath) + len(item) - if lenght > limit and bucket: - yield bucket - bucket = [] - lenght = 0 - - bucket.append(filepath) - bucket.append(item) - filepath = None - else: - filepath = item - - if bucket: - yield bucket +def split(lst, limit): + # paths are specified with replaceable prefix + # real length is unknown at the moment, that why we use root_lenght + # as a rough estimation + root_lenght = 200 + filepath = None + lenght = 0 + bucket = [] + + for item in lst: + if filepath: + lenght += root_lenght + len(filepath) + len(item) + if lenght > limit and bucket: + yield bucket + bucket = [] + lenght = 0 + + bucket.append(filepath) + bucket.append(item) + filepath = None + else: + filepath = item + + if bucket: + yield bucket def remove_prefix(text, prefix): @@ -34,7 +34,7 @@ def remove_prefix(text, prefix): return text -def onfat_resource(unit, *args): +def onfat_resource(unit, *args): unit.onpeerdir(['library/cpp/resource']) # Since the maximum length of lpCommandLine string for CreateProcess is 8kb (windows) characters, diff --git a/build/plugins/rodata.py b/build/plugins/rodata.py index 43f99cd6af..3ecb0f9a83 100644 --- a/build/plugins/rodata.py +++ b/build/plugins/rodata.py @@ -5,119 +5,119 @@ import _common as common import _import_wrapper as iw -class ROData(iw.CustomCommand): - def __init__(self, path, unit): - self._path = path - self._flags = [] - - prefix = unit.get('ASM_PREFIX') - - if prefix: - self._flags += ['--prefix=' + prefix] - - self._pre_include = [] - - flags = unit.get('YASM_FLAGS') - if flags: - self.parse_flags(path, unit, collections.deque(flags.split(' '))) - +class ROData(iw.CustomCommand): + def __init__(self, path, unit): + self._path = path + self._flags = [] + + prefix = unit.get('ASM_PREFIX') + + if prefix: + self._flags += ['--prefix=' + prefix] + + self._pre_include = [] + + flags = unit.get('YASM_FLAGS') + if flags: + self.parse_flags(path, unit, collections.deque(flags.split(' '))) + if unit.enabled('DARWIN') or unit.enabled('IOS'): - self._platform = ['DARWIN', 'UNIX'] - self._fmt = 'macho' + self._platform = ['DARWIN', 'UNIX'] + self._fmt = 'macho' elif unit.enabled('WIN64') or unit.enabled('CYGWIN'): - self._platform = ['WIN64'] - self._fmt = 'win' + self._platform = ['WIN64'] + self._fmt = 'win' elif unit.enabled('WIN32'): - self._platform = ['WIN32'] - self._fmt = 'win' - else: - self._platform = ['UNIX'] - self._fmt = 'elf' - - if 'elf' in self._fmt: - self._flags += ['-g', 'dwarf2'] - + self._platform = ['WIN32'] + self._fmt = 'win' + else: + self._platform = ['UNIX'] + self._fmt = 'elf' + + if 'elf' in self._fmt: + self._flags += ['-g', 'dwarf2'] + self._fmt += unit.get('HARDWARE_ARCH') self._type = unit.get('HARDWARE_TYPE') - + if unit.enabled('DARWIN') or unit.enabled('IOS') or (unit.enabled('WINDOWS') and unit.enabled('ARCH_TYPE_32')): - self._prefix = '_' - else: - self._prefix = '' - - def parse_flags(self, path, unit, flags): - while flags: - flag = flags.popleft() - if flag.startswith('-I'): - raise Exception('Use ADDINCL macro') - - if flag.startswith('-P'): - preinclude = flag[2:] or flags.popleft() - self._pre_include += unit.resolve_include([(get_retargeted(path, unit)), preinclude]) - self._flags += ['-P', preinclude] - continue - - self._flags.append(flag) - - def descr(self): - return 'AS', self._path, 'light-green' - - def flags(self): - return self._flags + self._platform + [self._fmt, self._type] - - def tools(self): - return ['contrib/tools/yasm'] - - def input(self): - return common.make_tuples(self._pre_include + [self._path]) - - def output(self): - return common.make_tuples([common.tobuilddir(common.stripext(self._path)) + '.o']) - + self._prefix = '_' + else: + self._prefix = '' + + def parse_flags(self, path, unit, flags): + while flags: + flag = flags.popleft() + if flag.startswith('-I'): + raise Exception('Use ADDINCL macro') + + if flag.startswith('-P'): + preinclude = flag[2:] or flags.popleft() + self._pre_include += unit.resolve_include([(get_retargeted(path, unit)), preinclude]) + self._flags += ['-P', preinclude] + continue + + self._flags.append(flag) + + def descr(self): + return 'AS', self._path, 'light-green' + + def flags(self): + return self._flags + self._platform + [self._fmt, self._type] + + def tools(self): + return ['contrib/tools/yasm'] + + def input(self): + return common.make_tuples(self._pre_include + [self._path]) + + def output(self): + return common.make_tuples([common.tobuilddir(common.stripext(self._path)) + '.o']) + def requested_vars(self): return [('includes', '_ASM__INCLUDE')] def run(self, extra_args, binary): - in_file = self.resolve_path(common.get(self.input, 0)) - in_file_no_ext = common.stripext(in_file) - file_name = os.path.basename(in_file_no_ext) + in_file = self.resolve_path(common.get(self.input, 0)) + in_file_no_ext = common.stripext(in_file) + file_name = os.path.basename(in_file_no_ext) file_size = os.path.getsize(in_file) - tmp_file = self.resolve_path(common.get(self.output, 0) + '.asm') - + tmp_file = self.resolve_path(common.get(self.output, 0) + '.asm') + parser = argparse.ArgumentParser(prog='rodata.py', add_help=False) parser.add_argument('--includes', help='module\'s addincls', nargs='*', required=False) args = parser.parse_args(extra_args) self._incl_dirs = args.includes - with open(tmp_file, 'w') as f: - f.write('global ' + self._prefix + file_name + '\n') - f.write('global ' + self._prefix + file_name + 'Size' + '\n') + with open(tmp_file, 'w') as f: + f.write('global ' + self._prefix + file_name + '\n') + f.write('global ' + self._prefix + file_name + 'Size' + '\n') f.write('SECTION .rodata ALIGN=16\n') - f.write(self._prefix + file_name + ':\nincbin "' + in_file + '"\n') + f.write(self._prefix + file_name + ':\nincbin "' + in_file + '"\n') f.write('align 4, db 0\n') f.write(self._prefix + file_name + 'Size:\ndd ' + str(file_size) + '\n') - + if self._fmt.startswith('elf'): f.write('size ' + self._prefix + file_name + ' ' + str(file_size) + '\n') f.write('size ' + self._prefix + file_name + 'Size 4\n') - return self.do_run(binary, tmp_file) - - def do_run(self, binary, path): - def plt(): - for x in self._platform: - yield '-D' - yield x - - def incls(): - for x in self._incl_dirs: - yield '-I' + return self.do_run(binary, tmp_file) + + def do_run(self, binary, path): + def plt(): + for x in self._platform: + yield '-D' + yield x + + def incls(): + for x in self._incl_dirs: + yield '-I' yield x - - cmd = [binary, '-f', self._fmt] + list(plt()) + ['-D', '_' + self._type + '_', '-D_YASM_'] + self._flags + list(incls()) + ['-o', common.get(self.output, 0), path] - self.call(cmd) - - + + cmd = [binary, '-f', self._fmt] + list(plt()) + ['-D', '_' + self._type + '_', '-D_YASM_'] + self._flags + list(incls()) + ['-o', common.get(self.output, 0), path] + self.call(cmd) + + class RODataCXX(iw.CustomCommand): def __init__(self, path, unit): self._path = path diff --git a/build/plugins/scarab_cant_clash.py b/build/plugins/scarab_cant_clash.py index 451dccf1f6..77dc303183 100644 --- a/build/plugins/scarab_cant_clash.py +++ b/build/plugins/scarab_cant_clash.py @@ -63,4 +63,4 @@ def onacceleo(unit, *args): if depends: run_java += ['TOOL'] + depends - unit.on_run_java(run_java) + unit.on_run_java(run_java) diff --git a/build/plugins/swig.py b/build/plugins/swig.py index 4af6c9db7e..32a37204a6 100644 --- a/build/plugins/swig.py +++ b/build/plugins/swig.py @@ -24,7 +24,7 @@ class Swig(iw.CustomCommand): relpath = os.path.relpath(os.path.dirname(self._path), unit.path()) - self._swig_lang = unit.get('SWIG_LANG') + self._swig_lang = unit.get('SWIG_LANG') if self._swig_lang != 'jni_java': self._main_out = os.path.join( @@ -56,14 +56,14 @@ class Swig(iw.CustomCommand): if not self._local_swig: unit.onaddincl(incl_dirs) - if self._swig_lang == 'python': + if self._swig_lang == 'python': self._out_name = modname + '.py' self._flags.extend(['-interface', unit.get('MODULE_PREFIX') + modname]) - if self._swig_lang == 'perl': + if self._swig_lang == 'perl': self._out_name = modname + '.pm' self._flags.append('-shadow') - unit.onpeerdir(['build/platform/perl']) + unit.onpeerdir(['build/platform/perl']) if self._swig_lang in ['jni_cpp', 'java']: self._out_header = os.path.splitext(self._main_out)[0] + '.h' @@ -98,7 +98,7 @@ class Swig(iw.CustomCommand): return [ (self._main_out, []), - (common.join_intl_paths(self._bindir, self._out_name), (['noauto', 'add_to_outs'] if self._swig_lang != 'java' else [])), + (common.join_intl_paths(self._bindir, self._out_name), (['noauto', 'add_to_outs'] if self._swig_lang != 'java' else [])), ] + ([(self._out_header, [])] if self._swig_lang == 'java' else []) def output_includes(self): @@ -118,7 +118,7 @@ class Swig(iw.CustomCommand): '-outdir', self.resolve_path(self._bindir) ] + self._incl_flags() + [self.resolve_path(path)]) - def do_run_java(self, binary, path): + def do_run_java(self, binary, path): import tarfile outdir = self.resolve_path(self._bindir) @@ -126,7 +126,7 @@ class Swig(iw.CustomCommand): java_srcs_dir = os.path.join(outdir, self._package.replace('.', '/')) if not os.path.exists(java_srcs_dir): os.makedirs(java_srcs_dir) - + flags = self._incl_flags() src = self.resolve_path(path) with open(src, 'r') as f: diff --git a/build/plugins/ytest.py b/build/plugins/ytest.py index 1e256c7f50..8970837f0f 100644 --- a/build/plugins/ytest.py +++ b/build/plugins/ytest.py @@ -212,10 +212,10 @@ def validate_test(unit, kw): else: try: timeout = int(valid_kw.get('TEST-TIMEOUT', size_timeout[size]) or size_timeout[size]) - script_rel_path = valid_kw.get('SCRIPT-REL-PATH') + script_rel_path = valid_kw.get('SCRIPT-REL-PATH') if timeout < 0: raise Exception("Timeout must be > 0") - if size_timeout[size] < timeout and in_autocheck and script_rel_path != 'java.style': + if size_timeout[size] < timeout and in_autocheck and script_rel_path != 'java.style': suggested_size = None for s, t in size_timeout.items(): if timeout <= t: @@ -433,8 +433,8 @@ def onadd_ytest(unit, *args): elif flat_args[1] == "clang_tidy" and unit.get("TIDY") != "yes": # Graph is not prepared return - elif flat_args[1] == "no.test": - return + elif flat_args[1] == "no.test": + return test_size = ''.join(spec_args.get('SIZE', [])) or unit.get('TEST_SIZE_NAME') or '' test_tags = serialize_list(_get_test_tags(unit, spec_args)) test_timeout = ''.join(spec_args.get('TIMEOUT', [])) or unit.get('TEST_TIMEOUT') or '' @@ -500,9 +500,9 @@ def onadd_ytest(unit, *args): 'YT-SPEC': serialize_list(spec_args.get('YT_SPEC', []) + get_unit_list_variable(unit, 'TEST_YT_SPEC_VALUE')), 'BLOB': unit.get('TEST_BLOB_DATA') or '', 'SKIP_TEST': unit.get('SKIP_TEST_VALUE') or '', - 'TEST_IOS_DEVICE_TYPE': unit.get('TEST_IOS_DEVICE_TYPE_VALUE') or '', - 'TEST_IOS_RUNTIME_TYPE': unit.get('TEST_IOS_RUNTIME_TYPE_VALUE') or '', - 'ANDROID_APK_TEST_ACTIVITY': unit.get('ANDROID_APK_TEST_ACTIVITY_VALUE') or '', + 'TEST_IOS_DEVICE_TYPE': unit.get('TEST_IOS_DEVICE_TYPE_VALUE') or '', + 'TEST_IOS_RUNTIME_TYPE': unit.get('TEST_IOS_RUNTIME_TYPE_VALUE') or '', + 'ANDROID_APK_TEST_ACTIVITY': unit.get('ANDROID_APK_TEST_ACTIVITY_VALUE') or '', 'TEST_PARTITION': unit.get("TEST_PARTITION") or 'SEQUENTIAL', 'GO_BENCH_TIMEOUT': unit.get('GO_BENCH_TIMEOUT') or '', } @@ -552,38 +552,38 @@ def onadd_check(unit, *args): check_type = flat_args[0] test_dir = get_norm_unit_path(unit) - test_timeout = '' + test_timeout = '' fork_mode = '' extra_test_data = '' - extra_test_dart_data = {} + extra_test_dart_data = {} ymake_java_test = unit.get('YMAKE_JAVA_TEST') == 'yes' if check_type in ["flake8.py2", "flake8.py3"]: script_rel_path = check_type fork_mode = unit.get('TEST_FORK_MODE') or '' - elif check_type == "JAVA_STYLE": + elif check_type == "JAVA_STYLE": if ymake_java_test and not unit.get('ALL_SRCDIRS') or '': return - if len(flat_args) < 2: - raise Exception("Not enough arguments for JAVA_STYLE check") - check_level = flat_args[1] - allowed_levels = { - 'base': '/yandex_checks.xml', - 'strict': '/yandex_checks_strict.xml', + if len(flat_args) < 2: + raise Exception("Not enough arguments for JAVA_STYLE check") + check_level = flat_args[1] + allowed_levels = { + 'base': '/yandex_checks.xml', + 'strict': '/yandex_checks_strict.xml', 'extended': '/yandex_checks_extended.xml', 'library': '/yandex_checks_library.xml', - } - if check_level not in allowed_levels: - raise Exception('{} is not allowed in LINT(), use one of {}'.format(check_level, allowed_levels.keys())) - flat_args[1] = allowed_levels[check_level] + } + if check_level not in allowed_levels: + raise Exception('{} is not allowed in LINT(), use one of {}'.format(check_level, allowed_levels.keys())) + flat_args[1] = allowed_levels[check_level] if check_level == 'none': return - script_rel_path = "java.style" - test_timeout = '120' + script_rel_path = "java.style" + test_timeout = '120' fork_mode = unit.get('TEST_FORK_MODE') or '' if ymake_java_test: extra_test_data = java_srcdirs_to_data(unit, 'ALL_SRCDIRS') - extra_test_dart_data['JDK_RESOURCE'] = 'JDK' + (unit.get('JDK_VERSION') or '_DEFAULT') + extra_test_dart_data['JDK_RESOURCE'] = 'JDK' + (unit.get('JDK_VERSION') or '_DEFAULT') elif check_type == "gofmt": script_rel_path = check_type go_files = flat_args[1:] @@ -615,7 +615,7 @@ def onadd_check(unit, *args): test_record = { 'TEST-NAME': check_type.lower(), - 'TEST-TIMEOUT': test_timeout, + 'TEST-TIMEOUT': test_timeout, 'SCRIPT-REL-PATH': script_rel_path, 'TESTED-PROJECT-NAME': os.path.basename(test_dir), 'SOURCE-FOLDER-PATH': test_dir, @@ -637,7 +637,7 @@ def onadd_check(unit, *args): 'TEST-FILES': test_files, 'NO_JBUILD': 'yes' if ymake_java_test else 'no', } - test_record.update(extra_test_dart_data) + test_record.update(extra_test_dart_data) data = dump_test(unit, test_record) if data: @@ -804,11 +804,11 @@ def onjava_test(unit, *args): ymake.report_configure_error('skip JTEST_FOR in {}: no args provided'.format(unit.path())) return - java_cp_arg_type = unit.get('JAVA_CLASSPATH_CMD_TYPE_VALUE') or 'MANIFEST' - if java_cp_arg_type not in ('MANIFEST', 'COMMAND_FILE', 'LIST'): - ymake.report_configure_error('{}: TEST_JAVA_CLASSPATH_CMD_TYPE({}) are invalid. Choose argument from MANIFEST, COMMAND_FILE or LIST)'.format(unit.path(), java_cp_arg_type)) - return - + java_cp_arg_type = unit.get('JAVA_CLASSPATH_CMD_TYPE_VALUE') or 'MANIFEST' + if java_cp_arg_type not in ('MANIFEST', 'COMMAND_FILE', 'LIST'): + ymake.report_configure_error('{}: TEST_JAVA_CLASSPATH_CMD_TYPE({}) are invalid. Choose argument from MANIFEST, COMMAND_FILE or LIST)'.format(unit.path(), java_cp_arg_type)) + return + unit_path = unit.path() path = _common.strip_roots(unit_path) @@ -862,9 +862,9 @@ def onjava_test(unit, *args): 'TEST-CWD': test_cwd, 'SKIP_TEST': unit.get('SKIP_TEST_VALUE') or '', 'JAVA_CLASSPATH_CMD_TYPE': java_cp_arg_type, - 'NO_JBUILD': 'yes' if ymake_java_test else 'no', - 'JDK_RESOURCE': 'JDK' + (unit.get('JDK_VERSION') or '_DEFAULT'), - 'JDK_FOR_TESTS': 'JDK' + (unit.get('JDK_VERSION') or '_DEFAULT') + '_FOR_TESTS', + 'NO_JBUILD': 'yes' if ymake_java_test else 'no', + 'JDK_RESOURCE': 'JDK' + (unit.get('JDK_VERSION') or '_DEFAULT'), + 'JDK_FOR_TESTS': 'JDK' + (unit.get('JDK_VERSION') or '_DEFAULT') + '_FOR_TESTS', } test_classpath_origins = unit.get('TEST_CLASSPATH_VALUE') if test_classpath_origins: @@ -883,50 +883,50 @@ def onjava_test(unit, *args): unit.set_property(['DART_DATA', data]) -def onjava_test_deps(unit, *args): +def onjava_test_deps(unit, *args): if unit.get("TIDY") == "yes": # graph changed for clang_tidy tests return - assert unit.get('MODULE_TYPE') is not None - assert len(args) == 1 - mode = args[0] - + assert unit.get('MODULE_TYPE') is not None + assert len(args) == 1 + mode = args[0] + path = get_norm_unit_path(unit) ymake_java_test = unit.get('YMAKE_JAVA_TEST') == 'yes' - - test_record = { - 'SOURCE-FOLDER-PATH': path, - 'TEST-NAME': '-'.join([os.path.basename(os.path.dirname(path)), os.path.basename(path), 'dependencies']).strip('-'), - 'SCRIPT-REL-PATH': 'java.dependency.test', - 'TEST-TIMEOUT': '', - 'TESTED-PROJECT-NAME': path, - 'TEST-DATA': '', + + test_record = { + 'SOURCE-FOLDER-PATH': path, + 'TEST-NAME': '-'.join([os.path.basename(os.path.dirname(path)), os.path.basename(path), 'dependencies']).strip('-'), + 'SCRIPT-REL-PATH': 'java.dependency.test', + 'TEST-TIMEOUT': '', + 'TESTED-PROJECT-NAME': path, + 'TEST-DATA': '', 'TEST_PARTITION': 'SEQUENTIAL', - 'FORK-MODE': '', - 'SPLIT-FACTOR': '', - 'CUSTOM-DEPENDENCIES': ' '.join(get_values_list(unit, 'TEST_DEPENDS_VALUE')), - 'TAG': '', - 'SIZE': 'SMALL', - 'IGNORE_CLASSPATH_CLASH': ' '.join(get_values_list(unit, 'JAVA_IGNORE_CLASSPATH_CLASH_VALUE')), + 'FORK-MODE': '', + 'SPLIT-FACTOR': '', + 'CUSTOM-DEPENDENCIES': ' '.join(get_values_list(unit, 'TEST_DEPENDS_VALUE')), + 'TAG': '', + 'SIZE': 'SMALL', + 'IGNORE_CLASSPATH_CLASH': ' '.join(get_values_list(unit, 'JAVA_IGNORE_CLASSPATH_CLASH_VALUE')), 'NO_JBUILD': 'yes' if ymake_java_test else 'no', - - # JTEST/JTEST_FOR only - 'MODULE_TYPE': unit.get('MODULE_TYPE'), - 'UNITTEST_DIR': '', - 'SYSTEM_PROPERTIES': '', - 'TEST-CWD': '', - } - if mode == 'strict': - test_record['STRICT_CLASSPATH_CLASH'] = 'yes' - + + # JTEST/JTEST_FOR only + 'MODULE_TYPE': unit.get('MODULE_TYPE'), + 'UNITTEST_DIR': '', + 'SYSTEM_PROPERTIES': '', + 'TEST-CWD': '', + } + if mode == 'strict': + test_record['STRICT_CLASSPATH_CLASH'] = 'yes' + if ymake_java_test: test_record['CLASSPATH'] = '$B/{}/{}.jar ${{DART_CLASSPATH}}'.format(unit.get('MODDIR'), unit.get('REALPRJNAME')) data = dump_test(unit, test_record) - unit.set_property(['DART_DATA', data]) - - + unit.set_property(['DART_DATA', data]) + + def _get_test_tags(unit, spec_args=None): if spec_args is None: spec_args = {} diff --git a/build/prebuilt/contrib/tools/protoc/plugins/grpc_cpp/ya.make.resource b/build/prebuilt/contrib/tools/protoc/plugins/grpc_cpp/ya.make.resource index 99126b1105..abdf7a9a1a 100644 --- a/build/prebuilt/contrib/tools/protoc/plugins/grpc_cpp/ya.make.resource +++ b/build/prebuilt/contrib/tools/protoc/plugins/grpc_cpp/ya.make.resource @@ -1,9 +1,9 @@ IF (OS_DARWIN AND ARCH_X86_64) - SET(SANDBOX_RESOURCE_ID 2584304489) + SET(SANDBOX_RESOURCE_ID 2584304489) ELSEIF (OS_LINUX AND ARCH_X86_64) - SET(SANDBOX_RESOURCE_ID 2584305537) + SET(SANDBOX_RESOURCE_ID 2584305537) ELSEIF (OS_WINDOWS AND ARCH_X86_64) - SET(SANDBOX_RESOURCE_ID 2584303873) + SET(SANDBOX_RESOURCE_ID 2584303873) ELSE() SET(SANDBOX_RESOURCE_ID) ENDIF() diff --git a/build/prebuilt/contrib/tools/protoc/plugins/grpc_java/ya.make.resource b/build/prebuilt/contrib/tools/protoc/plugins/grpc_java/ya.make.resource index d609dd461c..ae75538a60 100644 --- a/build/prebuilt/contrib/tools/protoc/plugins/grpc_java/ya.make.resource +++ b/build/prebuilt/contrib/tools/protoc/plugins/grpc_java/ya.make.resource @@ -1,9 +1,9 @@ IF (OS_DARWIN AND ARCH_X86_64) - SET(SANDBOX_RESOURCE_ID 2584508133) + SET(SANDBOX_RESOURCE_ID 2584508133) ELSEIF (OS_LINUX AND ARCH_X86_64) - SET(SANDBOX_RESOURCE_ID 2584508870) + SET(SANDBOX_RESOURCE_ID 2584508870) ELSEIF (OS_WINDOWS AND ARCH_X86_64) - SET(SANDBOX_RESOURCE_ID 2584507401) + SET(SANDBOX_RESOURCE_ID 2584507401) ELSE() SET(SANDBOX_RESOURCE_ID) ENDIF() diff --git a/build/prebuilt/contrib/tools/protoc/plugins/grpc_python/ya.make.resource b/build/prebuilt/contrib/tools/protoc/plugins/grpc_python/ya.make.resource index 305ff02dd9..c8b0b04166 100644 --- a/build/prebuilt/contrib/tools/protoc/plugins/grpc_python/ya.make.resource +++ b/build/prebuilt/contrib/tools/protoc/plugins/grpc_python/ya.make.resource @@ -1,9 +1,9 @@ IF (OS_DARWIN AND ARCH_X86_64) - SET(SANDBOX_RESOURCE_ID 2584497118) + SET(SANDBOX_RESOURCE_ID 2584497118) ELSEIF (OS_LINUX AND ARCH_X86_64) - SET(SANDBOX_RESOURCE_ID 2584497759) + SET(SANDBOX_RESOURCE_ID 2584497759) ELSEIF (OS_WINDOWS AND ARCH_X86_64) - SET(SANDBOX_RESOURCE_ID 2584496517) + SET(SANDBOX_RESOURCE_ID 2584496517) ELSE() SET(SANDBOX_RESOURCE_ID) ENDIF() diff --git a/build/rules/contrib_restricted.policy b/build/rules/contrib_restricted.policy index e770359761..a83ead1904 100644 --- a/build/rules/contrib_restricted.policy +++ b/build/rules/contrib_restricted.policy @@ -79,7 +79,7 @@ ALLOW dict/mt/video -> contrib/restricted/rubberband # Allowed subset of abseil is exported via library/ ALLOW library/cpp/containers/absl_flat_hash -> contrib/restricted/abseil-cpp/absl/container -ALLOW library/cpp/containers/absl_tstring_flat_hash -> contrib/restricted/abseil-cpp-tstring/y_absl/container +ALLOW library/cpp/containers/absl_tstring_flat_hash -> contrib/restricted/abseil-cpp-tstring/y_absl/container # spdlog is just yet another best logging engine # The best logging engine, however, is to be designed in CPPCOM-20 diff --git a/build/scripts/build_dll_and_java.py b/build/scripts/build_dll_and_java.py index 41fb9413e5..b9d8aff4df 100644 --- a/build/scripts/build_dll_and_java.py +++ b/build/scripts/build_dll_and_java.py @@ -1,47 +1,47 @@ -import os -import subprocess -import sys - - -def just_do_it(argv): - delim = argv[0] - args = [] - for item in argv: - if item == delim: - args.append([]) - else: - args[-1].append(item) - dll_cmd, java_cmd, inputs, dll_out, java_out, jsrs_out, roots = args - dll_out, java_out, jsrs_out, build_root, source_root = dll_out[0], java_out[0], jsrs_out[0], roots[0], roots[1] - for inp in inputs: - origin_inp = inp - if os.path.isabs(inp): - if os.path.relpath(inp, build_root).startswith('..'): - inp = os.path.relpath(inp, source_root) - else: - inp = os.path.relpath(inp, build_root) - ext = os.path.splitext(inp)[1] - if ext in ('.o', '.obj'): - if os.path.join(build_root, inp) in java_cmd: - inp = os.path.join(build_root, inp) - if sys.platform == 'win32': - inp = inp.replace('\\', '/') - if inp not in java_cmd: - inp = build_root + '/' + inp - java_cmd.remove(inp) - if ext in ('.java', '.jsrc'): - if origin_inp in dll_cmd: - inp = origin_inp - elif os.path.join(build_root, inp) in dll_cmd: - inp = os.path.join(build_root, inp) - if sys.platform == 'win32': - inp = inp.replace('\\', '/') +import os +import subprocess +import sys + + +def just_do_it(argv): + delim = argv[0] + args = [] + for item in argv: + if item == delim: + args.append([]) + else: + args[-1].append(item) + dll_cmd, java_cmd, inputs, dll_out, java_out, jsrs_out, roots = args + dll_out, java_out, jsrs_out, build_root, source_root = dll_out[0], java_out[0], jsrs_out[0], roots[0], roots[1] + for inp in inputs: + origin_inp = inp + if os.path.isabs(inp): + if os.path.relpath(inp, build_root).startswith('..'): + inp = os.path.relpath(inp, source_root) + else: + inp = os.path.relpath(inp, build_root) + ext = os.path.splitext(inp)[1] + if ext in ('.o', '.obj'): + if os.path.join(build_root, inp) in java_cmd: + inp = os.path.join(build_root, inp) + if sys.platform == 'win32': + inp = inp.replace('\\', '/') + if inp not in java_cmd: + inp = build_root + '/' + inp + java_cmd.remove(inp) + if ext in ('.java', '.jsrc'): + if origin_inp in dll_cmd: + inp = origin_inp + elif os.path.join(build_root, inp) in dll_cmd: + inp = os.path.join(build_root, inp) + if sys.platform == 'win32': + inp = inp.replace('\\', '/') dll_cmd.remove(inp) - java_cmd.insert(java_cmd.index(dll_out), java_out) - java_cmd.remove(dll_out) - subprocess.check_call(java_cmd) - subprocess.check_call(dll_cmd) - - -if __name__ == '__main__': - just_do_it(sys.argv[1:]) + java_cmd.insert(java_cmd.index(dll_out), java_out) + java_cmd.remove(dll_out) + subprocess.check_call(java_cmd) + subprocess.check_call(dll_cmd) + + +if __name__ == '__main__': + just_do_it(sys.argv[1:]) diff --git a/build/scripts/build_info_gen.py b/build/scripts/build_info_gen.py index 9bc8475ded..949e0a1636 100644 --- a/build/scripts/build_info_gen.py +++ b/build/scripts/build_info_gen.py @@ -1,63 +1,63 @@ -import subprocess -import os -import sys -import re - -indent = " " - - -def escape_special_symbols(strval): - retval = "" - for c in strval: - if c in ("\\", "\""): - retval += "\\" + c - elif ord(c) < 0x20: - retval += c.encode("string_escape") - else: - retval += c - return retval - - -def escape_line_feed(strval): - return re.sub(r'\\n', r'\\n"\\\n' + indent + '"', strval) - - -def escaped_define(strkey, strval): - return "#define " + strkey + " \"" + escape_line_feed(escape_special_symbols(strval)) + "\"" - - -def get_build_info(compiler, flags): - build_info = "Build info:\n" - build_info += indent + "Compiler: " + compiler + "\n" - build_info += indent + "Compiler version: \n" + get_compiler_info(compiler) + "\n" - build_info += indent + "Compile flags: " + (flags if flags else "no flags info") - return build_info - - -def get_compiler_info(compiler): - compiler_binary = os.path.basename(compiler).lower() - if len(compiler.split(' ')) > 1 or compiler_binary == "ymake" or compiler_binary == "ymake.exe": - compiler_ver_out = "Build by wrapper. No useful info here." - else: - compiler_ver_cmd = [compiler] - if compiler_binary not in ("cl", "cl.exe"): - compiler_ver_cmd.append('--version') - compiler_ver_out = subprocess.Popen(compiler_ver_cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT).stdout.read() - return "\n".join(['{}{}'.format(indent * 2, line.strip()) for line in compiler_ver_out.splitlines() if line.strip()]) - - -def main(): - if len(sys.argv) != 4: +import subprocess +import os +import sys +import re + +indent = " " + + +def escape_special_symbols(strval): + retval = "" + for c in strval: + if c in ("\\", "\""): + retval += "\\" + c + elif ord(c) < 0x20: + retval += c.encode("string_escape") + else: + retval += c + return retval + + +def escape_line_feed(strval): + return re.sub(r'\\n', r'\\n"\\\n' + indent + '"', strval) + + +def escaped_define(strkey, strval): + return "#define " + strkey + " \"" + escape_line_feed(escape_special_symbols(strval)) + "\"" + + +def get_build_info(compiler, flags): + build_info = "Build info:\n" + build_info += indent + "Compiler: " + compiler + "\n" + build_info += indent + "Compiler version: \n" + get_compiler_info(compiler) + "\n" + build_info += indent + "Compile flags: " + (flags if flags else "no flags info") + return build_info + + +def get_compiler_info(compiler): + compiler_binary = os.path.basename(compiler).lower() + if len(compiler.split(' ')) > 1 or compiler_binary == "ymake" or compiler_binary == "ymake.exe": + compiler_ver_out = "Build by wrapper. No useful info here." + else: + compiler_ver_cmd = [compiler] + if compiler_binary not in ("cl", "cl.exe"): + compiler_ver_cmd.append('--version') + compiler_ver_out = subprocess.Popen(compiler_ver_cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT).stdout.read() + return "\n".join(['{}{}'.format(indent * 2, line.strip()) for line in compiler_ver_out.splitlines() if line.strip()]) + + +def main(): + if len(sys.argv) != 4: print >>sys.stderr, "Usage: build_info_gen.py <output file> <CXX compiler> <CXX flags>" - sys.exit(1) - cxx_compiler = sys.argv[2] - cxx_flags = sys.argv[3] - with open(sys.argv[1], 'w') as result: - print >> result, "#pragma once\n" - print >> result, escaped_define("BUILD_INFO", get_build_info(cxx_compiler, cxx_flags)) - print >> result, escaped_define("BUILD_COMPILER", cxx_compiler) - print >> result, escaped_define("BUILD_COMPILER_VERSION", get_compiler_info(cxx_compiler)) - print >> result, escaped_define("BUILD_COMPILER_FLAGS", cxx_flags) - -if __name__ == "__main__": - main() + sys.exit(1) + cxx_compiler = sys.argv[2] + cxx_flags = sys.argv[3] + with open(sys.argv[1], 'w') as result: + print >> result, "#pragma once\n" + print >> result, escaped_define("BUILD_INFO", get_build_info(cxx_compiler, cxx_flags)) + print >> result, escaped_define("BUILD_COMPILER", cxx_compiler) + print >> result, escaped_define("BUILD_COMPILER_VERSION", get_compiler_info(cxx_compiler)) + print >> result, escaped_define("BUILD_COMPILER_FLAGS", cxx_flags) + +if __name__ == "__main__": + main() diff --git a/build/scripts/build_java_codenav_index.py b/build/scripts/build_java_codenav_index.py index ad6752896b..d7ac4f3213 100644 --- a/build/scripts/build_java_codenav_index.py +++ b/build/scripts/build_java_codenav_index.py @@ -1,49 +1,49 @@ -import sys -import re -import os -import subprocess - -FAKE_ARCADIA_ROOT = 'fake_arcadia_root' -FAKE_BUILD_ROOT = 'fake_build_root' - - -def modify_sources_file(origin, target, source_roots_map): - def _cut_source_root(src): - for pref, fake_root in source_roots_map.items(): - if src.startswith(pref): - return os.path.join(fake_root, os.path.relpath(src, pref)) - return src - - with open(origin) as o: - srcs = [i for line in o for i in re.split('\\s+', line) if i] - new_srcs = map(_cut_source_root, srcs) - with open(target, 'w') as t: - t.write(' '.join(new_srcs)) - - -def just_do_it(argv): +import sys +import re +import os +import subprocess + +FAKE_ARCADIA_ROOT = 'fake_arcadia_root' +FAKE_BUILD_ROOT = 'fake_build_root' + + +def modify_sources_file(origin, target, source_roots_map): + def _cut_source_root(src): + for pref, fake_root in source_roots_map.items(): + if src.startswith(pref): + return os.path.join(fake_root, os.path.relpath(src, pref)) + return src + + with open(origin) as o: + srcs = [i for line in o for i in re.split('\\s+', line) if i] + new_srcs = map(_cut_source_root, srcs) + with open(target, 'w') as t: + t.write(' '.join(new_srcs)) + + +def just_do_it(argv): corpus_name, build_root, arcadia_root, sources_file, javac_tail_cmd = argv[0], argv[1], argv[2], argv[3], argv[4:] - fake_arcadia_root = os.path.join(build_root, FAKE_ARCADIA_ROOT) - fake_build_root = os.path.join(build_root, FAKE_BUILD_ROOT) - fake_source_roots = { - arcadia_root: fake_arcadia_root, - build_root: fake_build_root, - } - modify_sources_file(sources_file, os.path.join(os.path.dirname(sources_file), '_' + os.path.basename(sources_file)), fake_source_roots) - kindex_data_root = '{}/kindex'.format(os.path.join(build_root, os.path.dirname(corpus_name))) - if not os.path.exists(kindex_data_root): - os.makedirs(kindex_data_root) - env = os.environ.copy() - env['KYTHE_ROOT_DIRECTORY'] = build_root - env['KYTHE_OUTPUT_DIRECTORY'] = kindex_data_root - env['KYTHE_CORPUS'] = os.path.relpath(corpus_name, build_root) - os.symlink(arcadia_root, fake_arcadia_root) - os.symlink(build_root, fake_build_root) - try: + fake_arcadia_root = os.path.join(build_root, FAKE_ARCADIA_ROOT) + fake_build_root = os.path.join(build_root, FAKE_BUILD_ROOT) + fake_source_roots = { + arcadia_root: fake_arcadia_root, + build_root: fake_build_root, + } + modify_sources_file(sources_file, os.path.join(os.path.dirname(sources_file), '_' + os.path.basename(sources_file)), fake_source_roots) + kindex_data_root = '{}/kindex'.format(os.path.join(build_root, os.path.dirname(corpus_name))) + if not os.path.exists(kindex_data_root): + os.makedirs(kindex_data_root) + env = os.environ.copy() + env['KYTHE_ROOT_DIRECTORY'] = build_root + env['KYTHE_OUTPUT_DIRECTORY'] = kindex_data_root + env['KYTHE_CORPUS'] = os.path.relpath(corpus_name, build_root) + os.symlink(arcadia_root, fake_arcadia_root) + os.symlink(build_root, fake_build_root) + try: subprocess.check_call(javac_tail_cmd, env=env) - finally: - os.unlink(fake_arcadia_root) - os.unlink(fake_build_root) - -if __name__ == '__main__': - just_do_it(sys.argv[1:]) + finally: + os.unlink(fake_arcadia_root) + os.unlink(fake_build_root) + +if __name__ == '__main__': + just_do_it(sys.argv[1:]) diff --git a/build/scripts/build_java_with_error_prone.py b/build/scripts/build_java_with_error_prone.py index 19fcd37a64..910443552e 100644 --- a/build/scripts/build_java_with_error_prone.py +++ b/build/scripts/build_java_with_error_prone.py @@ -1,36 +1,36 @@ -import sys -import os - -ERROR_PRONE_FLAGS = [ - '-Xep:FunctionalInterfaceMethodChanged:WARN', - '-Xep:ReturnValueIgnored:WARN', -] - -JAVA10_EXPORTS = [ - '--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED', - '--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED', - '--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED', - '--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED', - '--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED', - '--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED', - '--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED', +import sys +import os + +ERROR_PRONE_FLAGS = [ + '-Xep:FunctionalInterfaceMethodChanged:WARN', + '-Xep:ReturnValueIgnored:WARN', +] + +JAVA10_EXPORTS = [ + '--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED', + '--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED', + '--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED', + '--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED', + '--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED', + '--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED', + '--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED', '--add-exports=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED' -] - - -def just_do_it(argv): - java, error_prone_tool, javac_cmd = argv[0], argv[1], argv[2:] - if java.endswith('javac') or java.endswith('javac.exe'): - for f in javac_cmd: +] + + +def just_do_it(argv): + java, error_prone_tool, javac_cmd = argv[0], argv[1], argv[2:] + if java.endswith('javac') or java.endswith('javac.exe'): + for f in javac_cmd: if f.startswith('-Xep'): - ERROR_PRONE_FLAGS.append(f) - for f in ERROR_PRONE_FLAGS: - if f in javac_cmd: - javac_cmd.remove(f) - os.execv(java, [java] + JAVA10_EXPORTS + ['-processorpath', error_prone_tool, '-XDcompilePolicy=byfile'] + [(' '.join(['-Xplugin:ErrorProne'] + ERROR_PRONE_FLAGS))] + javac_cmd) - else: - os.execv(java, [java, '-Xbootclasspath/p:' + error_prone_tool, 'com.google.errorprone.ErrorProneCompiler'] + ERROR_PRONE_FLAGS + javac_cmd) - - -if __name__ == '__main__': - just_do_it(sys.argv[1:]) + ERROR_PRONE_FLAGS.append(f) + for f in ERROR_PRONE_FLAGS: + if f in javac_cmd: + javac_cmd.remove(f) + os.execv(java, [java] + JAVA10_EXPORTS + ['-processorpath', error_prone_tool, '-XDcompilePolicy=byfile'] + [(' '.join(['-Xplugin:ErrorProne'] + ERROR_PRONE_FLAGS))] + javac_cmd) + else: + os.execv(java, [java, '-Xbootclasspath/p:' + error_prone_tool, 'com.google.errorprone.ErrorProneCompiler'] + ERROR_PRONE_FLAGS + javac_cmd) + + +if __name__ == '__main__': + just_do_it(sys.argv[1:]) diff --git a/build/scripts/build_java_with_error_prone2.py b/build/scripts/build_java_with_error_prone2.py index 94521f7c4b..4efc1e444a 100644 --- a/build/scripts/build_java_with_error_prone2.py +++ b/build/scripts/build_java_with_error_prone2.py @@ -1,87 +1,87 @@ -import sys -import os -import re -import subprocess -import platform - - -ERROR_PRONE_FLAGS = [ - '-Xep:FunctionalInterfaceMethodChanged:WARN', - '-Xep:ReturnValueIgnored:WARN', -] - -JAVA10_EXPORTS = [ - '--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED', - '--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED', - '--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED', - '--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED', - '--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED', - '--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED', - '--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED', +import sys +import os +import re +import subprocess +import platform + + +ERROR_PRONE_FLAGS = [ + '-Xep:FunctionalInterfaceMethodChanged:WARN', + '-Xep:ReturnValueIgnored:WARN', +] + +JAVA10_EXPORTS = [ + '--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED', + '--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED', + '--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED', + '--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED', + '--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED', + '--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED', + '--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED', '--add-exports=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED', -] - - -def get_java_version(exe): - p = subprocess.Popen([exe, '-version'], stdout=subprocess.PIPE, stderr=subprocess.PIPE) - out, err = p.communicate() - for line in ((out or '').strip() + (err or '').strip()).split("\n"): +] + + +def get_java_version(exe): + p = subprocess.Popen([exe, '-version'], stdout=subprocess.PIPE, stderr=subprocess.PIPE) + out, err = p.communicate() + for line in ((out or '').strip() + (err or '').strip()).split("\n"): m = re.match(r'java version "(.+)"', line) - if m: - parts = m.groups()[0].split(".") - return parts[1] if parts[0] == "1" else parts[0] + if m: + parts = m.groups()[0].split(".") + return parts[1] if parts[0] == "1" else parts[0] m = re.match(r'openjdk version "(\d+).*"', line) - if m: - parts = m.groups()[0].split(".") - return parts[0] - return None - - -def get_classpath(cmd): - for i, part in enumerate(cmd): - if part == '-classpath': - i += 1 - if i < len(cmd): - return cmd[i] - else: - return None - return None - - -def parse_args(argv): - parsed = [] - for i in range(len(argv)): - if not argv[i].startswith('-'): - parsed.append(argv[i]) - if len(parsed) >= 3: - break - return parsed + [argv[i + 1:]] - - -def just_do_it(argv): - java, javac, error_prone_tool, javac_cmd = parse_args(argv) - ver = get_java_version(java) - if not ver: - raise Exception("Can't determine java version") - if int(ver) >= 10: - for f in javac_cmd: + if m: + parts = m.groups()[0].split(".") + return parts[0] + return None + + +def get_classpath(cmd): + for i, part in enumerate(cmd): + if part == '-classpath': + i += 1 + if i < len(cmd): + return cmd[i] + else: + return None + return None + + +def parse_args(argv): + parsed = [] + for i in range(len(argv)): + if not argv[i].startswith('-'): + parsed.append(argv[i]) + if len(parsed) >= 3: + break + return parsed + [argv[i + 1:]] + + +def just_do_it(argv): + java, javac, error_prone_tool, javac_cmd = parse_args(argv) + ver = get_java_version(java) + if not ver: + raise Exception("Can't determine java version") + if int(ver) >= 10: + for f in javac_cmd: if f.startswith('-Xep'): - ERROR_PRONE_FLAGS.append(f) - for f in ERROR_PRONE_FLAGS: - if f in javac_cmd: - javac_cmd.remove(f) - if '-processor' in javac_cmd: - classpath = get_classpath(javac_cmd) - if classpath: - error_prone_tool = error_prone_tool + os.pathsep + classpath - cmd = [javac] + JAVA10_EXPORTS + ['-processorpath', error_prone_tool, '-XDcompilePolicy=byfile'] + [(' '.join(['-Xplugin:ErrorProne'] + ERROR_PRONE_FLAGS))] + javac_cmd - else: - cmd = [java, '-Xbootclasspath/p:' + error_prone_tool, 'com.google.errorprone.ErrorProneCompiler'] + ERROR_PRONE_FLAGS + javac_cmd - if platform.system() == 'Windows': - sys.exit(subprocess.Popen(cmd).wait()) - else: - os.execv(cmd[0], cmd) - - -if __name__ == '__main__': - just_do_it(sys.argv[1:]) + ERROR_PRONE_FLAGS.append(f) + for f in ERROR_PRONE_FLAGS: + if f in javac_cmd: + javac_cmd.remove(f) + if '-processor' in javac_cmd: + classpath = get_classpath(javac_cmd) + if classpath: + error_prone_tool = error_prone_tool + os.pathsep + classpath + cmd = [javac] + JAVA10_EXPORTS + ['-processorpath', error_prone_tool, '-XDcompilePolicy=byfile'] + [(' '.join(['-Xplugin:ErrorProne'] + ERROR_PRONE_FLAGS))] + javac_cmd + else: + cmd = [java, '-Xbootclasspath/p:' + error_prone_tool, 'com.google.errorprone.ErrorProneCompiler'] + ERROR_PRONE_FLAGS + javac_cmd + if platform.system() == 'Windows': + sys.exit(subprocess.Popen(cmd).wait()) + else: + os.execv(cmd[0], cmd) + + +if __name__ == '__main__': + just_do_it(sys.argv[1:]) diff --git a/build/scripts/collect_java_srcs.py b/build/scripts/collect_java_srcs.py index 457791b9a6..170002520a 100644 --- a/build/scripts/collect_java_srcs.py +++ b/build/scripts/collect_java_srcs.py @@ -13,7 +13,7 @@ if __name__ == '__main__': for src in srcs: src = os.path.normpath(src) - if src.endswith('.java') or src.endswith('.kt'): + if src.endswith('.java') or src.endswith('.kt'): src_rel_path = os.path.relpath(src, root) if os.path.join(root, src_rel_path) == src: diff --git a/build/scripts/compile_cuda.py b/build/scripts/compile_cuda.py index c54351eeb4..c0bec50b2a 100644 --- a/build/scripts/compile_cuda.py +++ b/build/scripts/compile_cuda.py @@ -63,15 +63,15 @@ def main(): if flag in cflags: cflags.remove(flag) - skip_prefix_list = [ - '-fsanitize=', + skip_prefix_list = [ + '-fsanitize=', '-fsanitize-coverage=', - '-fsanitize-blacklist=', + '-fsanitize-blacklist=', '--system-header-prefix', - ] - for prefix in skip_prefix_list: - cflags = [i for i in cflags if not i.startswith(prefix)] - + ] + for prefix in skip_prefix_list: + cflags = [i for i in cflags if not i.startswith(prefix)] + if not is_clang(command): def good(arg): if arg.startswith('--target='): @@ -99,14 +99,14 @@ def main(): compiler_args.append(arg) compiler_args.append(cflags_queue.popleft()) continue - if arg[:2].upper() in ('-I', '/I', '-B'): + if arg[:2].upper() in ('-I', '/I', '-B'): value = arg[2:] if not value: value = cflags_queue.popleft() - if arg[1] == 'I': + if arg[1] == 'I': cpp_args.append('-I{}'.format(value)) - elif arg[1] == 'B': # todo: delete "B" flag check when cuda stop to use gcc - pass + elif arg[1] == 'B': # todo: delete "B" flag check when cuda stop to use gcc + pass continue match = re.match(r'[-/]D(.*)', arg) diff --git a/build/scripts/compile_java.py b/build/scripts/compile_java.py index 34f5fde875..e95869e853 100644 --- a/build/scripts/compile_java.py +++ b/build/scripts/compile_java.py @@ -5,10 +5,10 @@ import shutil import subprocess as sp import tarfile import zipfile -import sys +import sys -def parse_args(args): +def parse_args(args): parser = optparse.OptionParser() parser.add_option('--javac-bin') parser.add_option('--jar-bin') @@ -16,7 +16,7 @@ def parse_args(args): parser.add_option('--package-prefix') parser.add_option('--jar-output') parser.add_option('--srcs-jar-output') - return parser.parse_args(args) + return parser.parse_args(args) def mkdir_p(directory): @@ -24,21 +24,21 @@ def mkdir_p(directory): os.makedirs(directory) -def split_cmd_by_delim(cmd, delim='DELIM'): - result = [[]] - for arg in cmd: - if arg == delim: - result.append([]) - else: - result[-1].append(arg) - return result - - +def split_cmd_by_delim(cmd, delim='DELIM'): + result = [[]] + for arg in cmd: + if arg == delim: + result.append([]) + else: + result[-1].append(arg) + return result + + def main(): - cmd_parts = split_cmd_by_delim(sys.argv) - assert len(cmd_parts) == 3 - args, javac_opts, peers = cmd_parts - opts, jsrcs = parse_args(args) + cmd_parts = split_cmd_by_delim(sys.argv) + assert len(cmd_parts) == 3 + args, javac_opts, peers = cmd_parts + opts, jsrcs = parse_args(args) jsrcs += list(filter(lambda x: x.endswith('.jsrc'), peers)) peers = list(filter(lambda x: not x.endswith('.jsrc'), peers)) @@ -54,18 +54,18 @@ def main(): for r, _, files in os.walk(sources_dir): for f in files: srcs.append(os.path.join(r, f)) - srcs += jsrcs - srcs = list(filter(lambda x: x.endswith('.java'), srcs)) + srcs += jsrcs + srcs = list(filter(lambda x: x.endswith('.java'), srcs)) classes_dir = 'cls' mkdir_p(classes_dir) - classpath = os.pathsep.join(peers) + classpath = os.pathsep.join(peers) if srcs: - temp_sources_file = 'temp.sources.list' - with open(temp_sources_file, 'w') as ts: - ts.write(' '.join(srcs)) - sp.check_call([opts.javac_bin, '-nowarn', '-g', '-classpath', classpath, '-encoding', 'UTF-8', '-d', classes_dir] + javac_opts + ['@' + temp_sources_file]) + temp_sources_file = 'temp.sources.list' + with open(temp_sources_file, 'w') as ts: + ts.write(' '.join(srcs)) + sp.check_call([opts.javac_bin, '-nowarn', '-g', '-classpath', classpath, '-encoding', 'UTF-8', '-d', classes_dir] + javac_opts + ['@' + temp_sources_file]) for s in jsrcs: if s.endswith('-sources.jar'): diff --git a/build/scripts/configure_file.py b/build/scripts/configure_file.py index a943f89a7e..1873ed70eb 100755 --- a/build/scripts/configure_file.py +++ b/build/scripts/configure_file.py @@ -2,7 +2,7 @@ import sys import os.path -import re +import re cmakeDef01 = "#cmakedefine01" cmakeDef = "#cmakedefine" @@ -26,13 +26,13 @@ def replaceLine(l, varDict, define): ePos = l.find(var) + len(var) l = l[:sPos] + define + ' ' + var + ' ' + val + l[ePos + 1:] + '\n' - finder = re.compile(".*?(@[a-zA-Z0-9_]+@).*") + finder = re.compile(".*?(@[a-zA-Z0-9_]+@).*") while True: - re_result = finder.match(l) - if not re_result: + re_result = finder.match(l) + if not re_result: return l - key = re_result.group(1)[1:-1] - l = l[:re_result.start(1)] + varDict.get(key, '') + l[re_result.end(1):] + key = re_result.group(1)[1:-1] + l = l[:re_result.start(1)] + varDict.get(key, '') + l[re_result.end(1):] def main(inputPath, outputPath, varDict): diff --git a/build/scripts/coverage-info.py b/build/scripts/coverage-info.py index 365a97a368..94491d9256 100644 --- a/build/scripts/coverage-info.py +++ b/build/scripts/coverage-info.py @@ -201,20 +201,20 @@ def process_all_coverage_files(gcda_archive, fname2gcno, fname2info, geninfo_exe gen_info(geninfo_cmd, coverage_info) -def gen_cobertura(tool, output, combined_info): - cmd = [ - tool, - combined_info, - '-b', '#hamster#', - '-o', output - ] - p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) - out, err = p.communicate() - if p.returncode: - raise Exception('lcov_cobertura failed with exit code {}\nstdout: {}\nstderr: {}'.format(p.returncode, out, err)) - - -def main(source_root, output, gcno_archive, gcda_archive, gcov_tool, prefix_filter, exclude_regexp, teamcity_stat_output, coverage_report_path, gcov_report, lcov_cobertura): +def gen_cobertura(tool, output, combined_info): + cmd = [ + tool, + combined_info, + '-b', '#hamster#', + '-o', output + ] + p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + out, err = p.communicate() + if p.returncode: + raise Exception('lcov_cobertura failed with exit code {}\nstdout: {}\nstderr: {}'.format(p.returncode, out, err)) + + +def main(source_root, output, gcno_archive, gcda_archive, gcov_tool, prefix_filter, exclude_regexp, teamcity_stat_output, coverage_report_path, gcov_report, lcov_cobertura): exclude_files = re.compile(exclude_regexp) if exclude_regexp else None fname2gcno = {} @@ -256,8 +256,8 @@ def main(source_root, output, gcno_archive, gcda_archive, gcov_tool, prefix_filt cmd = [os.path.join(source_root, 'devtools', 'lcov', 'genhtml'), '-p', source_root, '--ignore-errors', 'source', '-o', output_dir, output_trace] print >>sys.stderr, '## genhtml', ' '.join(cmd) subprocess.check_call(cmd) - if lcov_cobertura: - gen_cobertura(lcov_cobertura, gcov_report, output_trace) + if lcov_cobertura: + gen_cobertura(lcov_cobertura, gcov_report, output_trace) with tarfile.open(output, 'w') as tar: tar.add(output_dir, arcname='.') @@ -275,8 +275,8 @@ if __name__ == '__main__': parser.add_argument('--exclude-regexp', action='store') parser.add_argument('--teamcity-stat-output', action='store_const', const=True) parser.add_argument('--coverage-report-path', action='store') - parser.add_argument('--gcov-report', action='store') - parser.add_argument('--lcov-cobertura', action='store') + parser.add_argument('--gcov-report', action='store') + parser.add_argument('--lcov-cobertura', action='store') args = parser.parse_args() main(**vars(args)) diff --git a/build/scripts/create_jcoverage_report.py b/build/scripts/create_jcoverage_report.py index 4a74f7677b..45083ff4f7 100644 --- a/build/scripts/create_jcoverage_report.py +++ b/build/scripts/create_jcoverage_report.py @@ -1,19 +1,19 @@ -import argparse -import tarfile +import argparse +import tarfile import zipfile -import os +import os import sys import time -import subprocess - - -def mkdir_p(path): - try: - os.makedirs(path) - except OSError: - pass - - +import subprocess + + +def mkdir_p(path): + try: + os.makedirs(path) + except OSError: + pass + + class Timer(object): def __init__(self): @@ -24,7 +24,7 @@ class Timer(object): self.start = time.time() -def main(source, output, java, prefix_filter, exclude_filter, jars_list, output_format, tar_output, agent_disposition, runners_paths): +def main(source, output, java, prefix_filter, exclude_filter, jars_list, output_format, tar_output, agent_disposition, runners_paths): timer = Timer() reports_dir = 'jacoco_reports_dir' mkdir_p(reports_dir) @@ -35,12 +35,12 @@ def main(source, output, java, prefix_filter, exclude_filter, jars_list, output_ with open(jars_list) as f: jars = f.read().strip().split() - if jars and runners_paths: - for r in runners_paths: - try: - jars.remove(r) - except ValueError: - pass + if jars and runners_paths: + for r in runners_paths: + try: + jars.remove(r) + except ValueError: + pass src_dir = 'sources_dir' cls_dir = 'classes_dir' @@ -78,8 +78,8 @@ def main(source, output, java, prefix_filter, exclude_filter, jars_list, output_ report_dir = 'java.report.temp' else: report_dir = output - mkdir_p(report_dir) - + mkdir_p(report_dir) + if agent_disposition: agent_cmd = [java, '-jar', agent_disposition, src_dir, cls_dir, prefix_filter or '.', exclude_filter or '__no_exclude__', report_dir, output_format] agent_cmd += reports @@ -89,24 +89,24 @@ def main(source, output, java, prefix_filter, exclude_filter, jars_list, output_ if tar_output: with tarfile.open(output, 'w') as outf: outf.add(report_dir, arcname='.') - - -if __name__ == '__main__': + + +if __name__ == '__main__': if 'LC_ALL' in os.environ: if os.environ['LC_ALL'] == 'C': os.environ['LC_ALL'] = 'en_GB.UTF-8' - parser = argparse.ArgumentParser() - - parser.add_argument('--source', action='store') - parser.add_argument('--output', action='store') - parser.add_argument('--java', action='store') - parser.add_argument('--prefix-filter', action='store') - parser.add_argument('--exclude-filter', action='store') + parser = argparse.ArgumentParser() + + parser.add_argument('--source', action='store') + parser.add_argument('--output', action='store') + parser.add_argument('--java', action='store') + parser.add_argument('--prefix-filter', action='store') + parser.add_argument('--exclude-filter', action='store') parser.add_argument('--jars-list', action='store') parser.add_argument('--output-format', action='store', default="html") parser.add_argument('--raw-output', dest='tar_output', action='store_false', default=True) parser.add_argument('--agent-disposition', action='store') - parser.add_argument('--runner-path', dest='runners_paths', action='append', default=[]) - args = parser.parse_args() - main(**vars(args)) + parser.add_argument('--runner-path', dest='runners_paths', action='append', default=[]) + args = parser.parse_args() + main(**vars(args)) diff --git a/build/scripts/extract_jacoco_report.py b/build/scripts/extract_jacoco_report.py index 07c5cae13c..02e4ba9f13 100644 --- a/build/scripts/extract_jacoco_report.py +++ b/build/scripts/extract_jacoco_report.py @@ -1,29 +1,29 @@ -import argparse -import os -import re -import tarfile - - -if __name__ == '__main__': - parser = argparse.ArgumentParser() - - parser.add_argument('--archive', action='store') - parser.add_argument('--source-re', action='store') - parser.add_argument('--destination', action='store') - - args = parser.parse_args() - - with tarfile.open(args.archive) as tf: - open(args.destination, 'wb').close() - extract_list = [] - matcher = re.compile(args.source_re) - temp_dir = os.path.join(os.path.dirname(args.destination), 'temp_profiles') - if not os.path.exists(temp_dir): - os.makedirs(temp_dir) - for f in [i for i in tf if matcher.match(i.name)]: - tf.extract(f, path=temp_dir) - for directory, _, srcs in os.walk(temp_dir): - for f in srcs: - with open(args.destination, 'ab') as dst: - with open(os.path.join(temp_dir, directory, f), 'rb') as src: - dst.write(src.read()) +import argparse +import os +import re +import tarfile + + +if __name__ == '__main__': + parser = argparse.ArgumentParser() + + parser.add_argument('--archive', action='store') + parser.add_argument('--source-re', action='store') + parser.add_argument('--destination', action='store') + + args = parser.parse_args() + + with tarfile.open(args.archive) as tf: + open(args.destination, 'wb').close() + extract_list = [] + matcher = re.compile(args.source_re) + temp_dir = os.path.join(os.path.dirname(args.destination), 'temp_profiles') + if not os.path.exists(temp_dir): + os.makedirs(temp_dir) + for f in [i for i in tf if matcher.match(i.name)]: + tf.extract(f, path=temp_dir) + for directory, _, srcs in os.walk(temp_dir): + for f in srcs: + with open(args.destination, 'ab') as dst: + with open(os.path.join(temp_dir, directory, f), 'rb') as src: + dst.write(src.read()) diff --git a/build/scripts/filter_zip.py b/build/scripts/filter_zip.py index 3ee15b07fb..b2121b9c9e 100644 --- a/build/scripts/filter_zip.py +++ b/build/scripts/filter_zip.py @@ -1,11 +1,11 @@ -import argparse -import os -import re -import uuid -import zipfile - - -def pattern_to_regexp(p): +import argparse +import os +import re +import uuid +import zipfile + + +def pattern_to_regexp(p): return re.compile( '^' + re.escape(p) @@ -15,57 +15,57 @@ def pattern_to_regexp(p): .replace('[_FILE_]', '([^/]*)') + '$' ) - - -def is_deathman(positive_filter, negative_filter, candidate): - remove = positive_filter - for pf in positive_filter: - if pf.match(candidate): - remove = False - break - if not negative_filter or remove: - return remove - for nf in negative_filter: - if nf.match(candidate): - remove = True - break - return remove - - -def just_do_it(): - parser = argparse.ArgumentParser() - parser.add_argument('--positive', action='append', default=[]) - parser.add_argument('--negative', action='append', default=[]) - parser.add_argument('--file', action='store', required=True) - args = parser.parse_args() - if not args.positive and not args.negative: - return - pos = [pattern_to_regexp(i) for i in args.positive] - neg = [pattern_to_regexp(i) for i in args.negative] - temp_dirname = None - for _ in range(10): - candidate = '__unpacked_{}__'.format(uuid.uuid4()) - if not os.path.exists(candidate): - temp_dirname = candidate - os.makedirs(temp_dirname) - if not temp_dirname: - raise Exception("Can't generate name for temp dir") - - with zipfile.ZipFile(args.file, 'r') as zip_ref: - zip_ref.extractall(temp_dirname) - - for root, _, files in os.walk(temp_dirname): - for f in files: - candidate = os.path.join(root, f).replace('\\', '/') - if is_deathman(pos, neg, os.path.relpath(candidate, temp_dirname)): - os.remove(candidate) - - with zipfile.ZipFile(args.file, 'w') as zip_ref: - for root, _, files in os.walk(temp_dirname): - for f in files: - realname = os.path.join(root, f) - zip_ref.write(realname, os.path.sep.join(os.path.normpath(realname).split(os.path.sep, 2)[1:])) - - -if __name__ == '__main__': - just_do_it() + + +def is_deathman(positive_filter, negative_filter, candidate): + remove = positive_filter + for pf in positive_filter: + if pf.match(candidate): + remove = False + break + if not negative_filter or remove: + return remove + for nf in negative_filter: + if nf.match(candidate): + remove = True + break + return remove + + +def just_do_it(): + parser = argparse.ArgumentParser() + parser.add_argument('--positive', action='append', default=[]) + parser.add_argument('--negative', action='append', default=[]) + parser.add_argument('--file', action='store', required=True) + args = parser.parse_args() + if not args.positive and not args.negative: + return + pos = [pattern_to_regexp(i) for i in args.positive] + neg = [pattern_to_regexp(i) for i in args.negative] + temp_dirname = None + for _ in range(10): + candidate = '__unpacked_{}__'.format(uuid.uuid4()) + if not os.path.exists(candidate): + temp_dirname = candidate + os.makedirs(temp_dirname) + if not temp_dirname: + raise Exception("Can't generate name for temp dir") + + with zipfile.ZipFile(args.file, 'r') as zip_ref: + zip_ref.extractall(temp_dirname) + + for root, _, files in os.walk(temp_dirname): + for f in files: + candidate = os.path.join(root, f).replace('\\', '/') + if is_deathman(pos, neg, os.path.relpath(candidate, temp_dirname)): + os.remove(candidate) + + with zipfile.ZipFile(args.file, 'w') as zip_ref: + for root, _, files in os.walk(temp_dirname): + for f in files: + realname = os.path.join(root, f) + zip_ref.write(realname, os.path.sep.join(os.path.normpath(realname).split(os.path.sep, 2)[1:])) + + +if __name__ == '__main__': + just_do_it() diff --git a/build/scripts/fix_java_command_file_cp.py b/build/scripts/fix_java_command_file_cp.py index 6497733b73..fc87048c32 100644 --- a/build/scripts/fix_java_command_file_cp.py +++ b/build/scripts/fix_java_command_file_cp.py @@ -1,34 +1,34 @@ -import sys -import os -import argparse -import subprocess -import platform - - -def fix_files(args): - args = args[:] - parser = argparse.ArgumentParser() - parser.add_argument('--build-root', default=None) - args, tail = parser.parse_known_args(args) - for idx, arg in list(enumerate(tail)): - if arg.startswith('@') and os.path.isfile(arg[1:]): - with open(arg[1:]) as f: - fixed = [i.strip() for i in f] - if args.build_root: +import sys +import os +import argparse +import subprocess +import platform + + +def fix_files(args): + args = args[:] + parser = argparse.ArgumentParser() + parser.add_argument('--build-root', default=None) + args, tail = parser.parse_known_args(args) + for idx, arg in list(enumerate(tail)): + if arg.startswith('@') and os.path.isfile(arg[1:]): + with open(arg[1:]) as f: + fixed = [i.strip() for i in f] + if args.build_root: fixed = [os.path.join(args.build_root, i) for ln in fixed for i in ln.split(os.path.pathsep)] - fixed = os.pathsep.join([i.strip() for i in fixed]) - fixed_name = list(os.path.splitext(arg)) - fixed_name[0] += '_fixed' - fixed_name = ''.join(fixed_name) - with open(fixed_name[1:], 'w') as f: - f.write(fixed) - tail[idx:idx + 1] = [fixed_name] - return tail - - -if __name__ == '__main__': - args = fix_files(sys.argv[1:]) - if platform.system() == 'Windows': - sys.exit(subprocess.Popen(args).wait()) - else: - os.execv(args[0], args) + fixed = os.pathsep.join([i.strip() for i in fixed]) + fixed_name = list(os.path.splitext(arg)) + fixed_name[0] += '_fixed' + fixed_name = ''.join(fixed_name) + with open(fixed_name[1:], 'w') as f: + f.write(fixed) + tail[idx:idx + 1] = [fixed_name] + return tail + + +if __name__ == '__main__': + args = fix_files(sys.argv[1:]) + if platform.system() == 'Windows': + sys.exit(subprocess.Popen(args).wait()) + else: + os.execv(args[0], args) diff --git a/build/scripts/fs_tools.py b/build/scripts/fs_tools.py index f6d81ca488..dec4c349c8 100644 --- a/build/scripts/fs_tools.py +++ b/build/scripts/fs_tools.py @@ -1,7 +1,7 @@ from __future__ import print_function import os -import platform +import platform import sys import shutil import errno @@ -46,29 +46,29 @@ if __name__ == '__main__': except OSError: pass shutil.copy(s, d) - elif mode == 'copy_all_files': - src = args[0] - dst = args[1] - for root, _, files in os.walk(src): - for f in files: - if os.path.islink(os.path.join(root, f)): - continue - file_dst = os.path.join(dst, os.path.relpath(root, src), f) - if os.path.exists(file_dst): - continue - try: - os.makedirs(os.path.dirname(file_dst)) - except OSError: - pass - shutil.copy(os.path.join(root, f), file_dst) + elif mode == 'copy_all_files': + src = args[0] + dst = args[1] + for root, _, files in os.walk(src): + for f in files: + if os.path.islink(os.path.join(root, f)): + continue + file_dst = os.path.join(dst, os.path.relpath(root, src), f) + if os.path.exists(file_dst): + continue + try: + os.makedirs(os.path.dirname(file_dst)) + except OSError: + pass + shutil.copy(os.path.join(root, f), file_dst) elif mode == 'rename_if_exists': if os.path.exists(args[0]): shutil.move(args[0], args[1]) elif mode == 'rename': - targetdir = os.path.dirname(args[1]) - if targetdir and not os.path.exists(targetdir): - os.makedirs(os.path.dirname(args[1])) - shutil.move(args[0], args[1]) + targetdir = os.path.dirname(args[1]) + if targetdir and not os.path.exists(targetdir): + os.makedirs(os.path.dirname(args[1])) + shutil.move(args[0], args[1]) elif mode == 'remove': for f in args: try: @@ -78,7 +78,7 @@ if __name__ == '__main__': shutil.rmtree(f) except OSError: pass - elif mode == 'link_or_copy': + elif mode == 'link_or_copy': link_or_copy(args[0], args[1]) elif mode == 'link_or_copy_to_dir': assert len(args) > 1 @@ -90,15 +90,15 @@ if __name__ == '__main__': dst = args[-1] for src in args[start:-1]: link_or_copy(src, os.path.join(dst, os.path.basename(src))) - elif mode == 'cat': - with open(args[0], 'w') as dst: - for input_name in args[1:]: - with open(input_name) as src: - dst.write(src.read()) - elif mode == 'md': - try: - os.makedirs(args[0]) - except OSError: - pass + elif mode == 'cat': + with open(args[0], 'w') as dst: + for input_name in args[1:]: + with open(input_name) as src: + dst.write(src.read()) + elif mode == 'md': + try: + os.makedirs(args[0]) + except OSError: + pass else: raise Exception('unsupported tool %s' % mode) diff --git a/build/scripts/gen_java_codenav_entry.py b/build/scripts/gen_java_codenav_entry.py index a2eb9b87fd..ff0a5c737d 100644 --- a/build/scripts/gen_java_codenav_entry.py +++ b/build/scripts/gen_java_codenav_entry.py @@ -1,57 +1,57 @@ -import argparse -import datetime -import os -import subprocess -import sys -import tarfile - - -def extract_kindexes(kindexes): - for kindex in kindexes: - with tarfile.TarFile(kindex) as tf: - for fname in [i for i in tf.getnames() if i.endswith('.kzip')]: - tf.extract(fname) - yield fname - - -def just_do_it(java, kythe, kythe_to_proto, out_name, binding_only, kindexes): - temp_out_name = out_name + '.temp' - kindex_inputs = list(extract_kindexes(kindexes)) - open(temp_out_name, 'w').close() - start = datetime.datetime.now() - for kindex in kindex_inputs: - print >> sys.stderr, '[INFO] Processing:', kindex - indexer_start = datetime.datetime.now() - p = subprocess.Popen([java, '-jar', os.path.join(kythe, 'indexers/java_indexer.jar'), kindex], stdout=subprocess.PIPE) - indexer_out, _ = p.communicate() - print >> sys.stderr, '[INFO] Indexer execution time:', (datetime.datetime.now() - indexer_start).total_seconds(), 'seconds' - if p.returncode: - raise Exception('java_indexer failed with exit code {}'.format(p.returncode)) - dedup_start = datetime.datetime.now() - p = subprocess.Popen([os.path.join(kythe, 'tools/dedup_stream')], stdin=subprocess.PIPE, stdout=subprocess.PIPE) - dedup_out, _ = p.communicate(indexer_out) - print >> sys.stderr, '[INFO] Dedup execution time:', (datetime.datetime.now() - dedup_start).total_seconds(), 'seconds' - if p.returncode: - raise Exception('dedup_stream failed with exit code {}'.format(p.returncode)) - entrystream_start = datetime.datetime.now() - p = subprocess.Popen([os.path.join(kythe, 'tools/entrystream'), '--write_json'], stdin=subprocess.PIPE, stdout=open(temp_out_name, 'a')) - p.communicate(dedup_out) - if p.returncode: - raise Exception('entrystream failed with exit code {}'.format(p.returncode)) - print >> sys.stderr, '[INFO] Entrystream execution time:', (datetime.datetime.now() - entrystream_start).total_seconds(), 'seconds' - preprocess_start = datetime.datetime.now() - subprocess.check_call([kythe_to_proto, '--preprocess-entry', '--entries', temp_out_name, '--out', out_name] + (['--only-binding-data'] if binding_only else [])) - print >> sys.stderr, '[INFO] Preprocessing execution time:', (datetime.datetime.now() - preprocess_start).total_seconds(), 'seconds' - print >> sys.stderr, '[INFO] Total execution time:', (datetime.datetime.now() - start).total_seconds(), 'seconds' - +import argparse +import datetime +import os +import subprocess +import sys +import tarfile -if __name__ == '__main__': - parser = argparse.ArgumentParser() - parser.add_argument("--java", help="java path") - parser.add_argument("--kythe", help="kythe path") - parser.add_argument("--kythe-to-proto", help="kythe_to_proto tool path") - parser.add_argument("--out-name", help="entries json out name") - parser.add_argument("--binding-only", action="store_true", default=False, help="filter only binding data") - parser.add_argument("kindexes", nargs='*') - args = parser.parse_args() - just_do_it(args.java, args.kythe, args.kythe_to_proto, args.out_name, args.binding_only, args.kindexes) + +def extract_kindexes(kindexes): + for kindex in kindexes: + with tarfile.TarFile(kindex) as tf: + for fname in [i for i in tf.getnames() if i.endswith('.kzip')]: + tf.extract(fname) + yield fname + + +def just_do_it(java, kythe, kythe_to_proto, out_name, binding_only, kindexes): + temp_out_name = out_name + '.temp' + kindex_inputs = list(extract_kindexes(kindexes)) + open(temp_out_name, 'w').close() + start = datetime.datetime.now() + for kindex in kindex_inputs: + print >> sys.stderr, '[INFO] Processing:', kindex + indexer_start = datetime.datetime.now() + p = subprocess.Popen([java, '-jar', os.path.join(kythe, 'indexers/java_indexer.jar'), kindex], stdout=subprocess.PIPE) + indexer_out, _ = p.communicate() + print >> sys.stderr, '[INFO] Indexer execution time:', (datetime.datetime.now() - indexer_start).total_seconds(), 'seconds' + if p.returncode: + raise Exception('java_indexer failed with exit code {}'.format(p.returncode)) + dedup_start = datetime.datetime.now() + p = subprocess.Popen([os.path.join(kythe, 'tools/dedup_stream')], stdin=subprocess.PIPE, stdout=subprocess.PIPE) + dedup_out, _ = p.communicate(indexer_out) + print >> sys.stderr, '[INFO] Dedup execution time:', (datetime.datetime.now() - dedup_start).total_seconds(), 'seconds' + if p.returncode: + raise Exception('dedup_stream failed with exit code {}'.format(p.returncode)) + entrystream_start = datetime.datetime.now() + p = subprocess.Popen([os.path.join(kythe, 'tools/entrystream'), '--write_json'], stdin=subprocess.PIPE, stdout=open(temp_out_name, 'a')) + p.communicate(dedup_out) + if p.returncode: + raise Exception('entrystream failed with exit code {}'.format(p.returncode)) + print >> sys.stderr, '[INFO] Entrystream execution time:', (datetime.datetime.now() - entrystream_start).total_seconds(), 'seconds' + preprocess_start = datetime.datetime.now() + subprocess.check_call([kythe_to_proto, '--preprocess-entry', '--entries', temp_out_name, '--out', out_name] + (['--only-binding-data'] if binding_only else [])) + print >> sys.stderr, '[INFO] Preprocessing execution time:', (datetime.datetime.now() - preprocess_start).total_seconds(), 'seconds' + print >> sys.stderr, '[INFO] Total execution time:', (datetime.datetime.now() - start).total_seconds(), 'seconds' + + +if __name__ == '__main__': + parser = argparse.ArgumentParser() + parser.add_argument("--java", help="java path") + parser.add_argument("--kythe", help="kythe path") + parser.add_argument("--kythe-to-proto", help="kythe_to_proto tool path") + parser.add_argument("--out-name", help="entries json out name") + parser.add_argument("--binding-only", action="store_true", default=False, help="filter only binding data") + parser.add_argument("kindexes", nargs='*') + args = parser.parse_args() + just_do_it(args.java, args.kythe, args.kythe_to_proto, args.out_name, args.binding_only, args.kindexes) diff --git a/build/scripts/gen_java_codenav_protobuf.py b/build/scripts/gen_java_codenav_protobuf.py index 335c0fc888..aee8cfe6c3 100644 --- a/build/scripts/gen_java_codenav_protobuf.py +++ b/build/scripts/gen_java_codenav_protobuf.py @@ -1,22 +1,22 @@ -import argparse -import os - - -def just_do_it(kythe_to_proto, entries, out_name, build_file, source_root): - with open(build_file) as f: - classpath = os.pathsep.join([line.strip() for line in f]) - os.execv( - kythe_to_proto, - [kythe_to_proto, '--sources-rel-root', 'fake_arcadia_root', '--entries', entries, '--out', out_name, '--classpath', classpath, '--arcadia-root', source_root] - ) - - -if __name__ == '__main__': - parser = argparse.ArgumentParser() - parser.add_argument("--kythe-to-proto", help="kythe_to_proto tool path") - parser.add_argument("--entries", help="entries json path") - parser.add_argument("--out-name", help="protbuf out name") - parser.add_argument("--build-file", help="build file( containing classpath )") - parser.add_argument("--source-root", help="source root") - args = parser.parse_args() - just_do_it(args.kythe_to_proto, args.entries, args.out_name, args.build_file, args.source_root) +import argparse +import os + + +def just_do_it(kythe_to_proto, entries, out_name, build_file, source_root): + with open(build_file) as f: + classpath = os.pathsep.join([line.strip() for line in f]) + os.execv( + kythe_to_proto, + [kythe_to_proto, '--sources-rel-root', 'fake_arcadia_root', '--entries', entries, '--out', out_name, '--classpath', classpath, '--arcadia-root', source_root] + ) + + +if __name__ == '__main__': + parser = argparse.ArgumentParser() + parser.add_argument("--kythe-to-proto", help="kythe_to_proto tool path") + parser.add_argument("--entries", help="entries json path") + parser.add_argument("--out-name", help="protbuf out name") + parser.add_argument("--build-file", help="build file( containing classpath )") + parser.add_argument("--source-root", help="source root") + args = parser.parse_args() + just_do_it(args.kythe_to_proto, args.entries, args.out_name, args.build_file, args.source_root) diff --git a/build/scripts/gen_swiftc_output_map.py b/build/scripts/gen_swiftc_output_map.py index 6162edea22..01ce85f256 100644 --- a/build/scripts/gen_swiftc_output_map.py +++ b/build/scripts/gen_swiftc_output_map.py @@ -1,15 +1,15 @@ -import json -import sys - - -def just_do_it(args): - source_root, build_root, out_file, srcs = args[0], args[1], args[2], args[3:] - assert(len(srcs)) - result_obj = {} - for src in srcs: - result_obj[src] = {'object': src.replace(source_root, build_root) + '.o'} - with open(out_file, 'w') as of: - of.write(json.dumps(result_obj)) - -if __name__ == '__main__': - just_do_it(sys.argv[1:]) +import json +import sys + + +def just_do_it(args): + source_root, build_root, out_file, srcs = args[0], args[1], args[2], args[3:] + assert(len(srcs)) + result_obj = {} + for src in srcs: + result_obj[src] = {'object': src.replace(source_root, build_root) + '.o'} + with open(out_file, 'w') as of: + of.write(json.dumps(result_obj)) + +if __name__ == '__main__': + just_do_it(sys.argv[1:]) diff --git a/build/scripts/generate_mf.py b/build/scripts/generate_mf.py index aa28d0b349..a44a969980 100644 --- a/build/scripts/generate_mf.py +++ b/build/scripts/generate_mf.py @@ -3,7 +3,7 @@ import logging import optparse import os import sys -import io +import io import process_command_files as pcf @@ -24,15 +24,15 @@ def process_quotes(s): def parse_args(): args = pcf.get_args(sys.argv[1:]) - lics, peers, free_args, credits = [], [], [], [] + lics, peers, free_args, credits = [], [], [], [] current_list = free_args for a in args: if a == '-Ya,lics': current_list = lics elif a == '-Ya,peers': current_list = peers - elif a == '-Ya,credits': - current_list = credits + elif a == '-Ya,credits': + current_list = credits elif a and a.startswith('-'): current_list = free_args current_list.append(a) @@ -43,26 +43,26 @@ def parse_args(): parser.add_option('--build-root') parser.add_option('--module-name') parser.add_option('-o', '--output') - parser.add_option('-c', '--credits-output') + parser.add_option('-c', '--credits-output') parser.add_option('-t', '--type') opts, _ = parser.parse_args(free_args) - return lics, peers, credits, opts, + return lics, peers, credits, opts, + + +def generate_header(meta): + return '-' * 20 + meta.get('path', 'Unknown module') + '-' * 20 -def generate_header(meta): - return '-' * 20 + meta.get('path', 'Unknown module') + '-' * 20 - - def generate_mf(): - lics, peers, credits, options = parse_args() + lics, peers, credits, options = parse_args() - meta = { - 'module_name': options.module_name, - 'path': os.path.dirname(options.output), - 'licenses': lics, - 'dependencies': [], - 'license_texts': '' - } + meta = { + 'module_name': options.module_name, + 'path': os.path.dirname(options.output), + 'licenses': lics, + 'dependencies': [], + 'license_texts': '' + } build_root = options.build_root file_name = os.path.join(build_root, options.output) @@ -73,34 +73,34 @@ def generate_mf(): peer_meta = json.load(peer_file) meta['dependencies'].append(peer_meta) - if credits: - union_texts = [] - for texts_file in credits: + if credits: + union_texts = [] + for texts_file in credits: with open(process_quotes(texts_file)) as f: - union_texts.append(f.read()) - meta['license_texts'] = '\n\n'.join(union_texts) - - if options.credits_output: - final_credits = [] - if meta['license_texts']: - final_credits.append(generate_header(meta) + '\n' + meta['license_texts']) - for peer in peers: - candidate = os.path.join(build_root, peer + '.mf') - with open(candidate) as src: - data = json.loads(src.read()) - texts = data.get('license_texts') - if texts: - candidate_text = generate_header(data) + '\n' + texts - if isinstance(candidate_text, unicode): - candidate_text = candidate_text.encode('utf-8') - final_credits.append(candidate_text) - - with io.open(options.credits_output, 'w', encoding='utf-8') as f: - data = '\n\n'.join(final_credits) - if isinstance(data, str): - data = data.decode('utf-8') - f.write(data) - + union_texts.append(f.read()) + meta['license_texts'] = '\n\n'.join(union_texts) + + if options.credits_output: + final_credits = [] + if meta['license_texts']: + final_credits.append(generate_header(meta) + '\n' + meta['license_texts']) + for peer in peers: + candidate = os.path.join(build_root, peer + '.mf') + with open(candidate) as src: + data = json.loads(src.read()) + texts = data.get('license_texts') + if texts: + candidate_text = generate_header(data) + '\n' + texts + if isinstance(candidate_text, unicode): + candidate_text = candidate_text.encode('utf-8') + final_credits.append(candidate_text) + + with io.open(options.credits_output, 'w', encoding='utf-8') as f: + data = '\n\n'.join(final_credits) + if isinstance(data, str): + data = data.decode('utf-8') + f.write(data) + with open(file_name, 'w') as mf_file: json.dump(meta, mf_file, indent=4) diff --git a/build/scripts/generate_pom.py b/build/scripts/generate_pom.py index 95d718b776..200caebc0b 100644 --- a/build/scripts/generate_pom.py +++ b/build/scripts/generate_pom.py @@ -1,10 +1,10 @@ import sys import xml.etree.ElementTree as et import argparse -import os -import json -import base64 -import re +import os +import json +import base64 +import re DEFAULT_YANDEX_GROUP_ID = 'ru.yandex' @@ -18,53 +18,53 @@ MAVEN_PLUGIN_ARTIFACT_ID = 'maven-compiler-plugin' MAVEN_PLUGIN_VERSION = '3.3' JAVA_LANGUAGE_LEVEL = '1.8' -MAVEN_BUILD_HELPER_GROUP_ID = 'org.codehaus.mojo' -MAVEN_BUILD_HELPER_ARTIFACT_ID = 'build-helper-maven-plugin' -MAVEN_BUILD_HELPER_VERSION = '1.9.1' - -MAVEN_EXEC_GROUP_ID = 'org.codehaus.mojo' -MAVEN_EXEC_ARTIFACT_ID = 'exec-maven-plugin' -MAVEN_EXEC_VERSION = '1.5.0' - -MAVEN_SUREFIRE_GROUP_ID = 'org.apache.maven.plugins' -MAVEN_SUREFIRE_ARTIFACT_ID = 'maven-surefire-plugin' -MAVEN_SUREFIRE_VERSION = '2.12.2' - - +MAVEN_BUILD_HELPER_GROUP_ID = 'org.codehaus.mojo' +MAVEN_BUILD_HELPER_ARTIFACT_ID = 'build-helper-maven-plugin' +MAVEN_BUILD_HELPER_VERSION = '1.9.1' + +MAVEN_EXEC_GROUP_ID = 'org.codehaus.mojo' +MAVEN_EXEC_ARTIFACT_ID = 'exec-maven-plugin' +MAVEN_EXEC_VERSION = '1.5.0' + +MAVEN_SUREFIRE_GROUP_ID = 'org.apache.maven.plugins' +MAVEN_SUREFIRE_ARTIFACT_ID = 'maven-surefire-plugin' +MAVEN_SUREFIRE_VERSION = '2.12.2' + + def target_from_contrib(target_path): return target_path.startswith('contrib') -def split_artifacts(s): - m = re.match('^([^:]*:[^:]*:[^:]*:[^:]*)(.*)$', s) - if not m or not m.groups(): - return [] - if not m.groups()[1].startswith('::'): - return [m.groups()[0]] - return [m.groups()[0]] + m.groups()[1].split('::')[1:] - - -def build_pom_and_export_to_maven(**kwargs): - target_path = kwargs.get('target_path') - target = kwargs.get('target') - pom_path = kwargs.get('pom_path') - source_dirs = kwargs.get('source_dirs') - output_dir = kwargs.get('output_dir') - final_name = kwargs.get('final_name') - packaging = kwargs.get('packaging') - target_dependencies = kwargs.get('target_dependencies') - test_target_dependencies = kwargs.get('test_target_dependencies') - test_target_dependencies_exclude = kwargs.get('test_target_dependencies_exclude') - modules_path = kwargs.get('modules_path') - prop_vars = kwargs.get('properties') - external_jars = kwargs.get('external_jars') - resources = kwargs.get('resources') - run_java_programs = [json.loads(base64.b64decode(i)) for i in kwargs.get('run_java_programs')] - test_source_dirs = kwargs.get('test_source_dirs') - test_resource_dirs = kwargs.get('test_resource_dirs') - - modules = [] - +def split_artifacts(s): + m = re.match('^([^:]*:[^:]*:[^:]*:[^:]*)(.*)$', s) + if not m or not m.groups(): + return [] + if not m.groups()[1].startswith('::'): + return [m.groups()[0]] + return [m.groups()[0]] + m.groups()[1].split('::')[1:] + + +def build_pom_and_export_to_maven(**kwargs): + target_path = kwargs.get('target_path') + target = kwargs.get('target') + pom_path = kwargs.get('pom_path') + source_dirs = kwargs.get('source_dirs') + output_dir = kwargs.get('output_dir') + final_name = kwargs.get('final_name') + packaging = kwargs.get('packaging') + target_dependencies = kwargs.get('target_dependencies') + test_target_dependencies = kwargs.get('test_target_dependencies') + test_target_dependencies_exclude = kwargs.get('test_target_dependencies_exclude') + modules_path = kwargs.get('modules_path') + prop_vars = kwargs.get('properties') + external_jars = kwargs.get('external_jars') + resources = kwargs.get('resources') + run_java_programs = [json.loads(base64.b64decode(i)) for i in kwargs.get('run_java_programs')] + test_source_dirs = kwargs.get('test_source_dirs') + test_resource_dirs = kwargs.get('test_resource_dirs') + + modules = [] + def _indent(elem, level=0): ind = "\n" + level * " " if len(elem): @@ -91,49 +91,49 @@ def build_pom_and_export_to_maven(**kwargs): et.SubElement(project, 'groupId').text = group_id et.SubElement(project, 'artifactId').text = artifact_id et.SubElement(project, 'version').text = version - et.SubElement(project, 'packaging').text = packaging + et.SubElement(project, 'packaging').text = packaging properties = et.SubElement(project, 'properties') et.SubElement(properties, 'project.build.sourceEncoding').text = 'UTF-8' - if prop_vars: - for property, value in json.loads(base64.b64decode(prop_vars)).items(): - et.SubElement(properties, property).text = value - - if modules_path: - with open(modules_path) as f: - modules = [i.strip() for i in f if i.strip()] - - if modules: - modules_el = et.SubElement(project, 'modules') - for module in modules: - et.SubElement(modules_el, 'module').text = module - - build = et.SubElement(project, 'build') - if source_dirs: - et.SubElement(build, 'sourceDirectory').text = source_dirs[0] - source_dirs = source_dirs[1:] - if test_source_dirs: - et.SubElement(build, 'testSourceDirectory').text = test_source_dirs[0] - test_source_dirs = test_source_dirs[1:] - if output_dir: - et.SubElement(build, 'outputDirectory').text = output_dir - if final_name: - et.SubElement(build, 'finalName').text = final_name - if resources: - resource_element = et.SubElement(et.SubElement(build, 'resources'), 'resource') - et.SubElement(resource_element, 'directory').text = '${basedir}' - includes = et.SubElement(resource_element, 'includes') - for resource in resources: - et.SubElement(includes, 'include').text = resource - if test_resource_dirs: - test_resource_element = et.SubElement(build, 'testResources') - for test_resource_dir in test_resource_dirs: - et.SubElement(et.SubElement(test_resource_element, 'testResource'), 'directory').text = '${basedir}' + (('/' + test_resource_dir) if test_resource_dir != '.' else '') - - plugins = et.SubElement(build, 'plugins') - - if packaging != 'pom': + if prop_vars: + for property, value in json.loads(base64.b64decode(prop_vars)).items(): + et.SubElement(properties, property).text = value + + if modules_path: + with open(modules_path) as f: + modules = [i.strip() for i in f if i.strip()] + + if modules: + modules_el = et.SubElement(project, 'modules') + for module in modules: + et.SubElement(modules_el, 'module').text = module + + build = et.SubElement(project, 'build') + if source_dirs: + et.SubElement(build, 'sourceDirectory').text = source_dirs[0] + source_dirs = source_dirs[1:] + if test_source_dirs: + et.SubElement(build, 'testSourceDirectory').text = test_source_dirs[0] + test_source_dirs = test_source_dirs[1:] + if output_dir: + et.SubElement(build, 'outputDirectory').text = output_dir + if final_name: + et.SubElement(build, 'finalName').text = final_name + if resources: + resource_element = et.SubElement(et.SubElement(build, 'resources'), 'resource') + et.SubElement(resource_element, 'directory').text = '${basedir}' + includes = et.SubElement(resource_element, 'includes') + for resource in resources: + et.SubElement(includes, 'include').text = resource + if test_resource_dirs: + test_resource_element = et.SubElement(build, 'testResources') + for test_resource_dir in test_resource_dirs: + et.SubElement(et.SubElement(test_resource_element, 'testResource'), 'directory').text = '${basedir}' + (('/' + test_resource_dir) if test_resource_dir != '.' else '') + + plugins = et.SubElement(build, 'plugins') + + if packaging != 'pom': maven_plugin = et.SubElement(plugins, 'plugin') et.SubElement(maven_plugin, 'groupId').text = MAVEN_PLUGIN_GROUP_ID et.SubElement(maven_plugin, 'artifactId').text = MAVEN_PLUGIN_ARTIFACT_ID @@ -142,134 +142,134 @@ def build_pom_and_export_to_maven(**kwargs): et.SubElement(configuration, 'source').text = JAVA_LANGUAGE_LEVEL et.SubElement(configuration, 'target').text = JAVA_LANGUAGE_LEVEL - if source_dirs or external_jars or test_source_dirs: - build_helper_plugin = et.SubElement(plugins, 'plugin') - et.SubElement(build_helper_plugin, 'groupId').text = MAVEN_BUILD_HELPER_GROUP_ID - et.SubElement(build_helper_plugin, 'artifactId').text = MAVEN_BUILD_HELPER_ARTIFACT_ID - et.SubElement(build_helper_plugin, 'version').text = MAVEN_BUILD_HELPER_VERSION - executions = et.SubElement(build_helper_plugin, 'executions') - if source_dirs: - execution = et.SubElement(executions, 'execution') - et.SubElement(execution, 'id').text = 'add-source' - et.SubElement(execution, 'phase').text = 'generate-sources' - et.SubElement(et.SubElement(execution, 'goals'), 'goal').text = 'add-source' - sources = et.SubElement(et.SubElement(execution, 'configuration'), 'sources') - for source_dir in source_dirs: - et.SubElement(sources, 'source').text = source_dir - if external_jars: - execution = et.SubElement(executions, 'execution') - et.SubElement(execution, 'id').text = 'attach-artifacts' - et.SubElement(execution, 'phase').text = 'generate-sources' - et.SubElement(et.SubElement(execution, 'goals'), 'goal').text = 'attach-artifact' - artifacts = et.SubElement(et.SubElement(execution, 'configuration'), 'artifacts') - for external_jar in external_jars: - external_artifact = et.SubElement(artifacts, 'artifact') - et.SubElement(external_artifact, 'file').text = '${basedir}/' + external_jar - et.SubElement(external_artifact, 'type').text = 'jar' - if test_source_dirs: - execution = et.SubElement(executions, 'execution') - et.SubElement(execution, 'id').text = 'add-test-source' - et.SubElement(execution, 'phase').text = 'generate-test-sources' - et.SubElement(et.SubElement(execution, 'goals'), 'goal').text = 'add-test-source' - sources = et.SubElement(et.SubElement(execution, 'configuration'), 'sources') - for source_dir in source_dirs: - et.SubElement(sources, 'source').text = source_dir - - if run_java_programs: - exec_plugin = et.SubElement(plugins, 'plugin') - et.SubElement(exec_plugin, 'groupId').text = MAVEN_EXEC_GROUP_ID - et.SubElement(exec_plugin, 'artifactId').text = MAVEN_EXEC_ARTIFACT_ID - et.SubElement(exec_plugin, 'version').text = MAVEN_EXEC_VERSION - jp_dependencies = et.SubElement(exec_plugin, 'dependencies') - executions = et.SubElement(exec_plugin, 'executions') - for java_program in run_java_programs: - execution = et.SubElement(executions, 'execution') - et.SubElement(execution, 'phase').text = 'generate-sources' - et.SubElement(et.SubElement(execution, 'goals'), 'goal').text = 'java' - jp_configuration = et.SubElement(execution, 'configuration') - main_cls, args = None, [] - for word in java_program['cmd']: - if not main_cls and not word.startswith('-'): - main_cls = word - else: - args.append(word) - et.SubElement(jp_configuration, 'mainClass').text = main_cls - et.SubElement(jp_configuration, 'includePluginDependencies').text = 'true' - et.SubElement(jp_configuration, 'includeProjectDependencies').text = 'false' - if args: - jp_arguments = et.SubElement(jp_configuration, 'arguments') - for arg in args: - et.SubElement(jp_arguments, 'argument').text = arg - if java_program['deps']: - for jp_dep in java_program['deps']: - jp_dependency = et.SubElement(jp_dependencies, 'dependency') - jp_g, jp_a, jp_v = jp_dep.split(':') - et.SubElement(jp_dependency, 'groupId').text = jp_g - et.SubElement(jp_dependency, 'artifactId').text = jp_a - et.SubElement(jp_dependency, 'version').text = jp_v - et.SubElement(jp_dependency, 'type').text = 'jar' - - if target_dependencies + test_target_dependencies: - dependencies = et.SubElement(project, 'dependencies') - for target_dependency in target_dependencies + test_target_dependencies: - dependency = et.SubElement(dependencies, 'dependency') - dependency_info = split_artifacts(target_dependency) - - group_id, artifact_id, version, classifier = dependency_info[0].split(':') - - et.SubElement(dependency, 'groupId').text = group_id - et.SubElement(dependency, 'artifactId').text = artifact_id - et.SubElement(dependency, 'version').text = version - if classifier: - et.SubElement(dependency, 'classifier').text = classifier - if target_dependency in test_target_dependencies: - et.SubElement(dependency, 'scope').text = 'test' - - if len(dependency_info) > 1: - exclusions = et.SubElement(dependency, 'exclusions') - for exclude in dependency_info[1:]: - group_id, artifact_id = exclude.split(':') - exclusion_el = et.SubElement(exclusions, 'exclusion') - et.SubElement(exclusion_el, 'groupId').text = group_id - et.SubElement(exclusion_el, 'artifactId').text = artifact_id - - if test_target_dependencies_exclude: - surefire_plugin = et.SubElement(plugins, 'plugin') - et.SubElement(surefire_plugin, 'groupId').text = MAVEN_SUREFIRE_GROUP_ID - et.SubElement(surefire_plugin, 'artifactId').text = MAVEN_SUREFIRE_ARTIFACT_ID - et.SubElement(surefire_plugin, 'version').text = MAVEN_SUREFIRE_VERSION - classpath_excludes = et.SubElement(et.SubElement(surefire_plugin, 'configuration'), 'classpathDependencyExcludes') - for classpath_exclude in test_target_dependencies_exclude: - et.SubElement(classpath_excludes, 'classpathDependencyExclude').text = classpath_exclude - + if source_dirs or external_jars or test_source_dirs: + build_helper_plugin = et.SubElement(plugins, 'plugin') + et.SubElement(build_helper_plugin, 'groupId').text = MAVEN_BUILD_HELPER_GROUP_ID + et.SubElement(build_helper_plugin, 'artifactId').text = MAVEN_BUILD_HELPER_ARTIFACT_ID + et.SubElement(build_helper_plugin, 'version').text = MAVEN_BUILD_HELPER_VERSION + executions = et.SubElement(build_helper_plugin, 'executions') + if source_dirs: + execution = et.SubElement(executions, 'execution') + et.SubElement(execution, 'id').text = 'add-source' + et.SubElement(execution, 'phase').text = 'generate-sources' + et.SubElement(et.SubElement(execution, 'goals'), 'goal').text = 'add-source' + sources = et.SubElement(et.SubElement(execution, 'configuration'), 'sources') + for source_dir in source_dirs: + et.SubElement(sources, 'source').text = source_dir + if external_jars: + execution = et.SubElement(executions, 'execution') + et.SubElement(execution, 'id').text = 'attach-artifacts' + et.SubElement(execution, 'phase').text = 'generate-sources' + et.SubElement(et.SubElement(execution, 'goals'), 'goal').text = 'attach-artifact' + artifacts = et.SubElement(et.SubElement(execution, 'configuration'), 'artifacts') + for external_jar in external_jars: + external_artifact = et.SubElement(artifacts, 'artifact') + et.SubElement(external_artifact, 'file').text = '${basedir}/' + external_jar + et.SubElement(external_artifact, 'type').text = 'jar' + if test_source_dirs: + execution = et.SubElement(executions, 'execution') + et.SubElement(execution, 'id').text = 'add-test-source' + et.SubElement(execution, 'phase').text = 'generate-test-sources' + et.SubElement(et.SubElement(execution, 'goals'), 'goal').text = 'add-test-source' + sources = et.SubElement(et.SubElement(execution, 'configuration'), 'sources') + for source_dir in source_dirs: + et.SubElement(sources, 'source').text = source_dir + + if run_java_programs: + exec_plugin = et.SubElement(plugins, 'plugin') + et.SubElement(exec_plugin, 'groupId').text = MAVEN_EXEC_GROUP_ID + et.SubElement(exec_plugin, 'artifactId').text = MAVEN_EXEC_ARTIFACT_ID + et.SubElement(exec_plugin, 'version').text = MAVEN_EXEC_VERSION + jp_dependencies = et.SubElement(exec_plugin, 'dependencies') + executions = et.SubElement(exec_plugin, 'executions') + for java_program in run_java_programs: + execution = et.SubElement(executions, 'execution') + et.SubElement(execution, 'phase').text = 'generate-sources' + et.SubElement(et.SubElement(execution, 'goals'), 'goal').text = 'java' + jp_configuration = et.SubElement(execution, 'configuration') + main_cls, args = None, [] + for word in java_program['cmd']: + if not main_cls and not word.startswith('-'): + main_cls = word + else: + args.append(word) + et.SubElement(jp_configuration, 'mainClass').text = main_cls + et.SubElement(jp_configuration, 'includePluginDependencies').text = 'true' + et.SubElement(jp_configuration, 'includeProjectDependencies').text = 'false' + if args: + jp_arguments = et.SubElement(jp_configuration, 'arguments') + for arg in args: + et.SubElement(jp_arguments, 'argument').text = arg + if java_program['deps']: + for jp_dep in java_program['deps']: + jp_dependency = et.SubElement(jp_dependencies, 'dependency') + jp_g, jp_a, jp_v = jp_dep.split(':') + et.SubElement(jp_dependency, 'groupId').text = jp_g + et.SubElement(jp_dependency, 'artifactId').text = jp_a + et.SubElement(jp_dependency, 'version').text = jp_v + et.SubElement(jp_dependency, 'type').text = 'jar' + + if target_dependencies + test_target_dependencies: + dependencies = et.SubElement(project, 'dependencies') + for target_dependency in target_dependencies + test_target_dependencies: + dependency = et.SubElement(dependencies, 'dependency') + dependency_info = split_artifacts(target_dependency) + + group_id, artifact_id, version, classifier = dependency_info[0].split(':') + + et.SubElement(dependency, 'groupId').text = group_id + et.SubElement(dependency, 'artifactId').text = artifact_id + et.SubElement(dependency, 'version').text = version + if classifier: + et.SubElement(dependency, 'classifier').text = classifier + if target_dependency in test_target_dependencies: + et.SubElement(dependency, 'scope').text = 'test' + + if len(dependency_info) > 1: + exclusions = et.SubElement(dependency, 'exclusions') + for exclude in dependency_info[1:]: + group_id, artifact_id = exclude.split(':') + exclusion_el = et.SubElement(exclusions, 'exclusion') + et.SubElement(exclusion_el, 'groupId').text = group_id + et.SubElement(exclusion_el, 'artifactId').text = artifact_id + + if test_target_dependencies_exclude: + surefire_plugin = et.SubElement(plugins, 'plugin') + et.SubElement(surefire_plugin, 'groupId').text = MAVEN_SUREFIRE_GROUP_ID + et.SubElement(surefire_plugin, 'artifactId').text = MAVEN_SUREFIRE_ARTIFACT_ID + et.SubElement(surefire_plugin, 'version').text = MAVEN_SUREFIRE_VERSION + classpath_excludes = et.SubElement(et.SubElement(surefire_plugin, 'configuration'), 'classpathDependencyExcludes') + for classpath_exclude in test_target_dependencies_exclude: + et.SubElement(classpath_excludes, 'classpathDependencyExclude').text = classpath_exclude + et.register_namespace('', DEFAULT_NAMESPACE) et.register_namespace('xsi', XSI_NAMESPACE) _indent(project) et.ElementTree(project).write(pom_path) - sys.stderr.write("[MAVEN EXPORT] Generated {} file for target {}\n".format(os.path.basename(pom_path), target_path)) + sys.stderr.write("[MAVEN EXPORT] Generated {} file for target {}\n".format(os.path.basename(pom_path), target_path)) if __name__ == '__main__': parser = argparse.ArgumentParser() - parser.add_argument('--target-path', action='store', default='') - parser.add_argument('--target', action='store') - parser.add_argument('--pom-path', action='store') - parser.add_argument('--source-dirs', action='append', default=[]) - parser.add_argument('--external-jars', action='append', default=[]) - parser.add_argument('--resources', action='append', default=[]) - parser.add_argument('--run-java-programs', action='append', default=[]) - parser.add_argument('--output-dir') - parser.add_argument('--final-name') - parser.add_argument('--packaging', default='jar') - parser.add_argument('--target-dependencies', action='append', default=[]) - parser.add_argument('--test-target-dependencies', action='append', default=[]) - parser.add_argument('--test-target-dependencies-exclude', action='append', default=[]) - parser.add_argument('--modules-path', action='store') - parser.add_argument('--properties') - parser.add_argument('--test-source-dirs', action='append', default=[]) - parser.add_argument('--test-resource-dirs', action='append', default=[]) + parser.add_argument('--target-path', action='store', default='') + parser.add_argument('--target', action='store') + parser.add_argument('--pom-path', action='store') + parser.add_argument('--source-dirs', action='append', default=[]) + parser.add_argument('--external-jars', action='append', default=[]) + parser.add_argument('--resources', action='append', default=[]) + parser.add_argument('--run-java-programs', action='append', default=[]) + parser.add_argument('--output-dir') + parser.add_argument('--final-name') + parser.add_argument('--packaging', default='jar') + parser.add_argument('--target-dependencies', action='append', default=[]) + parser.add_argument('--test-target-dependencies', action='append', default=[]) + parser.add_argument('--test-target-dependencies-exclude', action='append', default=[]) + parser.add_argument('--modules-path', action='store') + parser.add_argument('--properties') + parser.add_argument('--test-source-dirs', action='append', default=[]) + parser.add_argument('--test-resource-dirs', action='append', default=[]) args = parser.parse_args() - build_pom_and_export_to_maven(**vars(args)) + build_pom_and_export_to_maven(**vars(args)) diff --git a/build/scripts/go_tool.py b/build/scripts/go_tool.py index 7ee1550241..c1e98b20c0 100644 --- a/build/scripts/go_tool.py +++ b/build/scripts/go_tool.py @@ -796,9 +796,9 @@ if __name__ == '__main__': parser.add_argument('++output-root', required=True) parser.add_argument('++toolchain-root', required=True) parser.add_argument('++host-os', choices=['linux', 'darwin', 'windows'], required=True) - parser.add_argument('++host-arch', choices=['amd64', 'arm64'], required=True) + parser.add_argument('++host-arch', choices=['amd64', 'arm64'], required=True) parser.add_argument('++targ-os', choices=['linux', 'darwin', 'windows'], required=True) - parser.add_argument('++targ-arch', choices=['amd64', 'x86', 'arm64'], required=True) + parser.add_argument('++targ-arch', choices=['amd64', 'x86', 'arm64'], required=True) parser.add_argument('++peers', nargs='*') parser.add_argument('++non-local-peers', nargs='*') parser.add_argument('++cgo-peers', nargs='*') diff --git a/build/scripts/ios_wrapper.py b/build/scripts/ios_wrapper.py index 0d6d1d231f..d3aa48387a 100644 --- a/build/scripts/ios_wrapper.py +++ b/build/scripts/ios_wrapper.py @@ -1,180 +1,180 @@ -import errno -import json -import os -import shutil -import subprocess -import sys -import tarfile -import plistlib - - -def ensure_dir(path): - try: - os.makedirs(path) - except OSError as e: - if e.errno != errno.EEXIST or not os.path.isdir(path): - raise - - -def just_do_it(args): - if not args: - raise Exception('Not enough args!') - parts = [[]] - for arg in args: - if arg == '__DELIM__': - parts.append([]) - else: - parts[-1].append(arg) - if len(parts) != 3 or len(parts[0]) != 5: - raise Exception('Bad call') +import errno +import json +import os +import shutil +import subprocess +import sys +import tarfile +import plistlib + + +def ensure_dir(path): + try: + os.makedirs(path) + except OSError as e: + if e.errno != errno.EEXIST or not os.path.isdir(path): + raise + + +def just_do_it(args): + if not args: + raise Exception('Not enough args!') + parts = [[]] + for arg in args: + if arg == '__DELIM__': + parts.append([]) + else: + parts[-1].append(arg) + if len(parts) != 3 or len(parts[0]) != 5: + raise Exception('Bad call') bin_name, ibtool_path, main_out, app_name, module_dir = parts[0] - bin_name = os.path.basename(bin_name) - inputs, storyboard_user_flags = parts[1:] - plists, storyboards, signs, nibs, resources, signed_resources, plist_jsons, strings = [], [], [], [], [], [], [], [] - for i in inputs: - if i.endswith('.plist') or i.endswith('.partial_plist'): - plists.append(i) - elif i.endswith('.compiled_storyboard_tar'): - storyboards.append(i) - elif i.endswith('.xcent'): - signs.append(i) - elif i.endswith('.nib'): - nibs.append(i) - elif i.endswith('.resource_tar'): - resources.append(i) - elif i.endswith('.signed_resource_tar'): - signed_resources.append(i) - elif i.endswith('.plist_json'): - plist_jsons.append(i) - elif i.endswith('.strings_tar'): - strings.append(i) - else: - print >> sys.stderr, 'Unknown input:', i, 'ignoring' - if not plists: - raise Exception("Can't find plist files") - if not plists[0].endswith('.plist'): - print >> sys.stderr, "Main plist file can be defined incorretly" - if not storyboards: - print >> sys.stderr, "Storyboards list are empty" - if len(signs) > 1: - raise Exception("Too many .xcent files") - app_dir = os.path.join(module_dir, app_name + '.app') - ensure_dir(app_dir) - copy_nibs(nibs, module_dir, app_dir) - replaced_parameters = { - 'DEVELOPMENT_LANGUAGE': 'en', - 'EXECUTABLE_NAME': bin_name, - 'PRODUCT_BUNDLE_IDENTIFIER': 'Yandex.' + app_name, - 'PRODUCT_NAME': app_name, - } - replaced_templates = {} - for plist_json in plist_jsons: - with open(plist_json) as jsonfile: - for k, v in json.loads(jsonfile.read()).items(): - replaced_parameters[k] = v - for k, v in replaced_parameters.items(): - replaced_templates['$(' + k + ')'] = v - replaced_templates['${' + k + '}'] = v - make_main_plist(plists, os.path.join(app_dir, 'Info.plist'), replaced_templates) + bin_name = os.path.basename(bin_name) + inputs, storyboard_user_flags = parts[1:] + plists, storyboards, signs, nibs, resources, signed_resources, plist_jsons, strings = [], [], [], [], [], [], [], [] + for i in inputs: + if i.endswith('.plist') or i.endswith('.partial_plist'): + plists.append(i) + elif i.endswith('.compiled_storyboard_tar'): + storyboards.append(i) + elif i.endswith('.xcent'): + signs.append(i) + elif i.endswith('.nib'): + nibs.append(i) + elif i.endswith('.resource_tar'): + resources.append(i) + elif i.endswith('.signed_resource_tar'): + signed_resources.append(i) + elif i.endswith('.plist_json'): + plist_jsons.append(i) + elif i.endswith('.strings_tar'): + strings.append(i) + else: + print >> sys.stderr, 'Unknown input:', i, 'ignoring' + if not plists: + raise Exception("Can't find plist files") + if not plists[0].endswith('.plist'): + print >> sys.stderr, "Main plist file can be defined incorretly" + if not storyboards: + print >> sys.stderr, "Storyboards list are empty" + if len(signs) > 1: + raise Exception("Too many .xcent files") + app_dir = os.path.join(module_dir, app_name + '.app') + ensure_dir(app_dir) + copy_nibs(nibs, module_dir, app_dir) + replaced_parameters = { + 'DEVELOPMENT_LANGUAGE': 'en', + 'EXECUTABLE_NAME': bin_name, + 'PRODUCT_BUNDLE_IDENTIFIER': 'Yandex.' + app_name, + 'PRODUCT_NAME': app_name, + } + replaced_templates = {} + for plist_json in plist_jsons: + with open(plist_json) as jsonfile: + for k, v in json.loads(jsonfile.read()).items(): + replaced_parameters[k] = v + for k, v in replaced_parameters.items(): + replaced_templates['$(' + k + ')'] = v + replaced_templates['${' + k + '}'] = v + make_main_plist(plists, os.path.join(app_dir, 'Info.plist'), replaced_templates) link_storyboards(ibtool_path, storyboards, app_name, app_dir, storyboard_user_flags) - if resources: - extract_resources(resources, app_dir) - if signed_resources: - extract_resources(signed_resources, app_dir, sign=True) - if strings: - extract_resources(strings, app_dir, strings=True) - if not signs: - sign_file = os.path.join(module_dir, app_name + '.xcent') - with open(sign_file, 'w') as f: - f.write('''<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> -<plist version="1.0"> -<dict> - <key>com.apple.security.get-task-allow</key> - <true/> -</dict> -</plist> - ''') - else: - sign_file = signs[0] - sign_application(sign_file, app_dir) - make_archive(app_dir, main_out) - - -def is_exe(fpath): - return os.path.isfile(fpath) and os.access(fpath, os.X_OK) - - -def copy_nibs(nibs, module_dir, app_dir): - for nib in nibs: - dst = os.path.join(app_dir, os.path.relpath(nib, module_dir)) - ensure_dir(os.path.dirname(dst)) - shutil.copyfile(nib, dst) - - -def make_main_plist(inputs, out, replaced_parameters): - united_data = {} - for i in inputs: - united_data.update(plistlib.readPlist(i)) - - def scan_n_replace(root): - if not isinstance(root, dict): - raise Exception('Invalid state') - for k in root: - if isinstance(root[k], list): - for i in xrange(len(root[k])): - if isinstance(root[k][i], dict): - scan_n_replace(root[k][i]) - elif root[k][i] in replaced_parameters: - root[k][i] = replaced_parameters[root[k][i]] - elif isinstance(root[k], dict): - scan_n_replace(root[k]) - else: - if root[k] in replaced_parameters: - root[k] = replaced_parameters[root[k]] - scan_n_replace(united_data) - plistlib.writePlist(united_data, out) - subprocess.check_call(['/usr/bin/plutil', '-convert', 'binary1', out]) - - -def link_storyboards(ibtool, archives, app_name, app_dir, flags): - unpacked = [] - for arc in archives: - unpacked.append(os.path.splitext(arc)[0] + 'c') - ensure_dir(unpacked[-1]) - with tarfile.open(arc) as a: - a.extractall(path=unpacked[-1]) - flags += [ - '--module', app_name, - '--link', app_dir, - ] - subprocess.check_call([ibtool] + flags + - ['--errors', '--warnings', '--notices', '--output-format', 'human-readable-text'] + - unpacked) - - -def sign_application(xcent, app_dir): - subprocess.check_call(['/usr/bin/codesign', '--force', '--sign', '-', '--entitlements', xcent, '--timestamp=none', app_dir]) - - -def extract_resources(resources, app_dir, strings=False, sign=False): - for res in resources: - with tarfile.open(res) as tf: - for tfinfo in tf: - tf.extract(tfinfo.name, app_dir) - if strings: - subprocess.check_call(['/usr/bin/plutil', '-convert', 'binary1', os.path.join(app_dir, tfinfo.name)]) - if sign: - subprocess.check_call(['/usr/bin/codesign', '--force', '--sign', '-', os.path.join(app_dir, tfinfo.name)]) - - -def make_archive(app_dir, output): - with tarfile.open(output, "w") as tar_handle: - for root, _, files in os.walk(app_dir): - for f in files: - tar_handle.add(os.path.join(root, f), arcname=os.path.join(os.path.basename(app_dir), - os.path.relpath(os.path.join(root, f), app_dir))) - - -if __name__ == '__main__': - just_do_it(sys.argv[1:]) + if resources: + extract_resources(resources, app_dir) + if signed_resources: + extract_resources(signed_resources, app_dir, sign=True) + if strings: + extract_resources(strings, app_dir, strings=True) + if not signs: + sign_file = os.path.join(module_dir, app_name + '.xcent') + with open(sign_file, 'w') as f: + f.write('''<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>com.apple.security.get-task-allow</key> + <true/> +</dict> +</plist> + ''') + else: + sign_file = signs[0] + sign_application(sign_file, app_dir) + make_archive(app_dir, main_out) + + +def is_exe(fpath): + return os.path.isfile(fpath) and os.access(fpath, os.X_OK) + + +def copy_nibs(nibs, module_dir, app_dir): + for nib in nibs: + dst = os.path.join(app_dir, os.path.relpath(nib, module_dir)) + ensure_dir(os.path.dirname(dst)) + shutil.copyfile(nib, dst) + + +def make_main_plist(inputs, out, replaced_parameters): + united_data = {} + for i in inputs: + united_data.update(plistlib.readPlist(i)) + + def scan_n_replace(root): + if not isinstance(root, dict): + raise Exception('Invalid state') + for k in root: + if isinstance(root[k], list): + for i in xrange(len(root[k])): + if isinstance(root[k][i], dict): + scan_n_replace(root[k][i]) + elif root[k][i] in replaced_parameters: + root[k][i] = replaced_parameters[root[k][i]] + elif isinstance(root[k], dict): + scan_n_replace(root[k]) + else: + if root[k] in replaced_parameters: + root[k] = replaced_parameters[root[k]] + scan_n_replace(united_data) + plistlib.writePlist(united_data, out) + subprocess.check_call(['/usr/bin/plutil', '-convert', 'binary1', out]) + + +def link_storyboards(ibtool, archives, app_name, app_dir, flags): + unpacked = [] + for arc in archives: + unpacked.append(os.path.splitext(arc)[0] + 'c') + ensure_dir(unpacked[-1]) + with tarfile.open(arc) as a: + a.extractall(path=unpacked[-1]) + flags += [ + '--module', app_name, + '--link', app_dir, + ] + subprocess.check_call([ibtool] + flags + + ['--errors', '--warnings', '--notices', '--output-format', 'human-readable-text'] + + unpacked) + + +def sign_application(xcent, app_dir): + subprocess.check_call(['/usr/bin/codesign', '--force', '--sign', '-', '--entitlements', xcent, '--timestamp=none', app_dir]) + + +def extract_resources(resources, app_dir, strings=False, sign=False): + for res in resources: + with tarfile.open(res) as tf: + for tfinfo in tf: + tf.extract(tfinfo.name, app_dir) + if strings: + subprocess.check_call(['/usr/bin/plutil', '-convert', 'binary1', os.path.join(app_dir, tfinfo.name)]) + if sign: + subprocess.check_call(['/usr/bin/codesign', '--force', '--sign', '-', os.path.join(app_dir, tfinfo.name)]) + + +def make_archive(app_dir, output): + with tarfile.open(output, "w") as tar_handle: + for root, _, files in os.walk(app_dir): + for f in files: + tar_handle.add(os.path.join(root, f), arcname=os.path.join(os.path.basename(app_dir), + os.path.relpath(os.path.join(root, f), app_dir))) + + +if __name__ == '__main__': + just_do_it(sys.argv[1:]) diff --git a/build/scripts/link_fat_obj.py b/build/scripts/link_fat_obj.py index 6646889d3a..c189668b9e 100644 --- a/build/scripts/link_fat_obj.py +++ b/build/scripts/link_fat_obj.py @@ -9,24 +9,24 @@ YA_ARG_PREFIX = '-Ya,' def get_args(): parser = argparse.ArgumentParser() - parser.add_argument('--obj') - parser.add_argument('--globals-lib') + parser.add_argument('--obj') + parser.add_argument('--globals-lib') parser.add_argument('--lib', required=True) parser.add_argument('--arch', required=True) - parser.add_argument('--build-root', default=None) - parser.add_argument('--with-own-obj', action='store_true', default=False) - parser.add_argument('--with-global-srcs', action='store_true', default=False) + parser.add_argument('--build-root', default=None) + parser.add_argument('--with-own-obj', action='store_true', default=False) + parser.add_argument('--with-global-srcs', action='store_true', default=False) groups = {} args_list = groups.setdefault('default', []) for arg in sys.argv[1:]: - if arg == '--with-own-obj': - groups['default'].append(arg) - elif arg == '--globals-lib': - groups['default'].append(arg) - elif arg == '--with-global-srcs': - groups['default'].append(arg) - elif arg.startswith(YA_ARG_PREFIX): + if arg == '--with-own-obj': + groups['default'].append(arg) + elif arg == '--globals-lib': + groups['default'].append(arg) + elif arg == '--with-global-srcs': + groups['default'].append(arg) + elif arg.startswith(YA_ARG_PREFIX): group_name = arg[len(YA_ARG_PREFIX):] args_list = groups.setdefault(group_name, []) else: @@ -61,29 +61,29 @@ def main(): do_link = linker + ['-o', obj_output, '-Wl,-r', '-nodefaultlibs', '-nostartfiles'] + global_srcs + auto_input do_archive = archiver + [lib_output] + peers - do_globals = None - if args.globals_lib: - do_globals = archiver + [args.globals_lib] + auto_input + global_srcs - if args.with_own_obj: - do_archive += auto_input - if args.with_global_srcs: - do_archive += global_srcs + do_globals = None + if args.globals_lib: + do_globals = archiver + [args.globals_lib] + auto_input + global_srcs + if args.with_own_obj: + do_archive += auto_input + if args.with_global_srcs: + do_archive += global_srcs def call(c): - proc = subprocess.Popen(c, shell=False, stderr=sys.stderr, stdout=sys.stdout, cwd=args.build_root) + proc = subprocess.Popen(c, shell=False, stderr=sys.stderr, stdout=sys.stdout, cwd=args.build_root) proc.communicate() return proc.returncode - if obj_output: - link_res = call(do_link) - if link_res: - sys.exit(link_res) + if obj_output: + link_res = call(do_link) + if link_res: + sys.exit(link_res) + + if do_globals: + glob_res = call(do_globals) + if glob_res: + sys.exit(glob_res) - if do_globals: - glob_res = call(do_globals) - if glob_res: - sys.exit(glob_res) - sys.exit(call(do_archive)) diff --git a/build/scripts/make_java_classpath_file.py b/build/scripts/make_java_classpath_file.py index 9b4eab5150..c70a7876d7 100644 --- a/build/scripts/make_java_classpath_file.py +++ b/build/scripts/make_java_classpath_file.py @@ -1,24 +1,24 @@ -import os -import sys - +import os +import sys + import process_command_files as pcf - -def make_cp_file(args): - source = args[0] - destination = args[1] - with open(source) as src: - lines = [l.strip() for l in src if l.strip()] - with open(destination, 'w') as dst: - dst.write(os.pathsep.join(lines)) - + +def make_cp_file(args): + source = args[0] + destination = args[1] + with open(source) as src: + lines = [l.strip() for l in src if l.strip()] + with open(destination, 'w') as dst: + dst.write(os.pathsep.join(lines)) + def make_cp_file_from_args(args): destination = args[0] with open(destination, 'w') as dst: dst.write(os.pathsep.join(args[1:])) - -if __name__ == '__main__': + +if __name__ == '__main__': args = pcf.get_args(sys.argv[1:]) if sys.argv[1] != '--from-args': make_cp_file(args) diff --git a/build/scripts/make_manifest_from_bf.py b/build/scripts/make_manifest_from_bf.py index 96e74d55e3..bfea3ba3de 100644 --- a/build/scripts/make_manifest_from_bf.py +++ b/build/scripts/make_manifest_from_bf.py @@ -1,28 +1,28 @@ -import sys -import zipfile -import os -import re - - -def prepare_path(path): - return ('file:/' + path.lstrip('/')) if os.path.isabs(path) else path - - -def main(args): - bf, mf = args[0], args[1] - if not os.path.exists(os.path.dirname(mf)): - os.makedirs(os.path.dirname(mf)) - with open(bf) as f: - class_path = f.read().strip() - class_path = ' '.join(map(prepare_path, class_path.split('\n'))) - with zipfile.ZipFile(mf, 'w') as zf: - lines = [] - while class_path: - lines.append(class_path[:60]) - class_path = class_path[60:] - if lines: - zf.writestr('META-INF/MANIFEST.MF', 'Manifest-Version: 1.0\nClass-Path: \n ' + '\n '.join(lines) + ' \n\n') - - -if __name__ == '__main__': - main(sys.argv[1:]) +import sys +import zipfile +import os +import re + + +def prepare_path(path): + return ('file:/' + path.lstrip('/')) if os.path.isabs(path) else path + + +def main(args): + bf, mf = args[0], args[1] + if not os.path.exists(os.path.dirname(mf)): + os.makedirs(os.path.dirname(mf)) + with open(bf) as f: + class_path = f.read().strip() + class_path = ' '.join(map(prepare_path, class_path.split('\n'))) + with zipfile.ZipFile(mf, 'w') as zf: + lines = [] + while class_path: + lines.append(class_path[:60]) + class_path = class_path[60:] + if lines: + zf.writestr('META-INF/MANIFEST.MF', 'Manifest-Version: 1.0\nClass-Path: \n ' + '\n '.join(lines) + ' \n\n') + + +if __name__ == '__main__': + main(sys.argv[1:]) diff --git a/build/scripts/merge_coverage_data.py b/build/scripts/merge_coverage_data.py index a2a0e0fa44..b7fa3c6a86 100644 --- a/build/scripts/merge_coverage_data.py +++ b/build/scripts/merge_coverage_data.py @@ -1,7 +1,7 @@ import sys import tarfile -import copy -import os +import copy +import os import uuid @@ -17,15 +17,15 @@ def main(args): with tarfile.open(output_file, 'w') as outf: for x in files: - with tarfile.open(x) as tf: - for tarinfo in tf: - new_tarinfo = copy.deepcopy(tarinfo) - if new_tarinfo.name in expendables: + with tarfile.open(x) as tf: + for tarinfo in tf: + new_tarinfo = copy.deepcopy(tarinfo) + if new_tarinfo.name in expendables: dirname, basename = os.path.split(new_tarinfo.name) basename_parts = basename.split('.', 1) new_basename = '.'.join([basename_parts[0] + str(uuid.uuid4())] + basename_parts[1:]) new_tarinfo.name = os.path.join(dirname, new_basename) - outf.addfile(new_tarinfo, tf.extractfile(tarinfo)) + outf.addfile(new_tarinfo, tf.extractfile(tarinfo)) if __name__ == '__main__': diff --git a/build/scripts/merge_files.py b/build/scripts/merge_files.py index 25317d9e17..d42d6a2139 100644 --- a/build/scripts/merge_files.py +++ b/build/scripts/merge_files.py @@ -1,8 +1,8 @@ -import sys - - -if __name__ == "__main__": - with open(sys.argv[1], "w") as f: - for appended in sys.argv[2:]: - with open(appended) as a: - f.write(a.read()) +import sys + + +if __name__ == "__main__": + with open(sys.argv[1], "w") as f: + for appended in sys.argv[2:]: + with open(appended) as a: + f.write(a.read()) diff --git a/build/scripts/pack_ios.py b/build/scripts/pack_ios.py index 7f7fdf9074..37c36d1f95 100644 --- a/build/scripts/pack_ios.py +++ b/build/scripts/pack_ios.py @@ -1,48 +1,48 @@ -import argparse -import os -import shutil -import subprocess -import sys -import tarfile - - -def just_do_it(): - parser = argparse.ArgumentParser() - parser.add_argument("--binary", required=True, help="executable file") - parser.add_argument("--target", required=True, help="target archive path") - parser.add_argument("--temp-dir", required=True, help="temp dir") - parser.add_argument("peers", nargs='*') - args = parser.parse_args() - app_tar = [p for p in args.peers if p.endswith('.ios.interface')] - if not app_tar: - print >> sys.stderr, 'No one IOS_INTERFACE module found' - shutil.copyfile(args.binary, os.path.join(args.temp_dir, 'bin')) - if os.path.exists(args.target): - os.remove(args.target) - with tarfile.open(args.target, 'w') as tf: - tf.add(os.path.join(args.temp_dir, 'bin'), arcname=os.path.join(os.path.basename(args.binary) + '.app', 'bin')) - return - if len(app_tar) > 1: - app_tar = [p for p in args.peers if not p.endswith('.default.ios.interface')] - if len(app_tar) > 1: - print >> sys.stderr, 'Many IOS_INTERFACE modules found, {} will be used'.format(app_tar[-1]) - app_tar = app_tar[-1] - with tarfile.open(app_tar) as tf: - tf.extractall(args.temp_dir) - tar_suffix = '.default.ios.interface' if app_tar.endswith('.default.ios.interface') else '.ios.interface' - app_unpacked_path = os.path.join(args.temp_dir, os.path.basename(app_tar)[:-len(tar_suffix)] + '.app') - if not os.path.exists(app_unpacked_path): - raise Exception('Bad IOS_INTERFACE resource: {}'.format(app_tar)) - shutil.copyfile(args.binary, os.path.join(app_unpacked_path, 'bin')) - subprocess.check_call(['/usr/bin/codesign', '--force', '--sign', '-', app_unpacked_path]) - if os.path.exists(args.target): - os.remove(args.target) - binary_origin_name = os.path.basename(args.binary) - while os.path.splitext(binary_origin_name)[1]: - binary_origin_name = os.path.splitext(binary_origin_name)[0] - with tarfile.open(args.target, 'w') as tf: - tf.add(app_unpacked_path, arcname=binary_origin_name + '.app', recursive=True) - - -if __name__ == '__main__': - just_do_it() +import argparse +import os +import shutil +import subprocess +import sys +import tarfile + + +def just_do_it(): + parser = argparse.ArgumentParser() + parser.add_argument("--binary", required=True, help="executable file") + parser.add_argument("--target", required=True, help="target archive path") + parser.add_argument("--temp-dir", required=True, help="temp dir") + parser.add_argument("peers", nargs='*') + args = parser.parse_args() + app_tar = [p for p in args.peers if p.endswith('.ios.interface')] + if not app_tar: + print >> sys.stderr, 'No one IOS_INTERFACE module found' + shutil.copyfile(args.binary, os.path.join(args.temp_dir, 'bin')) + if os.path.exists(args.target): + os.remove(args.target) + with tarfile.open(args.target, 'w') as tf: + tf.add(os.path.join(args.temp_dir, 'bin'), arcname=os.path.join(os.path.basename(args.binary) + '.app', 'bin')) + return + if len(app_tar) > 1: + app_tar = [p for p in args.peers if not p.endswith('.default.ios.interface')] + if len(app_tar) > 1: + print >> sys.stderr, 'Many IOS_INTERFACE modules found, {} will be used'.format(app_tar[-1]) + app_tar = app_tar[-1] + with tarfile.open(app_tar) as tf: + tf.extractall(args.temp_dir) + tar_suffix = '.default.ios.interface' if app_tar.endswith('.default.ios.interface') else '.ios.interface' + app_unpacked_path = os.path.join(args.temp_dir, os.path.basename(app_tar)[:-len(tar_suffix)] + '.app') + if not os.path.exists(app_unpacked_path): + raise Exception('Bad IOS_INTERFACE resource: {}'.format(app_tar)) + shutil.copyfile(args.binary, os.path.join(app_unpacked_path, 'bin')) + subprocess.check_call(['/usr/bin/codesign', '--force', '--sign', '-', app_unpacked_path]) + if os.path.exists(args.target): + os.remove(args.target) + binary_origin_name = os.path.basename(args.binary) + while os.path.splitext(binary_origin_name)[1]: + binary_origin_name = os.path.splitext(binary_origin_name)[0] + with tarfile.open(args.target, 'w') as tf: + tf.add(app_unpacked_path, arcname=binary_origin_name + '.app', recursive=True) + + +if __name__ == '__main__': + just_do_it() diff --git a/build/scripts/pack_jcoverage_resources.py b/build/scripts/pack_jcoverage_resources.py index a282512460..f6e181067a 100644 --- a/build/scripts/pack_jcoverage_resources.py +++ b/build/scripts/pack_jcoverage_resources.py @@ -1,24 +1,24 @@ -import sys -import tarfile -import os -import subprocess - - -def main(args): - output_file = args[0] - report_file = args[1] - - res = subprocess.call(args[args.index('-end') + 1:]) +import sys +import tarfile +import os +import subprocess + + +def main(args): + output_file = args[0] + report_file = args[1] + + res = subprocess.call(args[args.index('-end') + 1:]) if not os.path.exists(report_file): print>>sys.stderr, 'Can\'t find jacoco exec file' return res - with tarfile.open(output_file, 'w') as outf: - outf.add(report_file, arcname=os.path.basename(report_file)) + with tarfile.open(output_file, 'w') as outf: + outf.add(report_file, arcname=os.path.basename(report_file)) + + return res + - return res - - -if __name__ == '__main__': +if __name__ == '__main__': sys.exit(main(sys.argv[1:])) diff --git a/build/scripts/resolve_java_srcs.py b/build/scripts/resolve_java_srcs.py index 479fded4af..a2e6c20012 100644 --- a/build/scripts/resolve_java_srcs.py +++ b/build/scripts/resolve_java_srcs.py @@ -1,19 +1,19 @@ -import os -import argparse -import re -import sys - - -def list_all_files(directory, prefix='/', hidden_files=False): - result = [] - if os.path.exists(directory): - for i in os.listdir(directory): - abs_path = os.path.join(directory, i) - result += list_all_files(os.path.join(directory, abs_path), prefix + i + '/', hidden_files) \ - if os.path.isdir(abs_path) else ([prefix + i] if (hidden_files or not i.startswith('.')) else []) - return result - - +import os +import argparse +import re +import sys + + +def list_all_files(directory, prefix='/', hidden_files=False): + result = [] + if os.path.exists(directory): + for i in os.listdir(directory): + abs_path = os.path.join(directory, i) + result += list_all_files(os.path.join(directory, abs_path), prefix + i + '/', hidden_files) \ + if os.path.isdir(abs_path) else ([prefix + i] if (hidden_files or not i.startswith('.')) else []) + return result + + def pattern_to_regexp(p): return '^' + \ ('/' if not p.startswith('**') else '') + \ @@ -28,79 +28,79 @@ def pattern_to_regexp(p): ) + '$' -def resolve_java_srcs(srcdir, include_patterns, exclude_patterns, all_resources, resolve_kotlin=False, resolve_groovy=False): - result = {'java': [], 'not_java': [], 'kotlin': [], 'groovy': []} - include_patterns_normal, include_patterns_hidden, exclude_patterns_normal, exclude_patterns_hidden = [], [], [], [] - for vis, hid, patterns in ((include_patterns_normal, include_patterns_hidden, include_patterns), (exclude_patterns_normal, exclude_patterns_hidden, exclude_patterns),): - for pattern in patterns: - if (pattern if pattern.find('/') == -1 else pattern.rsplit('/', 1)[1]).startswith('.'): - hid.append(pattern) - else: - vis.append(pattern) - re_patterns = map(pattern_to_regexp, vis + hid) - if sys.platform in ('win32', 'darwin'): - re_patterns = [re.compile(i, re.IGNORECASE) for i in re_patterns] - else: - re_patterns = [re.compile(i) for i in re_patterns] - vis[:], hid[:] = re_patterns[:len(vis)], re_patterns[len(vis):] - - for inc_patterns, exc_patterns, with_hidden_files in ( - (include_patterns_normal, exclude_patterns_normal, False), - (include_patterns_hidden, exclude_patterns_hidden, True), - ): - for f in list_all_files(srcdir, hidden_files=with_hidden_files): - excluded = False - - for exc_re in exc_patterns: - if exc_re.match(f): - excluded = True - break - - if excluded: - continue - - for inc_re in inc_patterns: - if inc_re.match(f): - s = os.path.normpath(f[1:]) - if all_resources or not (f.endswith('.java') or f.endswith('.kt') or f.endswith('.groovy')): - result['not_java'].append(s) - elif f.endswith('.java'): +def resolve_java_srcs(srcdir, include_patterns, exclude_patterns, all_resources, resolve_kotlin=False, resolve_groovy=False): + result = {'java': [], 'not_java': [], 'kotlin': [], 'groovy': []} + include_patterns_normal, include_patterns_hidden, exclude_patterns_normal, exclude_patterns_hidden = [], [], [], [] + for vis, hid, patterns in ((include_patterns_normal, include_patterns_hidden, include_patterns), (exclude_patterns_normal, exclude_patterns_hidden, exclude_patterns),): + for pattern in patterns: + if (pattern if pattern.find('/') == -1 else pattern.rsplit('/', 1)[1]).startswith('.'): + hid.append(pattern) + else: + vis.append(pattern) + re_patterns = map(pattern_to_regexp, vis + hid) + if sys.platform in ('win32', 'darwin'): + re_patterns = [re.compile(i, re.IGNORECASE) for i in re_patterns] + else: + re_patterns = [re.compile(i) for i in re_patterns] + vis[:], hid[:] = re_patterns[:len(vis)], re_patterns[len(vis):] + + for inc_patterns, exc_patterns, with_hidden_files in ( + (include_patterns_normal, exclude_patterns_normal, False), + (include_patterns_hidden, exclude_patterns_hidden, True), + ): + for f in list_all_files(srcdir, hidden_files=with_hidden_files): + excluded = False + + for exc_re in exc_patterns: + if exc_re.match(f): + excluded = True + break + + if excluded: + continue + + for inc_re in inc_patterns: + if inc_re.match(f): + s = os.path.normpath(f[1:]) + if all_resources or not (f.endswith('.java') or f.endswith('.kt') or f.endswith('.groovy')): + result['not_java'].append(s) + elif f.endswith('.java'): result['java'].append(os.path.join(srcdir, s)) - elif f.endswith('.kt') and resolve_kotlin: + elif f.endswith('.kt') and resolve_kotlin: result['kotlin'].append(os.path.join(srcdir, s)) - elif f.endswith('.groovy') and resolve_groovy: + elif f.endswith('.groovy') and resolve_groovy: result['groovy'].append(os.path.join(srcdir, s)) - else: - result['not_java'].append(s) - break + else: + result['not_java'].append(s) + break + + return sorted(result['java']), sorted(result['not_java']), sorted(result['kotlin']), sorted(result['groovy']) + - return sorted(result['java']), sorted(result['not_java']), sorted(result['kotlin']), sorted(result['groovy']) - - def do_it(directory, sources_file, resources_file, kotlin_sources_file, groovy_sources_file, include_patterns, exclude_patterns, resolve_kotlin, resolve_groovy, append, all_resources): j, r, k, g = resolve_java_srcs(directory, include_patterns, exclude_patterns, all_resources, resolve_kotlin, resolve_groovy) mode = 'a' if append else 'w' open(sources_file, mode).writelines(i + '\n' for i in j) open(resources_file, mode).writelines(i + '\n' for i in r) - if kotlin_sources_file: + if kotlin_sources_file: open(kotlin_sources_file, mode).writelines(i + '\n' for i in k + j) - if groovy_sources_file: + if groovy_sources_file: open(groovy_sources_file, mode).writelines(i + '\n' for i in g + j) - - -if __name__ == '__main__': - parser = argparse.ArgumentParser() - parser.add_argument('-d', '--directory', required=True) - parser.add_argument('-s', '--sources-file', required=True) - parser.add_argument('-r', '--resources-file', required=True) - parser.add_argument('-k', '--kotlin-sources-file', default=None) - parser.add_argument('-g', '--groovy-sources-file', default=None) + + +if __name__ == '__main__': + parser = argparse.ArgumentParser() + parser.add_argument('-d', '--directory', required=True) + parser.add_argument('-s', '--sources-file', required=True) + parser.add_argument('-r', '--resources-file', required=True) + parser.add_argument('-k', '--kotlin-sources-file', default=None) + parser.add_argument('-g', '--groovy-sources-file', default=None) parser.add_argument('--append', action='store_true', default=False) parser.add_argument('--all-resources', action='store_true', default=False) - parser.add_argument('--resolve-kotlin', action='store_true', default=False) - parser.add_argument('--resolve-groovy', action='store_true', default=False) + parser.add_argument('--resolve-kotlin', action='store_true', default=False) + parser.add_argument('--resolve-groovy', action='store_true', default=False) parser.add_argument('--include-patterns', nargs='*', default=[]) parser.add_argument('--exclude-patterns', nargs='*', default=[]) - args = parser.parse_args() - - do_it(**vars(args)) + args = parser.parse_args() + + do_it(**vars(args)) diff --git a/build/scripts/run_ios_simulator.py b/build/scripts/run_ios_simulator.py index 22bb27d4cc..052c855b77 100644 --- a/build/scripts/run_ios_simulator.py +++ b/build/scripts/run_ios_simulator.py @@ -1,79 +1,79 @@ -import argparse -import json -import os -import subprocess -import sys - - -def just_do_it(): - parser = argparse.ArgumentParser() - parser.add_argument("--action", choices=["create", "spawn", "kill"]) - parser.add_argument("--simctl", help="simctl binary path") - parser.add_argument("--profiles", help="profiles path") - parser.add_argument("--device-dir", help="devices directory") - parser.add_argument("--device-name", help="temp device name") - args, tail = parser.parse_known_args() - if args.action == 'create': - action_create(args.simctl, args.profiles, args.device_dir, args.device_name, tail) - elif args.action == "spawn": - action_spawn(args.simctl, args.profiles, args.device_dir, args.device_name, tail) - elif args.action == "kill": - action_kill(args.simctl, args.profiles, args.device_dir, args.device_name) - - -def action_create(simctl, profiles, device_dir, name, args): - parser = argparse.ArgumentParser() - parser.add_argument("--device-type", default="com.apple.CoreSimulator.SimDeviceType.iPhone-X") - parser.add_argument("--device-runtime", default="com.apple.CoreSimulator.SimRuntime.iOS-12-1") - args = parser.parse_args(args) - all_devices = list(get_all_devices(simctl, profiles, device_dir)) - if filter(lambda x: x["name"] == name, all_devices): - raise Exception("Device named {} already exists".format(name)) - subprocess.check_call([simctl, "--profiles", profiles, "--set", device_dir, "create", name, args.device_type, args.device_runtime]) - created = filter(lambda x: x["name"] == name, get_all_devices(simctl, profiles, device_dir)) - if not created: - raise Exception("Creation error: temp device named {} not found".format(name)) - created = created[0] - if created["availability"] != "(available)": - raise Exception("Creation error: temp device {} status is {} ((available) expected)".format(name, created["availability"])) - - -def action_spawn(simctl, profiles, device_dir, name, args): - device = filter(lambda x: x["name"] == name, get_all_devices(simctl, profiles, device_dir)) - if not device: - raise Exception("Can't spawn process: device named {} not found".format(name)) - if len(device) > 1: - raise Exception("Can't spawn process: too many devices named {} found".format(name)) - device = device[0] - os.execv(simctl, [simctl, "--profiles", profiles, "--set", device_dir, "spawn", device["udid"]] + args) - - -def action_kill(simctl, profiles, device_dir, name): - device = filter(lambda x: x["name"] == name, get_all_devices(simctl, profiles, device_dir)) - if not device: - print >> sys.stderr, "Device named {} not found; do nothing".format(name) - return - if len(device) > 1: - raise Exception("Can't remove: too many devices named {}:\n{}".format(name, '\n'.join(i for i in device))) - device = device[0] - os.execv(simctl, [simctl, "--profiles", profiles, "--set", device_dir, "delete", device["udid"]]) - - -def get_all_devices(simctl, profiles, device_dir): - p = subprocess.Popen([simctl, "--profiles", profiles, "--set", device_dir, "list", "--json", "devices"], stdout=subprocess.PIPE) - out, _ = p.communicate() - rc = p.wait() - if rc: - raise Exception("Devices list command return code is {}\nstdout:\n{}".format(rc, out)) - raw_object = json.loads(out) - if "devices" not in raw_object: - raise Exception("Devices not found in\n{}".format(json.dumps(raw_object))) - raw_object = raw_object["devices"] - for os_name, devices in raw_object.items(): - for device in devices: - device["os_name"] = os_name - yield device - - -if __name__ == '__main__': - just_do_it() +import argparse +import json +import os +import subprocess +import sys + + +def just_do_it(): + parser = argparse.ArgumentParser() + parser.add_argument("--action", choices=["create", "spawn", "kill"]) + parser.add_argument("--simctl", help="simctl binary path") + parser.add_argument("--profiles", help="profiles path") + parser.add_argument("--device-dir", help="devices directory") + parser.add_argument("--device-name", help="temp device name") + args, tail = parser.parse_known_args() + if args.action == 'create': + action_create(args.simctl, args.profiles, args.device_dir, args.device_name, tail) + elif args.action == "spawn": + action_spawn(args.simctl, args.profiles, args.device_dir, args.device_name, tail) + elif args.action == "kill": + action_kill(args.simctl, args.profiles, args.device_dir, args.device_name) + + +def action_create(simctl, profiles, device_dir, name, args): + parser = argparse.ArgumentParser() + parser.add_argument("--device-type", default="com.apple.CoreSimulator.SimDeviceType.iPhone-X") + parser.add_argument("--device-runtime", default="com.apple.CoreSimulator.SimRuntime.iOS-12-1") + args = parser.parse_args(args) + all_devices = list(get_all_devices(simctl, profiles, device_dir)) + if filter(lambda x: x["name"] == name, all_devices): + raise Exception("Device named {} already exists".format(name)) + subprocess.check_call([simctl, "--profiles", profiles, "--set", device_dir, "create", name, args.device_type, args.device_runtime]) + created = filter(lambda x: x["name"] == name, get_all_devices(simctl, profiles, device_dir)) + if not created: + raise Exception("Creation error: temp device named {} not found".format(name)) + created = created[0] + if created["availability"] != "(available)": + raise Exception("Creation error: temp device {} status is {} ((available) expected)".format(name, created["availability"])) + + +def action_spawn(simctl, profiles, device_dir, name, args): + device = filter(lambda x: x["name"] == name, get_all_devices(simctl, profiles, device_dir)) + if not device: + raise Exception("Can't spawn process: device named {} not found".format(name)) + if len(device) > 1: + raise Exception("Can't spawn process: too many devices named {} found".format(name)) + device = device[0] + os.execv(simctl, [simctl, "--profiles", profiles, "--set", device_dir, "spawn", device["udid"]] + args) + + +def action_kill(simctl, profiles, device_dir, name): + device = filter(lambda x: x["name"] == name, get_all_devices(simctl, profiles, device_dir)) + if not device: + print >> sys.stderr, "Device named {} not found; do nothing".format(name) + return + if len(device) > 1: + raise Exception("Can't remove: too many devices named {}:\n{}".format(name, '\n'.join(i for i in device))) + device = device[0] + os.execv(simctl, [simctl, "--profiles", profiles, "--set", device_dir, "delete", device["udid"]]) + + +def get_all_devices(simctl, profiles, device_dir): + p = subprocess.Popen([simctl, "--profiles", profiles, "--set", device_dir, "list", "--json", "devices"], stdout=subprocess.PIPE) + out, _ = p.communicate() + rc = p.wait() + if rc: + raise Exception("Devices list command return code is {}\nstdout:\n{}".format(rc, out)) + raw_object = json.loads(out) + if "devices" not in raw_object: + raise Exception("Devices not found in\n{}".format(json.dumps(raw_object))) + raw_object = raw_object["devices"] + for os_name, devices in raw_object.items(): + for device in devices: + device["os_name"] = os_name + yield device + + +if __name__ == '__main__': + just_do_it() diff --git a/build/scripts/run_javac.py b/build/scripts/run_javac.py index 0adf42a2e0..c35546e0fe 100644 --- a/build/scripts/run_javac.py +++ b/build/scripts/run_javac.py @@ -10,8 +10,8 @@ def parse_args(): parser.add_option('--sources-list') parser.add_option('--verbose', default=False, action='store_true') parser.add_option('--remove-notes', default=False, action='store_true') - parser.add_option('--ignore-errors', default=False, action='store_true') - parser.add_option('--kotlin', default=False, action='store_true') + parser.add_option('--ignore-errors', default=False, action='store_true') + parser.add_option('--kotlin', default=False, action='store_true') return parser.parse_args() @@ -42,63 +42,63 @@ def remove_notes(err): return '\n'.join([line for line in err.split('\n') if not line.startswith('Note:')]) -def find_javac(cmd): - if not cmd: - return None - if cmd[0].endswith('javac') or cmd[0].endswith('javac.exe'): - return cmd[0] - if len(cmd) > 2 and cmd[1].endswith('build_java_with_error_prone.py'): - for javas in ('java', 'javac'): - if cmd[2].endswith(javas) or cmd[2].endswith(javas + '.exe'): - return cmd[2] - return None - - -# temporary, for jdk8/jdk9+ compatibility -def fix_cmd(cmd): - if not cmd: - return cmd - javac = find_javac(cmd) - if not javac: - return cmd - p = subprocess.Popen([javac, '-version'], stdout=subprocess.PIPE, stderr=subprocess.PIPE) - out, err = p.communicate() - out, err = out.strip(), err.strip() - for prefix in ('javac 1.8', 'java version "1.8'): - for raw_out in ((out or ''), (err or '')): - for line in raw_out.split('\n'): - if line.startswith(prefix): - res = [] - i = 0 - while i < len(cmd): - for option in ('--add-exports', '--add-modules'): - if cmd[i] == option: - i += 1 - break - elif cmd[i].startswith(option + '='): - break - else: - res.append(cmd[i]) - i += 1 - return res - return cmd - - +def find_javac(cmd): + if not cmd: + return None + if cmd[0].endswith('javac') or cmd[0].endswith('javac.exe'): + return cmd[0] + if len(cmd) > 2 and cmd[1].endswith('build_java_with_error_prone.py'): + for javas in ('java', 'javac'): + if cmd[2].endswith(javas) or cmd[2].endswith(javas + '.exe'): + return cmd[2] + return None + + +# temporary, for jdk8/jdk9+ compatibility +def fix_cmd(cmd): + if not cmd: + return cmd + javac = find_javac(cmd) + if not javac: + return cmd + p = subprocess.Popen([javac, '-version'], stdout=subprocess.PIPE, stderr=subprocess.PIPE) + out, err = p.communicate() + out, err = out.strip(), err.strip() + for prefix in ('javac 1.8', 'java version "1.8'): + for raw_out in ((out or ''), (err or '')): + for line in raw_out.split('\n'): + if line.startswith(prefix): + res = [] + i = 0 + while i < len(cmd): + for option in ('--add-exports', '--add-modules'): + if cmd[i] == option: + i += 1 + break + elif cmd[i].startswith(option + '='): + break + else: + res.append(cmd[i]) + i += 1 + return res + return cmd + + def main(): opts, cmd = parse_args() with open(opts.sources_list) as f: input_files = f.read().strip().split() - if opts.kotlin: - input_files = [i for i in input_files if i.endswith('.kt')] - + if opts.kotlin: + input_files = [i for i in input_files if i.endswith('.kt')] + if not input_files: if opts.verbose: sys.stderr.write('No files to compile, javac is not launched.\n') else: - p = subprocess.Popen(fix_cmd(cmd), stderr=subprocess.PIPE) + p = subprocess.Popen(fix_cmd(cmd), stderr=subprocess.PIPE) _, err = p.communicate() rc = p.wait() @@ -111,9 +111,9 @@ def main(): except Exception: pass - if opts.ignore_errors and rc: - sys.stderr.write('error: javac actually failed with exit code {}\n'.format(rc)) - rc = 0 + if opts.ignore_errors and rc: + sys.stderr.write('error: javac actually failed with exit code {}\n'.format(rc)) + rc = 0 sys.stderr.write(err) sys.exit(rc) diff --git a/build/scripts/run_sonar.py b/build/scripts/run_sonar.py index 1609f2ba30..761cc34b78 100644 --- a/build/scripts/run_sonar.py +++ b/build/scripts/run_sonar.py @@ -5,7 +5,7 @@ import tarfile import subprocess as sp import optparse import shutil -import xml.etree.ElementTree as et +import xml.etree.ElementTree as et def parse_args(): @@ -22,9 +22,9 @@ def parse_args(): parser.add_option('--java-coverage-merged-tar') parser.add_option('--java-binary-path') parser.add_option('--log-path') - parser.add_option('--gcov-report-path') - parser.add_option('--source-root') - parser.add_option('--java-args', action='append', default=[]) + parser.add_option('--gcov-report-path') + parser.add_option('--source-root') + parser.add_option('--java-args', action='append', default=[]) return parser.parse_args() @@ -33,46 +33,46 @@ def extract_zip_file(zip_file_path, dest_dir): arch.extractall(dest_dir) -def get_source_real_path(source_root, path): - parts = os.path.normpath(path).split(os.path.sep) - for i in xrange(len(parts)): - if os.path.exists(os.path.join(source_root, *parts[i:])): - return os.path.join(*parts[i:]) - return None - - -def collect_cpp_sources(report, source_root, destination): - sources = set() - with open(report) as f: - root = et.fromstring(f.read()) - for f in root.findall('.//class[@filename]'): - real_filename = get_source_real_path(source_root, f.attrib['filename']) - if real_filename: - f.attrib['filename'] = real_filename - sources.add(real_filename) - with open(report, 'w') as f: - pref = '''<?xml version="1.0" ?> -<!DOCTYPE coverage - SYSTEM 'http://cobertura.sourceforge.net/xml/coverage-03.dtd'>\n''' - f.write(pref + et.tostring(root, encoding='utf-8') + '\n\n') - for src in sources: - dst = os.path.join(destination, src) - src = os.path.join(source_root, src) - if os.path.isfile(src): - if not os.path.exists(os.path.dirname(dst)): - os.makedirs(os.path.dirname(dst)) - os.link(src, dst) - - +def get_source_real_path(source_root, path): + parts = os.path.normpath(path).split(os.path.sep) + for i in xrange(len(parts)): + if os.path.exists(os.path.join(source_root, *parts[i:])): + return os.path.join(*parts[i:]) + return None + + +def collect_cpp_sources(report, source_root, destination): + sources = set() + with open(report) as f: + root = et.fromstring(f.read()) + for f in root.findall('.//class[@filename]'): + real_filename = get_source_real_path(source_root, f.attrib['filename']) + if real_filename: + f.attrib['filename'] = real_filename + sources.add(real_filename) + with open(report, 'w') as f: + pref = '''<?xml version="1.0" ?> +<!DOCTYPE coverage + SYSTEM 'http://cobertura.sourceforge.net/xml/coverage-03.dtd'>\n''' + f.write(pref + et.tostring(root, encoding='utf-8') + '\n\n') + for src in sources: + dst = os.path.join(destination, src) + src = os.path.join(source_root, src) + if os.path.isfile(src): + if not os.path.exists(os.path.dirname(dst)): + os.makedirs(os.path.dirname(dst)) + os.link(src, dst) + + def main(opts, props_args): sources_dir = os.path.abspath('src') - base_props_args = ['-Dsonar.sources=' + sources_dir] + base_props_args = ['-Dsonar.sources=' + sources_dir] os.mkdir(sources_dir) - if opts.sources_jar_path: - extract_zip_file(opts.sources_jar_path, sources_dir) - if opts.gcov_report_path: - collect_cpp_sources(opts.gcov_report_path, opts.source_root, sources_dir) - base_props_args += ['-Dsonar.projectBaseDir=' + sources_dir, '-Dsonar.cxx.coverage.reportPath=' + opts.gcov_report_path] + if opts.sources_jar_path: + extract_zip_file(opts.sources_jar_path, sources_dir) + if opts.gcov_report_path: + collect_cpp_sources(opts.gcov_report_path, opts.source_root, sources_dir) + base_props_args += ['-Dsonar.projectBaseDir=' + sources_dir, '-Dsonar.cxx.coverage.reportPath=' + opts.gcov_report_path] if opts.classes_jar_paths: classes_dir = os.path.abspath('cls') @@ -88,28 +88,28 @@ def main(opts, props_args): with open(jacoco_report_path, 'w') as dest: with tarfile.open(opts.java_coverage_merged_tar) as tar: for src in tar: - extracted = tar.extractfile(src) - if extracted is not None: - shutil.copyfileobj(extracted, dest) + extracted = tar.extractfile(src) + if extracted is not None: + shutil.copyfileobj(extracted, dest) base_props_args += [ '-Dsonar.core.codeCoveragePlugin=jacoco', '-Dsonar.jacoco.reportPath=' + jacoco_report_path ] - java_args = ['-{}'.format(i) for i in opts.java_args] + ['-Djava.net.preferIPv6Addresses=true', '-Djava.net.preferIPv4Addresses=false'] + java_args = ['-{}'.format(i) for i in opts.java_args] + ['-Djava.net.preferIPv6Addresses=true', '-Djava.net.preferIPv4Addresses=false'] sonar_cmd = [ opts.java_binary_path, - ] + java_args + [ + ] + java_args + [ '-classpath', opts.sonar_scanner_jar_path, - ] + base_props_args + props_args + [opts.sonar_scanner_main_class, '-X'] + ] + base_props_args + props_args + [opts.sonar_scanner_main_class, '-X'] p = sp.Popen(sonar_cmd, stdout=sp.PIPE, stderr=sp.STDOUT) out, _ = p.communicate() sys.stderr.write(out) - with open(opts.log_path, 'a') as f: + with open(opts.log_path, 'a') as f: f.write(out) sys.exit(p.returncode) diff --git a/build/scripts/setup_java_tmpdir.py b/build/scripts/setup_java_tmpdir.py index 65f59fc0ee..e478d4aa96 100644 --- a/build/scripts/setup_java_tmpdir.py +++ b/build/scripts/setup_java_tmpdir.py @@ -1,40 +1,40 @@ -import os -import sys -import platform -import subprocess - - -def fix_tmpdir(cmd): - if not cmd: - return cmd - java_id, option_name = None, None - for i, java in enumerate(cmd): - if java.endswith('java') or java.endswith('java.exe'): - java_id = i - option_name = '-Djava.io.tmpdir=' - break - if java.endswith('javac') or java.endswith('javac.exe'): - java_id = i - option_name = '-J-Djava.io.tmpdir=' - break - if java_id is None: - return cmd - for arg in cmd[java_id:]: - if arg.startswith(option_name): - return cmd - tmpdir = os.environ.get('TMPDIR') or os.environ.get('TEMPDIR') - if not tmpdir: - return cmd - return cmd[:java_id + 1] + ['{}{}'.format(option_name, tmpdir)] + cmd[java_id + 1:] - - -def just_do_it(): - args = fix_tmpdir(sys.argv[1:]) - if platform.system() == 'Windows': - sys.exit(subprocess.Popen(args).wait()) - else: - os.execv(args[0], args) - - -if __name__ == '__main__': - just_do_it() +import os +import sys +import platform +import subprocess + + +def fix_tmpdir(cmd): + if not cmd: + return cmd + java_id, option_name = None, None + for i, java in enumerate(cmd): + if java.endswith('java') or java.endswith('java.exe'): + java_id = i + option_name = '-Djava.io.tmpdir=' + break + if java.endswith('javac') or java.endswith('javac.exe'): + java_id = i + option_name = '-J-Djava.io.tmpdir=' + break + if java_id is None: + return cmd + for arg in cmd[java_id:]: + if arg.startswith(option_name): + return cmd + tmpdir = os.environ.get('TMPDIR') or os.environ.get('TEMPDIR') + if not tmpdir: + return cmd + return cmd[:java_id + 1] + ['{}{}'.format(option_name, tmpdir)] + cmd[java_id + 1:] + + +def just_do_it(): + args = fix_tmpdir(sys.argv[1:]) + if platform.system() == 'Windows': + sys.exit(subprocess.Popen(args).wait()) + else: + os.execv(args[0], args) + + +if __name__ == '__main__': + just_do_it() diff --git a/build/scripts/tar_directory.py b/build/scripts/tar_directory.py index 8bacdec3a9..a91889fa22 100644 --- a/build/scripts/tar_directory.py +++ b/build/scripts/tar_directory.py @@ -1,22 +1,22 @@ -import os -import sys -import tarfile - - -def is_exe(fpath): - return os.path.isfile(fpath) and os.access(fpath, os.X_OK) - - -def main(args): - if len(args) < 2 or len(args) > 3: +import os +import sys +import tarfile + + +def is_exe(fpath): + return os.path.isfile(fpath) and os.access(fpath, os.X_OK) + + +def main(args): + if len(args) < 2 or len(args) > 3: raise Exception("Illegal usage: `tar_directory.py archive.tar directory [skip prefix]` or `tar_directory.py archive.tar output_directory --extract`") tar, directory, prefix, extract = args[0], args[1], None, False - if len(args) == 3: + if len(args) == 3: if args[2] == '--extract': extract = True else: prefix = args[2] - for tar_exe in ('/usr/bin/tar', '/bin/tar'): + for tar_exe in ('/usr/bin/tar', '/bin/tar'): if not is_exe(tar_exe): continue if extract: @@ -26,9 +26,9 @@ def main(args): os.execv(tar_exe, [tar_exe, '-xf', tar, '-C', dest]) else: source = os.path.relpath(directory, prefix) if prefix else directory - os.execv(tar_exe, [tar_exe, '-cf', tar] + (['-C', prefix] if prefix else []) + [source]) + os.execv(tar_exe, [tar_exe, '-cf', tar] + (['-C', prefix] if prefix else []) + [source]) break - else: + else: if extract: dest = os.path.abspath(directory) if not os.path.exists(dest): @@ -39,7 +39,7 @@ def main(args): source = directory with tarfile.open(tar, 'w') as out: out.add(os.path.abspath(source), arcname=os.path.relpath(source, prefix) if prefix else source) - - -if __name__ == '__main__': - main(sys.argv[1:]) + + +if __name__ == '__main__': + main(sys.argv[1:]) diff --git a/build/scripts/unpacking_jtest_runner.py b/build/scripts/unpacking_jtest_runner.py index 0d168fb2ce..9730dcd711 100644 --- a/build/scripts/unpacking_jtest_runner.py +++ b/build/scripts/unpacking_jtest_runner.py @@ -2,11 +2,11 @@ import io import json import optparse import os -import sys +import sys import subprocess import time -import zipfile -import platform +import zipfile +import platform # This script changes test run classpath by unpacking tests.jar -> tests-dir. The goal # is to launch tests with the same classpath as maven does. @@ -18,37 +18,37 @@ def parse_args(): parser.add_option('--trace-file') parser.add_option('--jar-binary') parser.add_option('--tests-jar-path') - parser.add_option('--classpath-option-type', choices=('manifest', 'command_file', 'list'), default='manifest') + parser.add_option('--classpath-option-type', choices=('manifest', 'command_file', 'list'), default='manifest') return parser.parse_args() -# temporary, for jdk8/jdk9+ compatibility -def fix_cmd(cmd): - if not cmd: - return cmd - java = cmd[0] - if not java.endswith('java') and not java.endswith('java.exe'): - return cmd - p = subprocess.Popen([java, '-version'], stdout=subprocess.PIPE, stderr=subprocess.PIPE) - out, err = p.communicate() - out, err = out.strip(), err.strip() - if ((out or '').strip().startswith('java version "1.8') or (err or '').strip().startswith('java version "1.8')): - res = [] - i = 0 - while i < len(cmd): - for option in ('--add-exports', '--add-modules'): - if cmd[i] == option: - i += 1 - break - elif cmd[i].startswith(option + '='): - break - else: - res.append(cmd[i]) - i += 1 - return res - return cmd - - +# temporary, for jdk8/jdk9+ compatibility +def fix_cmd(cmd): + if not cmd: + return cmd + java = cmd[0] + if not java.endswith('java') and not java.endswith('java.exe'): + return cmd + p = subprocess.Popen([java, '-version'], stdout=subprocess.PIPE, stderr=subprocess.PIPE) + out, err = p.communicate() + out, err = out.strip(), err.strip() + if ((out or '').strip().startswith('java version "1.8') or (err or '').strip().startswith('java version "1.8')): + res = [] + i = 0 + while i < len(cmd): + for option in ('--add-exports', '--add-modules'): + if cmd[i] == option: + i += 1 + break + elif cmd[i].startswith(option + '='): + break + else: + res.append(cmd[i]) + i += 1 + return res + return cmd + + def dump_event(etype, data, filename): event = { 'timestamp': time.time(), @@ -70,34 +70,34 @@ def extract_jars(dest, archive): zf.extractall(dest) -def make_bfg_from_cp(class_path, out): - class_path = ' '.join( - map(lambda path: ('file:/' + path.lstrip('/')) if os.path.isabs(path) else path, class_path) - ) - with zipfile.ZipFile(out, 'w') as zf: - lines = [] - while class_path: - lines.append(class_path[:60]) - class_path = class_path[60:] - if lines: - zf.writestr('META-INF/MANIFEST.MF', 'Manifest-Version: 1.0\nClass-Path: \n ' + '\n '.join(lines) + ' \n\n') - - -def make_command_file_from_cp(class_path, out): - with open(out, 'w') as cp_file: - cp_file.write(os.pathsep.join(class_path)) - - +def make_bfg_from_cp(class_path, out): + class_path = ' '.join( + map(lambda path: ('file:/' + path.lstrip('/')) if os.path.isabs(path) else path, class_path) + ) + with zipfile.ZipFile(out, 'w') as zf: + lines = [] + while class_path: + lines.append(class_path[:60]) + class_path = class_path[60:] + if lines: + zf.writestr('META-INF/MANIFEST.MF', 'Manifest-Version: 1.0\nClass-Path: \n ' + '\n '.join(lines) + ' \n\n') + + +def make_command_file_from_cp(class_path, out): + with open(out, 'w') as cp_file: + cp_file.write(os.pathsep.join(class_path)) + + def main(): s = time.time() opts, args = parse_args() # unpack tests jar try: - build_root = args[args.index('--build-root') + 1] - dest = os.path.join(build_root, 'test-classes') + build_root = args[args.index('--build-root') + 1] + dest = os.path.join(build_root, 'test-classes') except Exception: - build_root = '' + build_root = '' dest = os.path.abspath('test-classes') extract_jars(dest, opts.tests_jar_path) @@ -108,29 +108,29 @@ def main(): s = time.time() # fix java classpath - cp_idx = args.index('-classpath') - if args[cp_idx + 1].startswith('@'): - real_name = args[cp_idx + 1][1:] - mf = os.path.join(os.path.dirname(real_name), 'fixed.bfg.jar') - with open(real_name) as origin: - class_path = [os.path.join(build_root, i.strip()) for i in origin] - if opts.tests_jar_path in class_path: - class_path.remove(opts.tests_jar_path) - if opts.classpath_option_type == 'manifest': - make_bfg_from_cp(class_path, mf) - mf = os.pathsep.join([dest, mf]) - elif opts.classpath_option_type == 'command_file': - mf = os.path.splitext(mf)[0] + '.txt' - make_command_file_from_cp([dest] + class_path, mf) - mf = "@" + mf - elif opts.classpath_option_type == 'list': - mf = os.pathsep.join([dest] + class_path) - else: - raise Exception("Unexpected classpath option type: " + opts.classpath_option_type) - args = fix_cmd(args[:cp_idx + 1]) + [mf] + args[cp_idx + 2:] - else: - args[cp_idx + 1] = args[cp_idx + 1].replace(opts.tests_jar_path, dest) - args = fix_cmd(args[:cp_idx]) + args[cp_idx:] + cp_idx = args.index('-classpath') + if args[cp_idx + 1].startswith('@'): + real_name = args[cp_idx + 1][1:] + mf = os.path.join(os.path.dirname(real_name), 'fixed.bfg.jar') + with open(real_name) as origin: + class_path = [os.path.join(build_root, i.strip()) for i in origin] + if opts.tests_jar_path in class_path: + class_path.remove(opts.tests_jar_path) + if opts.classpath_option_type == 'manifest': + make_bfg_from_cp(class_path, mf) + mf = os.pathsep.join([dest, mf]) + elif opts.classpath_option_type == 'command_file': + mf = os.path.splitext(mf)[0] + '.txt' + make_command_file_from_cp([dest] + class_path, mf) + mf = "@" + mf + elif opts.classpath_option_type == 'list': + mf = os.pathsep.join([dest] + class_path) + else: + raise Exception("Unexpected classpath option type: " + opts.classpath_option_type) + args = fix_cmd(args[:cp_idx + 1]) + [mf] + args[cp_idx + 2:] + else: + args[cp_idx + 1] = args[cp_idx + 1].replace(opts.tests_jar_path, dest) + args = fix_cmd(args[:cp_idx]) + args[cp_idx:] metrics['suite_jtest_fix_classpath_(seconds)'] = time.time() - s @@ -138,10 +138,10 @@ def main(): dump_chunk_event({'metrics': metrics}, opts.trace_file) # run java cmd - if platform.system() == 'Windows': - sys.exit(subprocess.Popen(args).wait()) - else: - os.execv(args[0], args) + if platform.system() == 'Windows': + sys.exit(subprocess.Popen(args).wait()) + else: + os.execv(args[0], args) if __name__ == '__main__': diff --git a/build/scripts/with_crash_on_timeout.py b/build/scripts/with_crash_on_timeout.py index dc6df738d7..bde864ed29 100644 --- a/build/scripts/with_crash_on_timeout.py +++ b/build/scripts/with_crash_on_timeout.py @@ -1,22 +1,22 @@ # TODO prettyboy remove after ya-bin release -import os -import sys -import subprocess -import json - - -def main(args): - meta_path = os.path.abspath(args[0]) - timeout_code = int(args[1]) - subprocess.check_call(args[2:]) - with open(meta_path) as f: - meta_info = json.loads(f.read()) - if meta_info["exit_code"] == timeout_code: - print >> sys.stderr, meta_info["project"], 'crashed by timeout, use --test-disable-timeout option' - return 1 - return 0 - - -if __name__ == '__main__': - main(sys.argv[1:]) +import os +import sys +import subprocess +import json + + +def main(args): + meta_path = os.path.abspath(args[0]) + timeout_code = int(args[1]) + subprocess.check_call(args[2:]) + with open(meta_path) as f: + meta_info = json.loads(f.read()) + if meta_info["exit_code"] == timeout_code: + print >> sys.stderr, meta_info["project"], 'crashed by timeout, use --test-disable-timeout option' + return 1 + return 0 + + +if __name__ == '__main__': + main(sys.argv[1:]) diff --git a/build/scripts/with_pathsep_resolve.py b/build/scripts/with_pathsep_resolve.py index 986e757f49..37c8c598ae 100644 --- a/build/scripts/with_pathsep_resolve.py +++ b/build/scripts/with_pathsep_resolve.py @@ -1,23 +1,23 @@ -import sys -import os -import subprocess -import platform - - -def fix_args(args): - just_replace_it = False - for arg in args: - if arg == '--fix-path-sep': - just_replace_it = True - continue - if just_replace_it: - arg = arg.replace('::', os.pathsep) - just_replace_it = False - yield arg - -if __name__ == '__main__': - res = list(fix_args(sys.argv[1:])) - if platform.system() == 'Windows': - sys.exit(subprocess.Popen(res).wait()) - else: - os.execv(res[0], res) +import sys +import os +import subprocess +import platform + + +def fix_args(args): + just_replace_it = False + for arg in args: + if arg == '--fix-path-sep': + just_replace_it = True + continue + if just_replace_it: + arg = arg.replace('::', os.pathsep) + just_replace_it = False + yield arg + +if __name__ == '__main__': + res = list(fix_args(sys.argv[1:])) + if platform.system() == 'Windows': + sys.exit(subprocess.Popen(res).wait()) + else: + os.execv(res[0], res) diff --git a/build/scripts/wrap_groovyc.py b/build/scripts/wrap_groovyc.py index 489ffa80bc..068b73fd87 100644 --- a/build/scripts/wrap_groovyc.py +++ b/build/scripts/wrap_groovyc.py @@ -1,23 +1,23 @@ -import platform -import sys -import os -import subprocess - - -def fix_windows(args): - for arg in args: - if os.path.basename(arg) == 'groovyc' and os.path.basename(os.path.dirname(arg)) == 'bin': - yield arg + '.bat' - else: - yield arg - - -if __name__ == '__main__': - env = os.environ.copy() - jdk = sys.argv[1] - env['JAVA_HOME'] = jdk - args = sys.argv[2:] - if platform.system() == 'Windows': - sys.exit(subprocess.Popen(list(fix_windows(args)), env=env).wait()) - else: - os.execve(args[0], args, env) +import platform +import sys +import os +import subprocess + + +def fix_windows(args): + for arg in args: + if os.path.basename(arg) == 'groovyc' and os.path.basename(os.path.dirname(arg)) == 'bin': + yield arg + '.bat' + else: + yield arg + + +if __name__ == '__main__': + env = os.environ.copy() + jdk = sys.argv[1] + env['JAVA_HOME'] = jdk + args = sys.argv[2:] + if platform.system() == 'Windows': + sys.exit(subprocess.Popen(list(fix_windows(args)), env=env).wait()) + else: + os.execve(args[0], args, env) diff --git a/build/scripts/ya.make b/build/scripts/ya.make index 407aafb0d3..710165e40d 100644 --- a/build/scripts/ya.make +++ b/build/scripts/ya.make @@ -3,11 +3,11 @@ OWNER(g:ymake) PY2TEST() TEST_SRCS( - build_dll_and_java.py - build_info_gen.py - build_java_codenav_index.py - build_java_with_error_prone.py - build_java_with_error_prone2.py + build_dll_and_java.py + build_info_gen.py + build_java_codenav_index.py + build_java_with_error_prone.py + build_java_with_error_prone2.py build_mn.py build_pln_header.py cat.py @@ -26,7 +26,7 @@ TEST_SRCS( create_jcoverage_report.py extract_asrc.py extract_docs.py - extract_jacoco_report.py + extract_jacoco_report.py f2c.py fail_module_cmd.py fetch_from.py @@ -35,13 +35,13 @@ TEST_SRCS( fetch_from_npm.py fetch_from_sandbox.py fetch_resource.py - filter_zip.py + filter_zip.py find_and_tar.py fix_msvc_output.py fs_tools.py gen_aar_gradle_script.py gen_java_codenav_entry.py - gen_java_codenav_protobuf.py + gen_java_codenav_protobuf.py gen_mx_table.py gen_py3_reg.py gen_py_reg.py @@ -50,7 +50,7 @@ TEST_SRCS( generate_pom.py go_proto_wrapper.py go_tool.py - ios_wrapper.py + ios_wrapper.py java_pack_to_file.py link_asrc.py link_dyn_lib.py @@ -59,17 +59,17 @@ TEST_SRCS( link_lib.py llvm_opt_wrapper.py merge_coverage_data.py - merge_files.py + merge_files.py mkdir.py mkdocs_builder_wrapper.py mkver.py - pack_ios.py + pack_ios.py pack_jcoverage_resources.py perl_wrapper.py postprocess_go_fbs.py preprocess.py py_compile.py - run_ios_simulator.py + run_ios_simulator.py run_javac.py run_junit.py run_llvm_dsymutil.py diff --git a/build/sysincl/darwin.yml b/build/sysincl/darwin.yml index 0b864c846d..582c7e1202 100644 --- a/build/sysincl/darwin.yml +++ b/build/sysincl/darwin.yml @@ -171,7 +171,7 @@ - CFNetwork/CFNetwork.h - Cocoa/Cocoa.h - CoreFoundation/CFBase.h - - CoreFoundation/CFBundle.h + - CoreFoundation/CFBundle.h - CoreFoundation/CFData.h - CoreFoundation/CFDictionary.h - CoreFoundation/CFLocale.h diff --git a/build/sysincl/misc.yml b/build/sysincl/misc.yml index 26fccb155b..e9e6095888 100644 --- a/build/sysincl/misc.yml +++ b/build/sysincl/misc.yml @@ -450,9 +450,9 @@ - source_filter: "^contrib/libs/h3" includes: - alloc.h: contrib/libs/h3/h3lib/include/alloc.h -- source_filter: "^cloud/iam/token_agent/daemon" - includes: - - contrib/libs/grpc/include/grpcpp/impl/codegen/server_context_impl.h +- source_filter: "^cloud/iam/token_agent/daemon" + includes: + - contrib/libs/grpc/include/grpcpp/impl/codegen/server_context_impl.h - source_filter: "^contrib/libs/libyang" includes: diff --git a/build/sysincl/stl-to-libcxx.yml b/build/sysincl/stl-to-libcxx.yml index 6505bd4d37..7d9600f345 100644 --- a/build/sysincl/stl-to-libcxx.yml +++ b/build/sysincl/stl-to-libcxx.yml @@ -40,10 +40,10 @@ - contrib/libs/cxxsupp/libcxxrt/unwind.h - contrib/libs/libunwind/include/unwind.h -- source_filter: "^contrib/libs/cxxsupp/libcxxabi/" - includes: - - cxxabi.h: contrib/libs/cxxsupp/libcxxabi/include/cxxabi.h - +- source_filter: "^contrib/libs/cxxsupp/libcxxabi/" + includes: + - cxxabi.h: contrib/libs/cxxsupp/libcxxabi/include/cxxabi.h + - includes: - __config: contrib/libs/cxxsupp/libcxx/include/__config - __undef_macros: contrib/libs/cxxsupp/libcxx/include/__undef_macros diff --git a/build/ya.conf.json b/build/ya.conf.json index 0dd0df4c34..5f7cc875d6 100644 --- a/build/ya.conf.json +++ b/build/ya.conf.json @@ -118,15 +118,15 @@ "jar15": { "description": "Run jar from jdk15" }, - "java15": { - "description": "Run java 15" - }, - "javac15": { - "description": "Run javac 15" - }, + "java15": { + "description": "Run java 15" + }, + "javac15": { + "description": "Run javac 15" + }, "jar17": { - "description": "Run jar from jdk15" - }, + "description": "Run jar from jdk15" + }, "java17": { "description": "Run java 15" }, @@ -161,10 +161,10 @@ "description": "Run wine64", "visible": false }, - "wine32": { - "description": "Run wine", - "visible": false - }, + "wine32": { + "description": "Run wine", + "visible": false + }, "deploy": { "description": "Run Samogon", "visible": false @@ -432,13 +432,13 @@ }, "yoimports": { "description": "Go imports formatting tool" - }, - "jstyle": { - "description": "Java styler" }, - "ktlint": { - "description": "Run kotlin styler" - }, + "jstyle": { + "description": "Java styler" + }, + "ktlint": { + "description": "Run kotlin styler" + }, "ya_sed": { "description": "This tool simplifies replacing of some text in Arcadia" }, @@ -471,9 +471,9 @@ }, "skotty": { "description": "Skotty (SSH-agent) launcher" - }, - "license_analyzer": { - "description": "Run devtools license analyzer" + }, + "license_analyzer": { + "description": "Run devtools license analyzer" }, "eductl": { "description": "eductl is a toolchain of Yandex Education" @@ -1053,13 +1053,13 @@ }, { "host": { - "os": "DARWIN", - "arch": "arm64" - }, - "default": true - }, - { - "host": { + "os": "DARWIN", + "arch": "arm64" + }, + "default": true + }, + { + "host": { "os": "LINUX", "arch": "aarch64" }, @@ -2135,12 +2135,12 @@ } ], "params": { - "type": "xcode", + "type": "xcode", "match_root": "CLANG", "werror_mode": "all", "c_compiler": "$(CLANG)/usr/bin/clang", "cxx_compiler": "$(CLANG)/usr/bin/clang++", - "ar": "$(CLANG)/usr/bin/libtool", + "ar": "$(CLANG)/usr/bin/libtool", "inplace_tools": true, "gcc_version": "8.0", "dwarf_tool": { @@ -2228,7 +2228,7 @@ } ], "params": { - "type": "xcode", + "type": "xcode", "match_root": "CLANG", "werror_mode": "all", "c_compiler": "$(CLANG)/usr/bin/clang", @@ -2319,20 +2319,20 @@ "arch": "arm64" }, "default": false - }, - { - "host": { - "os": "DARWIN" - }, - "target": { - "os": "IOSSIM", - "arch": "arm64" - }, - "default": false + }, + { + "host": { + "os": "DARWIN" + }, + "target": { + "os": "IOSSIM", + "arch": "arm64" + }, + "default": false } ], "params": { - "type": "xcode", + "type": "xcode", "match_root": "CLANG", "werror_mode": "all", "c_compiler": "$(CLANG)/usr/bin/clang", @@ -2734,13 +2734,13 @@ }, { "host": { - "os": "DARWIN", - "arch": "arm64" - }, - "default": true - }, - { - "host": { + "os": "DARWIN", + "arch": "arm64" + }, + "default": true + }, + { + "host": { "os": "LINUX", "arch": "ppc64le" }, @@ -2816,13 +2816,13 @@ }, { "host": { - "os": "DARWIN", - "arch": "arm64" - }, - "default": true - }, - { - "host": { + "os": "DARWIN", + "arch": "arm64" + }, + "default": true + }, + { + "host": { "os": "LINUX", "arch": "aarch64" }, @@ -2909,22 +2909,22 @@ } ] }, - "wine32": { - "tools": { - "wine32": { - "bottle": "wine32", - "executable": "wine" - } - }, - "platforms": [ - { - "host": { - "os": "LINUX" - }, - "default": true - } - ] - }, + "wine32": { + "tools": { + "wine32": { + "bottle": "wine32", + "executable": "wine" + } + }, + "platforms": [ + { + "host": { + "os": "LINUX" + }, + "default": true + } + ] + }, "deploy": { "tools": { "deploy": { @@ -3201,8 +3201,8 @@ } ] }, - "jdk10": { - "tools": { + "jdk10": { + "tools": { "javac10": { "bottle": "jdk10", "executable": "javac10" @@ -3215,8 +3215,8 @@ "bottle": "jdk10", "executable": "jar10" } - }, - "platforms": [ + }, + "platforms": [ { "host": { "os": "LINUX" @@ -3235,10 +3235,10 @@ }, "default": true } - ] - }, - "jdk11": { - "tools": { + ] + }, + "jdk11": { + "tools": { "javac11": { "bottle": "jdk11", "executable": "javac11" @@ -3251,8 +3251,8 @@ "bottle": "jdk11", "executable": "jar11" } - }, - "platforms": [ + }, + "platforms": [ { "host": { "os": "LINUX" @@ -3271,44 +3271,44 @@ }, "default": true } - ] - }, - "jdk15": { - "tools": { - "javac15": { - "bottle": "jdk15", - "executable": "javac15" - }, - "java15": { - "bottle": "jdk15", - "executable": "java15" - }, - "jar15": { - "bottle": "jdk15", - "executable": "jar15" - } - }, - "platforms": [ - { - "host": { - "os": "LINUX" - }, - "default": true - }, - { - "host": { - "os": "WIN" - }, - "default": true - }, - { - "host": { - "os": "DARWIN" - }, - "default": true - } - ] - }, + ] + }, + "jdk15": { + "tools": { + "javac15": { + "bottle": "jdk15", + "executable": "javac15" + }, + "java15": { + "bottle": "jdk15", + "executable": "java15" + }, + "jar15": { + "bottle": "jdk15", + "executable": "jar15" + } + }, + "platforms": [ + { + "host": { + "os": "LINUX" + }, + "default": true + }, + { + "host": { + "os": "WIN" + }, + "default": true + }, + { + "host": { + "os": "DARWIN" + }, + "default": true + } + ] + }, "jdk17": { "tools": { "jar17": { @@ -3909,7 +3909,7 @@ "executable": "mvn" } }, - "platforms": [ + "platforms": [ { "host": { "os": "LINUX" @@ -3928,7 +3928,7 @@ }, "default": true } - ] + ] }, "fast_diff": { "tools": { @@ -3961,13 +3961,13 @@ } ] }, - "idea_run_plugin": { - "tools": { + "idea_run_plugin": { + "tools": { "idea_run_plugin": { "bottle": "idea_run_plugin" } - }, - "platforms": [ + }, + "platforms": [ { "host": { "os": "LINUX" @@ -3986,15 +3986,15 @@ }, "default": true } - ] - }, - "idea_style_config": { - "tools": { + ] + }, + "idea_style_config": { + "tools": { "idea_style_config": { "bottle": "idea_style_config" } - }, - "platforms": [ + }, + "platforms": [ { "host": { "os": "LINUX" @@ -4013,15 +4013,15 @@ }, "default": true } - ] - }, - "error_prone": { - "tools": { + ] + }, + "error_prone": { + "tools": { "error_prone": { "bottle": "error_prone" } - }, - "platforms": [ + }, + "platforms": [ { "host": { "os": "LINUX" @@ -4040,15 +4040,15 @@ }, "default": true } - ] - }, - "jstyle_runner": { - "tools": { + ] + }, + "jstyle_runner": { + "tools": { "jstyle_runner": { "bottle": "jstyle_runner" } - }, - "platforms": [ + }, + "platforms": [ { "host": { "os": "LINUX" @@ -4067,15 +4067,15 @@ }, "default": true } - ] - }, - "sonar_scanner": { - "tools": { + ] + }, + "sonar_scanner": { + "tools": { "sonar_scanner": { "bottle": "sonar_scanner" } - }, - "platforms": [ + }, + "platforms": [ { "host": { "os": "LINUX" @@ -4094,16 +4094,16 @@ }, "default": true } - ] - }, - "gcovr": { - "tools": { + ] + }, + "gcovr": { + "tools": { "gcovr": { "bottle": "gcovr", "executable": "gcovr" } - }, - "platforms": [ + }, + "platforms": [ { "host": { "os": "LINUX" @@ -4122,16 +4122,16 @@ }, "default": true } - ] - }, - "lcov_cobertura": { - "tools": { + ] + }, + "lcov_cobertura": { + "tools": { "lcov_cobertura": { "bottle": "lcov_cobertura", "executable": "lcov_cobertura" } - }, - "platforms": [ + }, + "platforms": [ { "host": { "os": "LINUX" @@ -4150,15 +4150,15 @@ }, "default": true } - ] - }, - "uber_jar": { - "tools": { + ] + }, + "uber_jar": { + "tools": { "uber_jar": { "bottle": "uber_jar" } - }, - "platforms": [ + }, + "platforms": [ { "host": { "os": "LINUX" @@ -4177,15 +4177,15 @@ }, "default": true } - ] - }, - "uber_jar10": { - "tools": { + ] + }, + "uber_jar10": { + "tools": { "uber_jar10": { "bottle": "uber_jar10" } - }, - "platforms": [ + }, + "platforms": [ { "host": { "os": "LINUX" @@ -4204,45 +4204,45 @@ }, "default": true } - ] - }, - "kythe": { - "tools": { + ] + }, + "kythe": { + "tools": { "kythe": { "bottle": "kythe" } - }, - "platforms": [ + }, + "platforms": [ { "host": { "os": "LINUX" }, "default": true } - ] - }, - "kythe_to_proto": { - "tools": { + ] + }, + "kythe_to_proto": { + "tools": { "kythe_to_proto": { "bottle": "kythe_to_proto" } - }, - "platforms": [ + }, + "platforms": [ { "host": { "os": "LINUX" }, "default": true } - ] - }, - "scriptgen": { - "tools": { + ] + }, + "scriptgen": { + "tools": { "scriptgen": { "bottle": "scriptgen" } - }, - "platforms": [ + }, + "platforms": [ { "host": { "os": "LINUX" @@ -4260,16 +4260,16 @@ "os": "DARWIN" }, "default": true - }, - { - "host": { - "os": "DARWIN", - "arch": "arm64" - }, - "default": true + }, + { + "host": { + "os": "DARWIN", + "arch": "arm64" + }, + "default": true } - ] - }, + ] + }, "kiwi_protos": { "tools": { "kiwi_protos": { @@ -5313,79 +5313,79 @@ "default": true } ] - }, - "jstyle_bundle": { - "tools": { - "jstyle": { - "bottle": "jstyle_bundle", - "executable": "jstyle" - } - }, - "platforms": [ - { - "host": { - "os": "LINUX" - }, - "default": true - }, - { - "host": { - "os": "WIN" - }, - "default": true - }, - { - "host": { - "os": "DARWIN" - }, - "default": true - } - ] - }, - "ktlint_bundle": { - "tools": { - "ktlint": { - "bottle": "ktlint_bundle", - "executable": "ktlint" - } - }, - "platforms": [ - { - "host": { - "os": "LINUX" - }, - "default": true - }, - { - "host": { - "os": "WIN" - }, - "default": true - }, - { - "host": { - "os": "DARWIN" - }, - "default": true - } - ] - }, - "devtools_license_analyzer_bundle": { - "tools": { - "license_analyzer": { - "bottle": "devtools_license_analyzer_bundle", - "executable": "license_analyzer" - } - }, - "platforms": [ - { - "host": { - "os": "LINUX" - }, - "default": true - } - ] - }, + }, + "jstyle_bundle": { + "tools": { + "jstyle": { + "bottle": "jstyle_bundle", + "executable": "jstyle" + } + }, + "platforms": [ + { + "host": { + "os": "LINUX" + }, + "default": true + }, + { + "host": { + "os": "WIN" + }, + "default": true + }, + { + "host": { + "os": "DARWIN" + }, + "default": true + } + ] + }, + "ktlint_bundle": { + "tools": { + "ktlint": { + "bottle": "ktlint_bundle", + "executable": "ktlint" + } + }, + "platforms": [ + { + "host": { + "os": "LINUX" + }, + "default": true + }, + { + "host": { + "os": "WIN" + }, + "default": true + }, + { + "host": { + "os": "DARWIN" + }, + "default": true + } + ] + }, + "devtools_license_analyzer_bundle": { + "tools": { + "license_analyzer": { + "bottle": "devtools_license_analyzer_bundle", + "executable": "license_analyzer" + } + }, + "platforms": [ + { + "host": { + "os": "LINUX" + }, + "default": true + } + ] + }, "ya_sed": { "tools": { "ya_sed": { @@ -5935,7 +5935,7 @@ }, "python": { "formula": { - "sandbox_id": 981577320, + "sandbox_id": 981577320, "match": "Python" }, "executable": { @@ -5982,16 +5982,16 @@ ] } }, - "jdk10": { - "formula": { + "jdk10": { + "formula": { "sandbox_id": [ 240834225, 240834934, 240835020 ], - "match": "jdk" - }, - "executable": { + "match": "jdk" + }, + "executable": { "javac10": [ "bin", "javac" @@ -6004,18 +6004,18 @@ "bin", "jar" ] - } - }, - "jdk11": { - "formula": { + } + }, + "jdk11": { + "formula": { "sandbox_id": [ 365362175, 365387897, 365361227 ], - "match": "jdk" - }, - "executable": { + "match": "jdk" + }, + "executable": { "javac11": [ "bin", "javac" @@ -6028,32 +6028,32 @@ "bin", "jar" ] - } - }, - "jdk15": { - "formula": { - "sandbox_id": [ - 823158461, - 823183568, - 823899886 - ], - "match": "openjdk" - }, - "executable": { - "javac15": [ - "bin", - "javac" - ], - "java15": [ - "bin", - "java" - ], - "jar15": [ - "bin", - "jar" - ] - } - }, + } + }, + "jdk15": { + "formula": { + "sandbox_id": [ + 823158461, + 823183568, + 823899886 + ], + "match": "openjdk" + }, + "executable": { + "javac15": [ + "bin", + "javac" + ], + "java15": [ + "bin", + "java" + ], + "jar15": [ + "bin", + "jar" + ] + } + }, "jdk17": { "formula": { "sandbox_id": [ @@ -6377,112 +6377,112 @@ "match": "CUDA" } }, - "idea_run_plugin": { - "formula": { + "idea_run_plugin": { + "formula": { "sandbox_id": [ 98817148 ], - "match": "ya runner idea plugin" - } - }, - "idea_style_config": { - "formula": { + "match": "ya runner idea plugin" + } + }, + "idea_style_config": { + "formula": { "sandbox_id": [ - 874273162 + 874273162 ], - "match": "Intellij IDEA codestyle config" - } - }, - "error_prone": { - "formula": { + "match": "Intellij IDEA codestyle config" + } + }, + "error_prone": { + "formula": { "sandbox_id": [ 273389189 ], - "match": "ERRORPRONE" - } - }, - "jstyle_runner": { - "formula": { + "match": "ERRORPRONE" + } + }, + "jstyle_runner": { + "formula": { "sandbox_id": [ - 623847348 + 623847348 ], - "match": "JSTYLERUNNER" - } - }, - "sonar_scanner": { - "formula": { + "match": "JSTYLERUNNER" + } + }, + "sonar_scanner": { + "formula": { "sandbox_id": [ 142526229 ], - "match": "sonar_scanner" - } - }, - "gcovr": { - "formula": { + "match": "sonar_scanner" + } + }, + "gcovr": { + "formula": { "sandbox_id": [ 145238992 ], - "match": "gcovr" - }, - "executable": { + "match": "gcovr" + }, + "executable": { "gcovr": [ "gcovr" ] - } - }, - "lcov_cobertura": { - "formula": { + } + }, + "lcov_cobertura": { + "formula": { "sandbox_id": [ 151814389 ], - "match": "lcov_cobertura" - }, - "executable": { + "match": "lcov_cobertura" + }, + "executable": { "lcov_cobertura": [ "lcovcob" ] - } - }, - "uber_jar": { - "formula": { + } + }, + "uber_jar": { + "formula": { "sandbox_id": [ 147123506 ], - "match": "uber_jar" - } - }, - "uber_jar10": { - "formula": { + "match": "uber_jar" + } + }, + "uber_jar10": { + "formula": { "sandbox_id": [ 260182938 ], - "match": "uber_jar10" - } - }, - "kythe": { - "formula": { + "match": "uber_jar10" + } + }, + "kythe": { + "formula": { "sandbox_id": [ 377918568 ], - "match": "KYTHE" - } - }, - "kythe_to_proto": { - "formula": { + "match": "KYTHE" + } + }, + "kythe_to_proto": { + "formula": { "sandbox_id": [ 403346294 ], - "match": "KYTHETOPROTO" - } - }, - "scriptgen": { - "formula": { + "match": "KYTHETOPROTO" + } + }, + "scriptgen": { + "formula": { "sandbox_id": [ 1164520637 ], - "match": "SCRIPTGEN" - } - }, + "match": "SCRIPTGEN" + } + }, "wine": { "formula": { "sandbox_id": 495594294, @@ -6495,18 +6495,18 @@ ] } }, - "wine32": { - "formula": { - "sandbox_id": 1010959442, - "match": "Wine" - }, - "executable": { - "wine": [ - "bin", - "wine" - ] - } - }, + "wine32": { + "formula": { + "sandbox_id": 1010959442, + "match": "Wine" + }, + "executable": { + "wine": [ + "bin", + "wine" + ] + } + }, "deploy": { "formula": { "sandbox_id": 243231127, @@ -6727,7 +6727,7 @@ "sandbox_id": [ 1037272933, 1032891985, - 717207102, + 717207102, 1032896450 ], "match": "GDB" @@ -7755,53 +7755,53 @@ "sedem" ] } - }, - "jstyle_bundle": { - "formula": { - "sandbox_id": [ - 603849348, - 603450767, - 603859837 - ], - "match": "jstyle" - }, - "executable": { - "jstyle": [ - "idea-community", - "bin", - "format.bat" - ] - } - }, - "ktlint_bundle": { - "formula": { - "sandbox_id": [ - 1037460929, - 1037467384, - 1038449502 - ], - "match": "ktlint" - }, - "executable": { - "ktlint": [ - "run.bat" - ] - } - }, - "devtools_license_analyzer_bundle": { - "formula": { - "sandbox_id": [ - 1207941042, - 1207941794 - ], - "match": "license_analyzer" - }, - "executable": { - "license_analyzer": [ - "license_analyzer" - ] - } - }, + }, + "jstyle_bundle": { + "formula": { + "sandbox_id": [ + 603849348, + 603450767, + 603859837 + ], + "match": "jstyle" + }, + "executable": { + "jstyle": [ + "idea-community", + "bin", + "format.bat" + ] + } + }, + "ktlint_bundle": { + "formula": { + "sandbox_id": [ + 1037460929, + 1037467384, + 1038449502 + ], + "match": "ktlint" + }, + "executable": { + "ktlint": [ + "run.bat" + ] + } + }, + "devtools_license_analyzer_bundle": { + "formula": { + "sandbox_id": [ + 1207941042, + 1207941794 + ], + "match": "license_analyzer" + }, + "executable": { + "license_analyzer": [ + "license_analyzer" + ] + } + }, "ya_sed": { "formula": { "sandbox_id": [ @@ -8090,8 +8090,8 @@ ] } } - }, - "toolchain_aliases": { + }, + "toolchain_aliases": { "clang-win-x86_64": "clang12-win-x86_64", "clang-win-i686": "clang12-win-i686", "gcc-linux-x86_64": "gcc82-linux-x86_64" diff --git a/build/ymake.core.conf b/build/ymake.core.conf index fa85cb7dde..081833998b 100644 --- a/build/ymake.core.conf +++ b/build/ymake.core.conf @@ -346,28 +346,28 @@ FATAL_ERROR_MESSAGE= # tag:python-specific # PYTHON_DISTR={ "default" | "macos-brew" } determine python system supply -# see build/platform/python/ya.make +# see build/platform/python/ya.make PYTHON_DISTR="default" when ($USE_SYSTEM_PYTHON) { USE_ARCADIA_PYTHON=no select ($USE_SYSTEM_PYTHON) { "2.7" ? { - _SYSTEM_PYTHON27=yes + _SYSTEM_PYTHON27=yes PY_VERSION=2.7 PY_FRAMEWORK_VERSION=2.7 } "3.4" ? { - _SYSTEM_PYTHON34=yes + _SYSTEM_PYTHON34=yes PY_VERSION=3.4m PY_FRAMEWORK_VERSION=3.4 } "3.5" ? { - _SYSTEM_PYTHON35=yes + _SYSTEM_PYTHON35=yes PY_VERSION=3.5m PY_FRAMEWORK_VERSION=3.5 } "3.6" ? { - _SYSTEM_PYTHON36=yes + _SYSTEM_PYTHON36=yes PY_VERSION=3.6m PY_FRAMEWORK_VERSION=3.6 } @@ -386,11 +386,11 @@ when ($USE_SYSTEM_PYTHON) { PY_VERSION=3.9 PY_FRAMEWORK_VERSION=3.9 } - "3.10" ? { - _SYSTEM_PYTHON310=yes - PY_VERSION=3.10 - PY_FRAMEWORK_VERSION=3.10 - } + "3.10" ? { + _SYSTEM_PYTHON310=yes + PY_VERSION=3.10 + PY_FRAMEWORK_VERSION=3.10 + } default ? { FATAL_ERROR_MESSAGE+=invalid USE_SYSTEM_PYTHON value } @@ -908,14 +908,14 @@ macro _PY_PROTO_CMD_INTERNAL(File) { # tag:proto tag:java-specific JAVA_PROTO_RUNTIME= - + # tag:proto tag:java-specific ### @usage: USE_JAVALITE() ### Use protobuf-javalite for Java -macro USE_JAVALITE() { +macro USE_JAVALITE() { SET(JAVA_PROTO_RUNTIME javalite) -} - +} + # tag:proto tag:java-specific JAVA_PROTO_RUNTIME_VERSION = 3.18.2 JAVA_PROTO_COMMON_VERSION = 1.12.0 @@ -925,13 +925,13 @@ when ($JAVA_PROTO_RUNTIME == "javalite") { JAVA_GRPC_STUB=contrib/java/io/grpc/grpc-stub/1.19.0 JAVA_GRPC_PROTOBUF=contrib/java/io/grpc/grpc-protobuf/1.19.0 } -otherwise { +otherwise { _JAVA_PROTO_OUT_ARG=--java_out= JAVA_PROTOBUF_PEERS=contrib/java/com/google/protobuf/protobuf-java/${JAVA_PROTO_RUNTIME_VERSION} JAVA_GRPC_STUB=contrib/java/io/grpc/grpc-stub/1.26.0 JAVA_GRPC_PROTOBUF=contrib/java/io/grpc/grpc-protobuf/1.26.0 -} - +} + # tag:proto tag:java-specific macro _JAVA_PROTO_CMD(File) { .CMD=${cwd;rootdir;input:File} $YMAKE_PYTHON ${input:"build/scripts/tared_protoc.py"} --tar-output ${output;norel;nopath;noext;suf=.jsrc:File} --protoc-out-dir $ARCADIA_BUILD_ROOT/java_out $PROTOC -I=./$PROTO_NAMESPACE ${pre=-I=:_PROTO__INCLUDE} -I=$ARCADIA_ROOT $_JAVA_PROTO_OUT_ARG$ARCADIA_BUILD_ROOT/java_out ${input;rootrel:File} ${kv;hide:"p PB"} ${kv;hide:"pc yellow"} $JAVA_PROTO_ARGS @@ -1097,8 +1097,8 @@ macro _JAVA_FLATC_CMD(SRC) { # variables must be defined for all module types to make generate_mf.py work MODULE_PREFIX= MODULE_SUFFIX= -NEED_PLATFORM_PEERDIRS=yes -PEERDIR_TEST_TOOL=yes +NEED_PLATFORM_PEERDIRS=yes +PEERDIR_TEST_TOOL=yes # tag:python-specific PYTHON2=no @@ -1256,11 +1256,11 @@ module _BASE_UNIT: _BARE_UNIT { LDFLAGS+=-fprofile-instr-use=$PGO_PATH } } - - when ($COMPILER_PLATFORM && $NEED_PLATFORM_PEERDIRS == "yes") { + + when ($COMPILER_PLATFORM && $NEED_PLATFORM_PEERDIRS == "yes") { PEERDIR+=$COMPILER_PLATFORM } - + when ($OS_LINUX && $NEED_PLATFORM_PEERDIRS == "yes") { PEERDIR+=contrib/libs/linux-headers } @@ -1278,7 +1278,7 @@ module _BASE_UNIT: _BARE_UNIT { PEERDIR+=$_UBUNTU_COMPAT_PEERDIR when ($NORUNTIME != "yes") { - PEERDIR+=contrib/libs/cxxsupp + PEERDIR+=contrib/libs/cxxsupp when ($MAPSMOBI_BUILD_TARGET == "yes") { PEERDIR+=build/platform/mapkit } @@ -1326,12 +1326,12 @@ module _BASE_UNIT: _BARE_UNIT { CFLAGS += -mno-sse } - when ($LIPO == "yes" && $NEED_PLATFORM_PEERDIRS != "no") { - when ($OS_DARWIN == "yes" || $OS_IOS == "yes") { - PEERDIR += build/platform/cctools - } - } - + when ($LIPO == "yes" && $NEED_PLATFORM_PEERDIRS != "no") { + when ($OS_DARWIN == "yes" || $OS_IOS == "yes") { + PEERDIR += build/platform/cctools + } + } + _REGISTER_NO_CHECK_IMPORTS() DEFAULT(PACKAGE_PREFIX_ARGS) @@ -1341,9 +1341,9 @@ module _BASE_UNIT: _BARE_UNIT { DEFAULT(BISON_FLAGS -v) DEFAULT(GP_FLAGS -CtTLANSI-C -Dk* -c) - when ($NEED_BINUTILS_PEERDIR && $BINUTILS_USED && $NEED_PLATFORM_PEERDIRS == "yes") { - PEERDIR+=build/platform/binutils - } + when ($NEED_BINUTILS_PEERDIR && $BINUTILS_USED && $NEED_PLATFORM_PEERDIRS == "yes") { + PEERDIR+=build/platform/binutils + } } _LINKER_ID= @@ -1408,8 +1408,8 @@ when ($COMMON_LINK_SETTINGS == "yes") { NOPLATFORM=yes } - when (($USE_EAT_MY_DATA == "yes") && ($WIN32 != "yes") && ($DARWIN != "yes") && ($OS_ANDROID != "yes") && ($OS_IOS != "yes")) { - PEERDIR+=contrib/libs/libeatmydata/autocheck_wrapper + when (($USE_EAT_MY_DATA == "yes") && ($WIN32 != "yes") && ($DARWIN != "yes") && ($OS_ANDROID != "yes") && ($OS_IOS != "yes")) { + PEERDIR+=contrib/libs/libeatmydata/autocheck_wrapper } when ($USE_ARCADIA_LIBM == "yes") { @@ -1611,10 +1611,10 @@ module _BASE_PROGRAM: _LINK_UNIT { .GLOBAL=LDFLAGS _WHOLE_ARCHIVE_LIBS_VALUE RPATH SET(MODULE_TYPE PROGRAM) - when ($OS_IOS == "yes") { - EXTS+=.ios.interface - } - + when ($OS_IOS == "yes") { + EXTS+=.ios.interface + } + when ($WIN32 == "yes" || $OS_CYGWIN == "yes") { MODULE_SUFFIX=.exe } @@ -1909,7 +1909,7 @@ module FUZZ: _BASE_PROGRAM { DEFAULT(LIBFUZZER_PATH contrib/libs/libfuzzer12) when ($USE_AFL == "no") { - PEERDIR+=$LIBFUZZER_PATH + PEERDIR+=$LIBFUZZER_PATH } when ($USE_AFL == "yes") { PEERDIR+=$LIBFUZZER_PATH/afl @@ -1923,22 +1923,22 @@ module FUZZ: _BASE_PROGRAM { } # tag:ios-specific -PACK_IOS_CMD= -when ($OS_IOS && $BUILD_IOS_APP) { - PACK_IOS_CMD=$YMAKE_PYTHON ${input:"build/scripts/pack_ios.py"} --binary $TARGET --target $TARGET --temp-dir $BINDIR $PEERS -} - -LINK_BOOSTTEST_CMD= -BOOST_TEST_TYPE_STRING= - -when ($BOOSTTEST_IS_FAT_OBJECT) { - LINK_BOOSTTEST_CMD=$LINK_RECURSIVE_LIBRARY - BOOST_TEST_TYPE_STRING=no.test -} -otherwise { - LINK_BOOSTTEST_CMD=$LINK_EXE - BOOST_TEST_TYPE_STRING=boost.test -} +PACK_IOS_CMD= +when ($OS_IOS && $BUILD_IOS_APP) { + PACK_IOS_CMD=$YMAKE_PYTHON ${input:"build/scripts/pack_ios.py"} --binary $TARGET --target $TARGET --temp-dir $BINDIR $PEERS +} + +LINK_BOOSTTEST_CMD= +BOOST_TEST_TYPE_STRING= + +when ($BOOSTTEST_IS_FAT_OBJECT) { + LINK_BOOSTTEST_CMD=$LINK_RECURSIVE_LIBRARY + BOOST_TEST_TYPE_STRING=no.test +} +otherwise { + LINK_BOOSTTEST_CMD=$LINK_EXE + BOOST_TEST_TYPE_STRING=boost.test +} # tag:deprecated ### @usage: BOOSTTEST([name]) #deprecated @@ -1949,15 +1949,15 @@ otherwise { module BOOSTTEST: _BASE_PROGRAM { .NODE_TYPE=Program .FINAL_TARGET=no - .CMD=LINK_BOOSTTEST_CMD + .CMD=LINK_BOOSTTEST_CMD PEERDIR(library/cpp/testing/boost_test) - when ($BOOSTTEST_IS_FAT_OBJECT) { - MODULE_SUFFIX=.a - } - elsewhen ($OS_IOS && $BUILD_IOS_APP) { - PEERDIR+=devtools/boosttest_ios_wrapper/library - MODULE_SUFFIX=.ios.tar - } + when ($BOOSTTEST_IS_FAT_OBJECT) { + MODULE_SUFFIX=.a + } + elsewhen ($OS_IOS && $BUILD_IOS_APP) { + PEERDIR+=devtools/boosttest_ios_wrapper/library + MODULE_SUFFIX=.ios.tar + } ADD_YTEST($MODULE_PREFIX$REALPRJNAME $BOOST_TEST_TYPE_STRING) SET_APPEND(_MAKEFILE_INCLUDE_LIKE_DEPS canondata/result.json) } @@ -2023,7 +2023,7 @@ TEST_SRCS_VALUE= ### ### Documentation: https://wiki.yandex-team.ru/yatool/test/#testynapytest macro TEST_SRCS(Tests...) { - SET_APPEND(TEST_SRCS_VALUE $Tests) + SET_APPEND(TEST_SRCS_VALUE $Tests) } macro DISABLE_DATA_VALIDATION() { @@ -2118,7 +2118,7 @@ macro SKIP_TEST(Reason...) { } # tag:test -LINT_LEVEL_VALUE=extended +LINT_LEVEL_VALUE=extended ### @usage: NO_LINT() ### ### Do not check for style files included in PY_SRCS, TEST_SRCS, JAVA_SRCS. @@ -2131,7 +2131,7 @@ macro NO_LINT() { ### Set linting levem for sources of the module macro LINT(level) { SET(LINT_LEVEL_VALUE $level) -} +} # tag:python-specific tag:test ### @usage: NO_DOCTESTS() @@ -2369,7 +2369,7 @@ module _LIBRARY: _BASE_UNIT { #TODO: Remove this hack (really we do not need add fake src at all) ENABLE(NEED_ADD_FAKE_SRC) _REQUIRE_EXPLICIT_LICENSE(contrib/deprecated contrib/libs contrib/restricted contrib/python) - CHECK_CONTRIB_CREDITS(contrib/clickhouse contrib/libs contrib/deprecated EXCEPT contrib/deprecated/python) + CHECK_CONTRIB_CREDITS(contrib/clickhouse contrib/libs contrib/deprecated EXCEPT contrib/deprecated/python) when ($USE_MKL == "yes") { NOPLATFORM=yes @@ -2518,28 +2518,28 @@ module RESOURCES_LIBRARY: _BARE_UNIT { MODULE_SUFFIX=.pkg.fake ENABLE(NEED_ADD_FAKE_SRC) - WITHOUT_LICENSE_TEXTS() + WITHOUT_LICENSE_TEXTS() } -FAT_OBJECT_ARGS= -FAT_OBJECT_OUTS= +FAT_OBJECT_ARGS= +FAT_OBJECT_OUTS= + +macro _FAT_OBJECT_ARGS_BASE(Flag, Lib) { + .CMD=$Flag=$Lib +} -macro _FAT_OBJECT_ARGS_BASE(Flag, Lib) { - .CMD=$Flag=$Lib -} - -macro PACK_GLOBALS_IN_LIBRARY() { +macro PACK_GLOBALS_IN_LIBRARY() { SET_APPEND(FAT_OBJECT_ARGS $_FAT_OBJECT_ARGS_BASE(--globals-lib, ${BINDIR}/${pre=$MODULE_PREFIX:REALPRJNAME.globals.a})) SET_APPEND(FAT_OBJECT_OUTS \${output;hide;noauto;norel;nopath;noext;pre=$MODULE_PREFIX;suf=$BINDIR:REALPRJNAME.globals.a}) -} - -when ($OS_ANDROID != "yes") { - LINK_FAT_OBJECT_CMD=$LINK_FAT_OBJECT -} -otherwise { - LINK_FAT_OBJECT_CMD=$LINK_FAT_OBJECT_LIBRARY -} - +} + +when ($OS_ANDROID != "yes") { + LINK_FAT_OBJECT_CMD=$LINK_FAT_OBJECT +} +otherwise { + LINK_FAT_OBJECT_CMD=$LINK_FAT_OBJECT_LIBRARY +} + ### @usage: FAT_OBJECT() ### ### The "fat" object module. It will contain all its transitive dependencies reachable by PEERDIRs: @@ -2547,16 +2547,16 @@ otherwise { ### ### Designed for use in XCode projects for iOS. module FAT_OBJECT: LIBRARY { - .ALLOWED=PACK_GLOBALS_IN_LIBRARY - .CMD=LINK_FAT_OBJECT_CMD + .ALLOWED=PACK_GLOBALS_IN_LIBRARY + .CMD=LINK_FAT_OBJECT_CMD .PEERDIR_POLICY=as_build_from when ($MSVC == "yes" || $CYGWIN == "yes") { MODULE_SUFFIX=.global.lib } - elsewhen ($OS_ANDROID == "yes") { - MODULE_SUFFIX=.a - } + elsewhen ($OS_ANDROID == "yes") { + MODULE_SUFFIX=.a + } otherwise { MODULE_SUFFIX=.o } @@ -2569,22 +2569,22 @@ module FAT_OBJECT: LIBRARY { SRCS(build/scripts/_fake_src.cpp) } -### @usage: RECURSIVE_LIBRARY() -### -### The recursive ("fat") library module. It will contain all its transitive dependencies reachable by PEERDIRs: -### from static libraries, local (from own SRCS) and global (from peers') object files. -### -### Designed for use in XCode projects for iOS. -module RECURSIVE_LIBRARY: LIBRARY { - .CMD=LINK_RECURSIVE_LIBRARY - .PEERDIR_POLICY=as_build_from - - # This module requires at least one .o which is not subject to removal so just add _fake_src.cpp as SRCS - # ymake's handling of NEED_ADD_FAKE_SRC may insert arbitrary command, not necessarily compilation - DISABLE(NEED_ADD_FAKE_SRC) - SRCS(build/scripts/_fake_src.cpp) -} - +### @usage: RECURSIVE_LIBRARY() +### +### The recursive ("fat") library module. It will contain all its transitive dependencies reachable by PEERDIRs: +### from static libraries, local (from own SRCS) and global (from peers') object files. +### +### Designed for use in XCode projects for iOS. +module RECURSIVE_LIBRARY: LIBRARY { + .CMD=LINK_RECURSIVE_LIBRARY + .PEERDIR_POLICY=as_build_from + + # This module requires at least one .o which is not subject to removal so just add _fake_src.cpp as SRCS + # ymake's handling of NEED_ADD_FAKE_SRC may insert arbitrary command, not necessarily compilation + DISABLE(NEED_ADD_FAKE_SRC) + SRCS(build/scripts/_fake_src.cpp) +} + _SONAME= ### @usage: DLL_UNIT # internal @@ -2631,9 +2631,9 @@ module DLL_UNIT: _LINK_UNIT { when ($LINUX == "yes") { # '-z notext' is needed for linking mkl into shared libraries LDFLAGS += -Wl,-z,notext - when ($_NO_FIX_ELF != "yes") { - LINK_DYN_LIB_FLAGS+=--fix-elf ${tool:"tools/fix_elf"} - } + when ($_NO_FIX_ELF != "yes") { + LINK_DYN_LIB_FLAGS+=--fix-elf ${tool:"tools/fix_elf"} + } } when ($DARWIN == "yes") { @@ -2669,7 +2669,7 @@ module PY_ANY_MODULE: DLL_UNIT { when ($USE_ARCADIA_PYTHON == "no") { when ($USE_SYSTEM_PYTHON) { - PEERDIR+=build/platform/python + PEERDIR+=build/platform/python } otherwise { when ($MSVC == "yes" || $CYGWIN == "yes") { @@ -2924,9 +2924,9 @@ multimodule DYNAMIC_LIBRARY { PEERDIR+=build/platform/local_so RESTRICT_PATH(contrib devtools/dummy_arcadia MSG Use of this module type outside contrib/libs is prohibited) - - # disable credits generation for static library - SET(CREDITS_FLAGS) + + # disable credits generation for static library + SET(CREDITS_FLAGS) } } @@ -3021,7 +3021,7 @@ module PACKAGE: _BASE_UNIT { when ($PACKED_PACKAGE_EXT) { PACKED_PACKAGE_ARGS+=--dest-arch ${output;pre=$MODULE_PREFIX;suf=.$PACKED_PACKAGE_EXT:REALPRJNAME} } - SET(NEED_PLATFORM_PEERDIRS no) + SET(NEED_PLATFORM_PEERDIRS no) PEERDIR_TAGS=CPP_PROTO CPP_FBS PY2 PY2_NATIVE YQL_UDF_SHARED __EMPTY__ DOCBOOK JAR_RUNNABLE PY3_BIN PY3TEST_PROGRAM DLL } @@ -3077,7 +3077,7 @@ module UNION: _BASE_UNIT { SET(MODULE_SUFFIX .pkg.fake) SET(DONT_RESOLVE_INCLUDES yes) .CMD=TOUCH_UNIT_MF - SET(NEED_PLATFORM_PEERDIRS no) + SET(NEED_PLATFORM_PEERDIRS no) PEERDIR_TAGS=CPP_PROTO CPP_FBS PY2 PY2_NATIVE YQL_UDF_SHARED __EMPTY__ DOCBOOK JAR_RUNABLE PY3_BIN DLL } @@ -3417,9 +3417,9 @@ module EXTERNAL_JAVA_LIBRARY: _BASE_UNIT { .ALLOWED=EMBED_JAVA_VCS_INFO .RESTRICTED=EXTERNAL_JAR - PEERDIR(build/platform/java/jdk) + PEERDIR(build/platform/java/jdk) PEERDIR+=$JDK_RESOURCE_PEERDIR - + PEERDIR_TAGS=JAVA_PROTO JAVA_FBS JAVA_IDL PROPAGATES_MANAGEABLE_PEERS=yes DYNAMIC_LINK=yes @@ -3618,19 +3618,19 @@ module JAVA_CONTRIB: _JAR_BASE { # tag:kotlin-specific 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 -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 +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= # tag:java-specific 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 +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 @@ -3782,9 +3782,9 @@ module JAR_LIBRARY: _COMPILABLE_JAR_BASE { 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 - } + 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 @@ -3822,7 +3822,7 @@ module JAR_LIBRARY: _COMPILABLE_JAR_BASE { } when($ERROR_PRONE_VALUE) { - PEERDIR+=$ERROR_PRONE_PEERDIR + PEERDIR+=$ERROR_PRONE_PEERDIR JAVAC_CMD=$ERROR_PRONE_JAVAC_CMD } @@ -4222,49 +4222,49 @@ module PY3_PROGRAM_BIN: _BASE_PY3_PROGRAM { } # tag:java-specific -JAVA_SWIG_DELIM=JAVA_SWIG_DELIM - +JAVA_SWIG_DELIM=JAVA_SWIG_DELIM + # tag:java-specific -JDK_VERSION=11 -when ($MAPSMOBI_BUILD_TARGET && $OS_ANDROID) { - JDK_VERSION=8 -} - - +JDK_VERSION=11 +when ($MAPSMOBI_BUILD_TARGET && $OS_ANDROID) { + JDK_VERSION=8 +} + + # tag:java-specific -# remove extra peerdir to jdk11 after https://st.yandex-team.ru/DEVTOOLS-8851 is done -when ($JDK_VERSION == "17") { - JDK_RESOURCE_PEERDIR=build/platform/java/jdk/jdk17 build/platform/java/jdk/jdk11 -} +# remove extra peerdir to jdk11 after https://st.yandex-team.ru/DEVTOOLS-8851 is done +when ($JDK_VERSION == "17") { + JDK_RESOURCE_PEERDIR=build/platform/java/jdk/jdk17 build/platform/java/jdk/jdk11 +} when ($JDK_VERSION == "16") { - JDK_RESOURCE_PEERDIR=build/platform/java/jdk/jdk16 build/platform/java/jdk/jdk11 + JDK_RESOURCE_PEERDIR=build/platform/java/jdk/jdk16 build/platform/java/jdk/jdk11 } when ($JDK_VERSION == "15") { - JDK_RESOURCE_PEERDIR=build/platform/java/jdk/jdk15 build/platform/java/jdk/jdk11 + JDK_RESOURCE_PEERDIR=build/platform/java/jdk/jdk15 build/platform/java/jdk/jdk11 } when ($JDK_VERSION == "14") { - JDK_RESOURCE_PEERDIR=build/platform/java/jdk/jdk14 build/platform/java/jdk/jdk11 + JDK_RESOURCE_PEERDIR=build/platform/java/jdk/jdk14 build/platform/java/jdk/jdk11 } when ($JDK_VERSION == "13") { - JDK_RESOURCE_PEERDIR=build/platform/java/jdk/jdk13 build/platform/java/jdk/jdk11 + JDK_RESOURCE_PEERDIR=build/platform/java/jdk/jdk13 build/platform/java/jdk/jdk11 } when ($JDK_VERSION == "12") { - JDK_RESOURCE_PEERDIR=build/platform/java/jdk/jdk12 build/platform/java/jdk/jdk11 + JDK_RESOURCE_PEERDIR=build/platform/java/jdk/jdk12 build/platform/java/jdk/jdk11 } when ($JDK_VERSION == "11") { JDK_RESOURCE_PEERDIR=build/platform/java/jdk/jdk11 } when ($JDK_VERSION == "10") { - JDK_RESOURCE_PEERDIR=build/platform/java/jdk/jdk10 build/platform/java/jdk/jdk11 + JDK_RESOURCE_PEERDIR=build/platform/java/jdk/jdk10 build/platform/java/jdk/jdk11 } when ($JDK_VERSION == "8") { - JDK_RESOURCE_PEERDIR=build/platform/java/jdk/jdk8 build/platform/java/jdk/jdk11 + 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 -} +when ($JDK_VERSION == "17") { + UBERJAR_RESOURCE_PEERDIR=build/platform/java/uberjar/uberjar17 +} when ($JDK_VERSION == "16") { UBERJAR_RESOURCE_PEERDIR=build/platform/java/uberjar/uberjar16 } @@ -4291,14 +4291,14 @@ when ($JDK_VERSION == "8") { } # tag:java-specific -JAVAC_OPTS= -when ($USE_SYSTEM_JDK) { - JDK_RESOURCE=$USE_SYSTEM_JDK -} -otherwise { - when ($JDK_VERSION == "17") { - JDK_RESOURCE=$JDK17_RESOURCE_GLOBAL - } +JAVAC_OPTS= +when ($USE_SYSTEM_JDK) { + JDK_RESOURCE=$USE_SYSTEM_JDK +} +otherwise { + when ($JDK_VERSION == "17") { + JDK_RESOURCE=$JDK17_RESOURCE_GLOBAL + } when ($JDK_VERSION == "16") { JDK_RESOURCE=$JDK16_RESOURCE_GLOBAL } @@ -4323,45 +4323,45 @@ otherwise { when ($JDK_VERSION == "8") { JDK_RESOURCE=$JDK8_RESOURCE_GLOBAL } -} +} + +# tag:java-specific +when (!$USE_SYSTEM_ERROR_PRONE) { + when ($JDK_VERSION == "8" || $JDK_VERSION == "10") { + ERROR_PRONE_VERSION=2.3.1 + ERROR_PRONE_PEERDIR=build/platform/java/error_prone/2.3.1 + ERROR_PRONE_RESOURCE=$ERROR_PRONE_2_3_1_RESOURCE_GLOBAL + } + elsewhen ($JDK_VERSION == "11" || $JDK_VERSION == "12" || $JDK_VERSION == "13" || $JDK_VERSION == "14" || $JDK_VERSION == "15" || $JDK_VERSION == "16") { + ERROR_PRONE_VERSION=2.7.1 + ERROR_PRONE_PEERDIR=build/platform/java/error_prone/2.7.1 + ERROR_PRONE_RESOURCE=$ERROR_PRONE_2_7_1_RESOURCE_GLOBAL + } + elsewhen ($JDK_VERSION == "17") { + ERROR_PRONE_VERSION=2.10.0 + ERROR_PRONE_PEERDIR=build/platform/java/error_prone/2.10.0 + ERROR_PRONE_RESOURCE=$ERROR_PRONE_2_10_0_RESOURCE_GLOBAL + } + otherwise { + ERROR_PRONE_VERSION=2.7.1 + ERROR_PRONE_PEERDIR=build/platform/java/error_prone + ERROR_PRONE_RESOURCE=$ERROR_PRONE_RESOURCE_GLOBAL + } +} +otherwise { + ERROR_PRONE_VERSION=2.7.1 + ERROR_PRONE_PEERDIR=build/platform/java/error_prone + ERROR_PRONE_RESOURCE=$ERROR_PRONE_RESOURCE_GLOBAL +} # tag:java-specific -when (!$USE_SYSTEM_ERROR_PRONE) { - when ($JDK_VERSION == "8" || $JDK_VERSION == "10") { - ERROR_PRONE_VERSION=2.3.1 - ERROR_PRONE_PEERDIR=build/platform/java/error_prone/2.3.1 - ERROR_PRONE_RESOURCE=$ERROR_PRONE_2_3_1_RESOURCE_GLOBAL - } - elsewhen ($JDK_VERSION == "11" || $JDK_VERSION == "12" || $JDK_VERSION == "13" || $JDK_VERSION == "14" || $JDK_VERSION == "15" || $JDK_VERSION == "16") { - ERROR_PRONE_VERSION=2.7.1 - ERROR_PRONE_PEERDIR=build/platform/java/error_prone/2.7.1 - ERROR_PRONE_RESOURCE=$ERROR_PRONE_2_7_1_RESOURCE_GLOBAL - } - elsewhen ($JDK_VERSION == "17") { - ERROR_PRONE_VERSION=2.10.0 - ERROR_PRONE_PEERDIR=build/platform/java/error_prone/2.10.0 - ERROR_PRONE_RESOURCE=$ERROR_PRONE_2_10_0_RESOURCE_GLOBAL - } - otherwise { - ERROR_PRONE_VERSION=2.7.1 - ERROR_PRONE_PEERDIR=build/platform/java/error_prone - ERROR_PRONE_RESOURCE=$ERROR_PRONE_RESOURCE_GLOBAL - } -} -otherwise { - ERROR_PRONE_VERSION=2.7.1 - ERROR_PRONE_PEERDIR=build/platform/java/error_prone - ERROR_PRONE_RESOURCE=$ERROR_PRONE_RESOURCE_GLOBAL -} - -# tag:java-specific when ($USE_SYSTEM_UBERJAR) { UBERJAR_RESOURCE=$USE_SYSTEM_UBERJAR } otherwise { - when ($JDK_VERSION == "17") { - UBERJAR_RESOURCE=$UBERJAR17_RESOURCE_GLOBAL - } + when ($JDK_VERSION == "17") { + UBERJAR_RESOURCE=$UBERJAR17_RESOURCE_GLOBAL + } when ($JDK_VERSION == "16") { UBERJAR_RESOURCE=$UBERJAR16_RESOURCE_GLOBAL } @@ -4389,37 +4389,37 @@ otherwise { } # tag:java-specific -when ($JDK_VERSION == "17") { - WITH_JDK_RESOURCE=$WITH_JDK17_RESOURCE_GLOBAL -} +when ($JDK_VERSION == "17") { + WITH_JDK_RESOURCE=$WITH_JDK17_RESOURCE_GLOBAL +} when ($JDK_VERSION == "16") { - WITH_JDK_RESOURCE=$WITH_JDK16_RESOURCE_GLOBAL -} -when ($JDK_VERSION == "15") { - WITH_JDK_RESOURCE=$WITH_JDK15_RESOURCE_GLOBAL -} -when ($JDK_VERSION == "14") { - WITH_JDK_RESOURCE=$WITH_JDK14_RESOURCE_GLOBAL -} -when ($JDK_VERSION == "13") { - WITH_JDK_RESOURCE=$WITH_JDK13_RESOURCE_GLOBAL -} -when ($JDK_VERSION == "12") { - WITH_JDK_RESOURCE=$WITH_JDK12_RESOURCE_GLOBAL -} -when ($JDK_VERSION == "11") { - WITH_JDK_RESOURCE=$WITH_JDK11_RESOURCE_GLOBAL -} -when ($JDK_VERSION == "10") { - WITH_JDK_RESOURCE=$WITH_JDK10_RESOURCE_GLOBAL -} -when ($JDK_VERSION == "8") { - WITH_JDK_RESOURCE=$WITH_JDK8_RESOURCE_GLOBAL -} + WITH_JDK_RESOURCE=$WITH_JDK16_RESOURCE_GLOBAL +} +when ($JDK_VERSION == "15") { + WITH_JDK_RESOURCE=$WITH_JDK15_RESOURCE_GLOBAL +} +when ($JDK_VERSION == "14") { + WITH_JDK_RESOURCE=$WITH_JDK14_RESOURCE_GLOBAL +} +when ($JDK_VERSION == "13") { + WITH_JDK_RESOURCE=$WITH_JDK13_RESOURCE_GLOBAL +} +when ($JDK_VERSION == "12") { + WITH_JDK_RESOURCE=$WITH_JDK12_RESOURCE_GLOBAL +} +when ($JDK_VERSION == "11") { + WITH_JDK_RESOURCE=$WITH_JDK11_RESOURCE_GLOBAL +} +when ($JDK_VERSION == "10") { + WITH_JDK_RESOURCE=$WITH_JDK10_RESOURCE_GLOBAL +} +when ($JDK_VERSION == "8") { + WITH_JDK_RESOURCE=$WITH_JDK8_RESOURCE_GLOBAL +} # tag:java-specific COMPILE_JAVA=${cwd:ARCADIA_BUILD_ROOT} $YMAKE_PYTHON ${input:"build/scripts/compile_java.py"} --javac-bin $JDK_RESOURCE/bin/javac --jar-bin $JDK_RESOURCE/bin/jar $JAVA_VCS_MF_ARG $PACKAGE_PREFIX_ARGS --jar-output $TARGET --srcs-jar-output ${output;suf=-sources.jar:REALPRJNAME} $AUTO_INPUT DELIM $JAVAC_OPTS DELIM $PEERS ${requirements;hide:JAVA_REQUIREMENTS} ${kv;hide:"p JV"} ${kv;hide:"pc light-blue"} ${kv;hide:"show_out"} ${kv;hide:"PEERS $PEERS"} -REAL_SWIG_DLL_JAR_CMD=$GENERATE_VCS_JAVA_INFO_NODEP && ${cwd:ARCADIA_BUILD_ROOT} $YMAKE_PYTHON ${input:"build/scripts/build_dll_and_java.py"} $JAVA_SWIG_DELIM $REAL_LINK_DYN_LIB $JAVA_SWIG_DELIM $COMPILE_JAVA $JAVA_SWIG_DELIM $AUTO_INPUT $JAVA_SWIG_DELIM $TARGET $JAVA_SWIG_DELIM ${output;suf=.jar:REALPRJNAME} $JAVA_SWIG_DELIM ${output;suf=-sources.jar:REALPRJNAME} $JAVA_SWIG_DELIM $ARCADIA_BUILD_ROOT $ARCADIA_ROOT +REAL_SWIG_DLL_JAR_CMD=$GENERATE_VCS_JAVA_INFO_NODEP && ${cwd:ARCADIA_BUILD_ROOT} $YMAKE_PYTHON ${input:"build/scripts/build_dll_and_java.py"} $JAVA_SWIG_DELIM $REAL_LINK_DYN_LIB $JAVA_SWIG_DELIM $COMPILE_JAVA $JAVA_SWIG_DELIM $AUTO_INPUT $JAVA_SWIG_DELIM $TARGET $JAVA_SWIG_DELIM ${output;suf=.jar:REALPRJNAME} $JAVA_SWIG_DELIM ${output;suf=-sources.jar:REALPRJNAME} $JAVA_SWIG_DELIM $ARCADIA_BUILD_ROOT $ARCADIA_ROOT # tag:deprecated ### @usage: METAQUERY() #deprecated @@ -4458,7 +4458,7 @@ macro JVM_ARGS(Args...) { } # tag:java-specific -CHECK_JAVA_DEPS_VALUE= +CHECK_JAVA_DEPS_VALUE= ### @usage: CHECK_JAVA_DEPS(<yes|no>) ### ### Check for different classes with duplicate name in classpath. @@ -4466,16 +4466,16 @@ CHECK_JAVA_DEPS_VALUE= ### Documentation: https://wiki.yandex-team.ru/yatool/test/ macro CHECK_JAVA_DEPS(Arg) { SET(CHECK_JAVA_DEPS_VALUE $Arg) -} - -ERROR_PRONE_VALUE= +} + +ERROR_PRONE_VALUE= ### @usage: USE_ERROR_PRONE() ### ### Use errorprone instead of javac for .java compilation. -macro USE_ERROR_PRONE() { - SET(ERROR_PRONE_VALUE yes) -} - +macro USE_ERROR_PRONE() { + SET(ERROR_PRONE_VALUE yes) +} + TEST_CWD_VALUE= ### @usage: TEST_CWD(path) ### @@ -4488,7 +4488,7 @@ macro TEST_CWD(Arg) { } # tag:java-specific -MAKE_UBERJAR_VALUE= +MAKE_UBERJAR_VALUE= ### @usage: UBERJAR() ### ### UBERJAR is a single all-in-one jar-archive that includes all its Java dependencies (reachable PEERDIR). @@ -4499,20 +4499,20 @@ MAKE_UBERJAR_VALUE= ### 1. UBERJAR_HIDING_PREFIX prefix for classes to shade (classes remain in their packages by default) ### 2. UBERJAR_HIDE_EXCLUDE_PATTERN exclude classes matching this patterns from shading (if enabled). ### 3. UBERJAR_PATH_EXCLUDE_PREFIX the prefix for classes that should not get into the jar archive (all classes are placed into the archive by default) -### 4. UBERJAR_MANIFEST_TRANSFORMER_MAIN add ManifestResourceTransformer class to uberjar processing and specify main-class -### 5. UBERJAR_MANIFEST_TRANSFORMER_ATTRIBUTE add ManifestResourceTransformer class to uberjar processing and specify some attribute -### 6. UBERJAR_APPENDING_TRANSFORMER add AppendingTransformer class to uberjar processing -### 7. UBERJAR_SERVICES_RESOURCE_TRANSFORMER add ServicesResourceTransformer class to uberjar processing +### 4. UBERJAR_MANIFEST_TRANSFORMER_MAIN add ManifestResourceTransformer class to uberjar processing and specify main-class +### 5. UBERJAR_MANIFEST_TRANSFORMER_ATTRIBUTE add ManifestResourceTransformer class to uberjar processing and specify some attribute +### 6. UBERJAR_APPENDING_TRANSFORMER add AppendingTransformer class to uberjar processing +### 7. UBERJAR_SERVICES_RESOURCE_TRANSFORMER add ServicesResourceTransformer class to uberjar processing ### ### Documentation: https://wiki.yandex-team.ru/yatool/java/ ### ### @see: [JAVA_PROGRAM](#module_JAVA_PROGRAM), [UBERJAR_HIDING_PREFIX](#macro_UBERJAR_HIDING_PREFIX), [UBERJAR_HIDE_EXCLUDE_PATTERN](#macro_UBERJAR_HIDE_EXCLUDE_PATTERN), [UBERJAR_PATH_EXCLUDE_PREFIX](#macro_UBERJAR_PATH_EXCLUDE_PREFIX) -macro UBERJAR() { - SET(MAKE_UBERJAR_VALUE yes) -} - +macro UBERJAR() { + SET(MAKE_UBERJAR_VALUE yes) +} + # tag:java-specific -UBERJAR_PREFIX_VALUE= +UBERJAR_PREFIX_VALUE= UBERJAR_PREFIX_FLAG= ### @usage: UBERJAR_HIDING_PREFIX(Arg) ### @@ -4520,13 +4520,13 @@ UBERJAR_PREFIX_FLAG= ### Classes remain in their packages by default. ### ### @see: [UBERJAR](#macro_UBERJAR) -macro UBERJAR_HIDING_PREFIX(Arg) { - SET(UBERJAR_PREFIX_VALUE $Arg) +macro UBERJAR_HIDING_PREFIX(Arg) { + SET(UBERJAR_PREFIX_VALUE $Arg) SET(UBERJAR_PREFIX_FLAG ${pre=--shade-prefix :Arg}) -} - +} + # tag:java-specific -UBERJAR_HIDE_EXCLUDE_VALUE= +UBERJAR_HIDE_EXCLUDE_VALUE= UBERJAR_HIDE_EXCLUDE_FLAGS= ### @usage: UBERJAR_HIDE_EXCLUDE_PATTERN(Args...) ### @@ -4535,110 +4535,110 @@ UBERJAR_HIDE_EXCLUDE_FLAGS= ### Shading is enabled for UBERJAR program using UBERJAR_HIDING_PREFIX macro. If this macro is not specified all classes are shaded. ### ### @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) +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}) -} - +} + # tag:java-specific UBERJAR_PATH_EXCLUDES= -UBERJAR_PATH_EXCLUDE_VALUE= +UBERJAR_PATH_EXCLUDE_VALUE= ### @usage: UBERJAR_PATH_EXCLUDE_PREFIX(Args...) ### ### Exculude classes matching this patterns from UBERJAR. ### By default all dependencies of UBERJAR program will lend in a .jar archive. ### ### @see: [UBERJAR](#macro_UBERJAR) -macro UBERJAR_PATH_EXCLUDE_PREFIX(Args...) { - SET_APPEND(UBERJAR_PATH_EXCLUDE_VALUE $ARGS_DELIM $Args) +macro UBERJAR_PATH_EXCLUDE_PREFIX(Args...) { + SET_APPEND(UBERJAR_PATH_EXCLUDE_VALUE $ARGS_DELIM $Args) SET_APPEND(UBERJAR_PATH_EXCLUDES ${pre=--uber-exclude :Args}) -} - +} + # tag:java-specific -UBERJAR_MANIFEST_TRANSFORMER_MAIN_VALUE= +UBERJAR_MANIFEST_TRANSFORMER_MAIN_VALUE= UBERJAR_MANIFEST_TRANSFORMER_MAIN_FLAG= -### @usage: UBERJAR_MANIFEST_TRANSFORMER_MAIN(Main) -### -### Transform manifest.mf for UBERJAR() java programs, set main-class attribute -### -### @see: [UBERJAR](#macro_UBERJAR) -macro UBERJAR_MANIFEST_TRANSFORMER_MAIN(Main) { - SET(UBERJAR_MANIFEST_TRANSFORMER_MAIN_VALUE $Main) +### @usage: UBERJAR_MANIFEST_TRANSFORMER_MAIN(Main) +### +### Transform manifest.mf for UBERJAR() java programs, set main-class attribute +### +### @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) -} - +} + # tag:java-specific -UBERJAR_MANIFEST_TRANSFORMER_ATTRIBUTE_VALUE= +UBERJAR_MANIFEST_TRANSFORMER_ATTRIBUTE_VALUE= UBERJAR_MANIFEST_TRANSFORMER_ATTRIBUTE_FLAGS= -### @usage: UBERJAR_MANIFEST_TRANSFORMER_ATTRIBUTE(Key, Value) -### -### Transform manifest.mf for UBERJAR() java programs, set attribute -### -### @see: [UBERJAR](#macro_UBERJAR) -macro UBERJAR_MANIFEST_TRANSFORMER_ATTRIBUTE(Key, Value) { - SET_APPEND(UBERJAR_MANIFEST_TRANSFORMER_ATTRIBUTE_VALUE $ARGS_DELIM $Key : $Value) +### @usage: UBERJAR_MANIFEST_TRANSFORMER_ATTRIBUTE(Key, Value) +### +### Transform manifest.mf for UBERJAR() java programs, set attribute +### +### @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}) -} - +} + # tag:java-specific -UBERJAR_APPENDING_TRANSFORMER_VALUE= +UBERJAR_APPENDING_TRANSFORMER_VALUE= UBERJAR_APPENDING_TRANSFORMER_FLAGS= -### @usage: UBERJAR_APPENDING_TRANSFORMER(Resource) -### -### Add AppendingTransformer for UBERJAR() java programs -### -### Parameters: -### - Resource - Resource name -### -### @see: [UBERJAR](#macro_UBERJAR) -macro UBERJAR_APPENDING_TRANSFORMER(Resources...) { - SET_APPEND(UBERJAR_APPENDING_TRANSFORMER_VALUE $ARGS_DELIM $Resources) +### @usage: UBERJAR_APPENDING_TRANSFORMER(Resource) +### +### Add AppendingTransformer for UBERJAR() java programs +### +### Parameters: +### - Resource - Resource name +### +### @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}) -} - +} + # tag:java-specific -UBERJAR_SERVICES_RESOURCE_TRANSFORMER_VALUE= +UBERJAR_SERVICES_RESOURCE_TRANSFORMER_VALUE= UBERJAR_SERVICES_RESOURCE_TRANSFORMER_FLAG= -### @usage: UBERJAR_SERVICES_RESOURCE_TRANSFORMER() -### -### Add ServicesResourceTransformer for UBERJAR() java programs -### +### @usage: UBERJAR_SERVICES_RESOURCE_TRANSFORMER() +### +### Add ServicesResourceTransformer for UBERJAR() java programs +### ### @see: [UBERJAR](#macro_UBERJAR) -macro UBERJAR_SERVICES_RESOURCE_TRANSFORMER() { - SET(UBERJAR_SERVICES_RESOURCE_TRANSFORMER_VALUE yes) +macro UBERJAR_SERVICES_RESOURCE_TRANSFORMER() { + SET(UBERJAR_SERVICES_RESOURCE_TRANSFORMER_VALUE yes) SET(UBERJAR_SERVICES_RESOURCE_TRANSFORMER_FLAG --service-transformer) -} - +} + # tag:idea-specific -IDEA_EXCLUDE_DIRS_VALUE= +IDEA_EXCLUDE_DIRS_VALUE= ### @usage: IDEA_EXCLUDE_DIRS(<excluded dirs>) ### ### Exclude specified directories from an idea project generated by ya ide idea ### Have no effect on regular build. macro IDEA_EXCLUDE_DIRS(Args...) { SET_APPEND(IDEA_EXCLUDE_DIRS_VALUE $Args) -} - +} + # tag:idea-specific -IDEA_RESOURCE_DIRS_VALUE= +IDEA_RESOURCE_DIRS_VALUE= ### @usage: IDEA_RESOURCE_DIRS(<additional dirs>) ### ### Set specified resource directories in an idea project generated by ya ide idea ### Have no effect on regular build. -macro IDEA_RESOURCE_DIRS(Args...) { - SET_APPEND(IDEA_RESOURCE_DIRS_VALUE $Args) -} - +macro IDEA_RESOURCE_DIRS(Args...) { + SET_APPEND(IDEA_RESOURCE_DIRS_VALUE $Args) +} + # tag:idea-specific -IDEA_MODULE_NAME_VALUE= -### @usage: IDEA_MODULE_NAME(module_name) -### -### Set module name in an idea project generated by ya ide idea -### Have no effect on regular build. -macro IDEA_MODULE_NAME(Name) { - SET(IDEA_MODULE_NAME_VALUE $Name) -} - +IDEA_MODULE_NAME_VALUE= +### @usage: IDEA_MODULE_NAME(module_name) +### +### Set module name in an idea project generated by ya ide idea +### Have no effect on regular build. +macro IDEA_MODULE_NAME(Name) { + SET(IDEA_MODULE_NAME_VALUE $Name) +} + # tag:java-specific JAVAC_FLAGS_VALUE= ### @usage: JAVAC_FLAGS(Args...) @@ -4650,37 +4650,37 @@ macro JAVAC_FLAGS(Args...) { } # tag:java-specific -ENABLE_PREVIEW_VALUE= +ENABLE_PREVIEW_VALUE= ### @usage: ENABLE_PREVIEW() ### ### Enable java preview features. macro ENABLE_PREVIEW() { SET_APPEND(JVM_ARGS_VALUE --enable-preview) - SET_APPEND(JAVAC_OPTS --enable-preview --release $JDK_VERSION) - SET_APPEND(JAVAC_FLAGS_VALUE --enable-preview --release $JDK_VERSION) - SET(ENABLE_PREVIEW_VALUE yes) + SET_APPEND(JAVAC_OPTS --enable-preview --release $JDK_VERSION) + SET_APPEND(JAVAC_FLAGS_VALUE --enable-preview --release $JDK_VERSION) + SET(ENABLE_PREVIEW_VALUE yes) } # tag:java-specific -SAVE_JAVAC_GENERATED_SRCS= -SAVE_JAVAC_GENERATED_SRCS_DIR= -SAVE_JAVAC_GENERATED_SRCS_TAR= -when ($SAVE_JAVAC_GENERATED_SRCS) { - SAVE_JAVAC_GENERATED_SRCS_DIR=${BINDIR}/__javac_generated_srcs__ - SAVE_JAVAC_GENERATED_SRCS_TAR=${BINDIR}/javac_generated.tar - JAVAC_FLAGS_VALUE+=-s $SAVE_JAVAC_GENERATED_SRCS_DIR -} - +SAVE_JAVAC_GENERATED_SRCS= +SAVE_JAVAC_GENERATED_SRCS_DIR= +SAVE_JAVAC_GENERATED_SRCS_TAR= +when ($SAVE_JAVAC_GENERATED_SRCS) { + SAVE_JAVAC_GENERATED_SRCS_DIR=${BINDIR}/__javac_generated_srcs__ + SAVE_JAVAC_GENERATED_SRCS_TAR=${BINDIR}/javac_generated.tar + JAVAC_FLAGS_VALUE+=-s $SAVE_JAVAC_GENERATED_SRCS_DIR +} + # tag:java-specific -MAVEN_GROUP_ID_VALUE= -### @usage: MAVEN_GROUP_ID(group_id_for_maven_export) +MAVEN_GROUP_ID_VALUE= +### @usage: MAVEN_GROUP_ID(group_id_for_maven_export) ### ### Set maven export group id for JAVA_PROGRAM() and JAVA_LIBRARY(). ### Have no effect on regular build. -macro MAVEN_GROUP_ID(Arg) { - SET(MAVEN_GROUP_ID_VALUE $Arg) -} - +macro MAVEN_GROUP_ID(Arg) { + SET(MAVEN_GROUP_ID_VALUE $Arg) +} + # tag:java-specific ANNOTATION_PROCESSOR_VALUE= ### @usage: ANNOTATION_PROCESSOR(processors...) @@ -4731,11 +4731,11 @@ macro JAVA_SRCS(Args...) { } # tag:java-specific -JAVA_ADD_DLLS_VALUE=no +JAVA_ADD_DLLS_VALUE=no macro ADD_DLLS_TO_JAR() { SET(JAVA_ADD_DLLS_VALUE yes) -} - +} + # tag:java-specific MANAGED_PEERS= MANAGED_PEERS_CLOSURE= @@ -4776,84 +4776,84 @@ macro DEPENDENCY_MANAGEMENT(Args...) { } # tag:java-specific -WITH_JDK_VALUE= -### @usage: WITH_JDK() -### -### Add directory with JDK to JAVA_PROGRAM output -macro WITH_JDK() { - SET(WITH_JDK_VALUE yes) -} - +WITH_JDK_VALUE= +### @usage: WITH_JDK() +### +### Add directory with JDK to JAVA_PROGRAM output +macro WITH_JDK() { + SET(WITH_JDK_VALUE yes) +} + # tag:kotlin-specific -WITH_KOTLIN_VALUE= -### @usage: WITH_KOTLIN() -### -### Compile kotlin source code in this java module -macro WITH_KOTLIN() { - SET(WITH_KOTLIN_VALUE yes) -} - +WITH_KOTLIN_VALUE= +### @usage: WITH_KOTLIN() +### +### Compile kotlin source code in this java module +macro WITH_KOTLIN() { + SET(WITH_KOTLIN_VALUE yes) +} + # tag:java-specific -WITH_GROOVY_VALUE= -### @usage: WITH_GROOVY() -### -### Compile groovy source code in this java module -macro WITH_GROOVY() { - SET(WITH_GROOVY_VALUE yes) -} - +WITH_GROOVY_VALUE= +### @usage: WITH_GROOVY() +### +### Compile groovy source code in this java module +macro WITH_GROOVY() { + SET(WITH_GROOVY_VALUE yes) +} + # tag:kotlin-specific KOTLINC_FLAGS_VALUE=-Xjvm-default=all ### @usage: KOTLINC_FLAGS(-flags) ### ### Set additional Kotlin compilation flags. macro KOTLINC_FLAGS(Args...) { - SET_APPEND(KOTLINC_OPTS_VALUE $Args) + SET_APPEND(KOTLINC_OPTS_VALUE $Args) } # tag:kotlin-specific -WITH_KOTLINC_PLUGIN_ALLOPEN= -### @usage: WITH_KOTLINC_ALLOPEN(-flags) -### +WITH_KOTLINC_PLUGIN_ALLOPEN= +### @usage: WITH_KOTLINC_ALLOPEN(-flags) +### ### Enable allopen kotlin compiler plugin https://kotlinlang.org/docs/all-open-plugin.html -macro WITH_KOTLINC_ALLOPEN(Options...) { - SET_APPEND(KOTLINC_OPTS_VALUE ${pre=-P plugin\:org.jetbrains.kotlin.allopen\::Options}) - SET(WITH_KOTLINC_PLUGIN_ALLOPEN yes) -} - +macro WITH_KOTLINC_ALLOPEN(Options...) { + SET_APPEND(KOTLINC_OPTS_VALUE ${pre=-P plugin\:org.jetbrains.kotlin.allopen\::Options}) + SET(WITH_KOTLINC_PLUGIN_ALLOPEN yes) +} + +# tag:kotlin-specific +WITH_KOTLINC_PLUGIN_NOARG= +### @usage: WITH_KOTLINC_NOARG(-flags) +### +### Enable noarg kotlin compiler plugin https://kotlinlang.org/docs/no-arg-plugin.html +macro WITH_KOTLINC_NOARG(Options...) { + SET_APPEND(KOTLINC_OPTS_VALUE ${pre=-P plugin\:org.jetbrains.kotlin.noarg\::Options}) + SET(WITH_KOTLINC_PLUGIN_NOARG yes) +} + # tag:kotlin-specific -WITH_KOTLINC_PLUGIN_NOARG= -### @usage: WITH_KOTLINC_NOARG(-flags) -### -### Enable noarg kotlin compiler plugin https://kotlinlang.org/docs/no-arg-plugin.html -macro WITH_KOTLINC_NOARG(Options...) { - SET_APPEND(KOTLINC_OPTS_VALUE ${pre=-P plugin\:org.jetbrains.kotlin.noarg\::Options}) - SET(WITH_KOTLINC_PLUGIN_NOARG yes) -} - -# tag:kotlin-specific KOTLIN_VERSION=1.6.10 KOTLIN_BOM_FILE=${ARCADIA_ROOT}/contrib/java/org/jetbrains/kotlin/kotlin-bom/1.6.10/ya.dependency_management.inc -GROOVY_VERSION=3.0.5 - +GROOVY_VERSION=3.0.5 + # tag:java-specific -DIRECT_DEPS_ONLY_VALUE= -### @usage: DIRECT_DEPS_ONLY -### -### Add direct PEERDIR's only in java compile classpath -macro DIRECT_DEPS_ONLY() { - SET(DIRECT_DEPS_ONLY_VALUE yes) -} - +DIRECT_DEPS_ONLY_VALUE= +### @usage: DIRECT_DEPS_ONLY +### +### Add direct PEERDIR's only in java compile classpath +macro DIRECT_DEPS_ONLY() { + SET(DIRECT_DEPS_ONLY_VALUE yes) +} + # tag:java-specific -JAVA_EXTERNAL_DEPENDENCIES_VALUE= -### @usage: JAVA_EXTERNAL_DEPENDENCIES(file1 file2 ...) -### -### Add non-source java external build dependency (like lombok config file) -macro JAVA_EXTERNAL_DEPENDENCIES(Args...) { - SET_APPEND(JAVA_EXTERNAL_DEPENDENCIES_VALUE $Args) -} - +JAVA_EXTERNAL_DEPENDENCIES_VALUE= +### @usage: JAVA_EXTERNAL_DEPENDENCIES(file1 file2 ...) +### +### Add non-source java external build dependency (like lombok config file) +macro JAVA_EXTERNAL_DEPENDENCIES(Args...) { + SET_APPEND(JAVA_EXTERNAL_DEPENDENCIES_VALUE $Args) +} + # tag:java-specific ### @usage _JAVA_PLACEHOLDER #internal ### The base module for all Java modules. Defines common properties and dependencies. @@ -4865,41 +4865,41 @@ module _JAVA_PLACEHOLDER: _BASE_UNIT { HAS_MANAGEABLE_PEERS=yes DYNAMIC_LINK=yes PEERDIR_TAGS=JAVA_PROTO JAVA_FBS JAVA_IDL JAR_COMPILATION - PEERDIR(build/platform/java/jdk) + PEERDIR(build/platform/java/jdk) PEERDIR+=$JDK_RESOURCE_PEERDIR - when($MAKE_UBERJAR_VALUE) { - PEERDIR+=build/platform/java/uberjar + when($MAKE_UBERJAR_VALUE) { + PEERDIR+=build/platform/java/uberjar PEERDIR+=$UBERJAR_RESOURCE_PEERDIR - } - when($ERROR_PRONE_VALUE) { + } + 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 - } + } # 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) { + when($WITH_KOTLIN_VALUE) { 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 - } - } - when($WITH_GROOVY_VALUE) { - PEERDIR+=build/platform/java/groovy contrib/java/org/codehaus/groovy/groovy/${GROOVY_VERSION} - } - - when($ERROR_PRONE_VALUE && $JDK_VERSION == "16") { + 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 + } + } + when($WITH_GROOVY_VALUE) { + PEERDIR+=build/platform/java/groovy contrib/java/org/codehaus/groovy/groovy/${GROOVY_VERSION} + } + + when($ERROR_PRONE_VALUE && $JDK_VERSION == "16") { JAVAC_FLAGS_VALUE+=$ERROR_PRONE_JDK16_ADD_OPENS - } - - when($ERROR_PRONE_VALUE && $ERROR_PRONE_VERSION == "2.7.1") { + } + + when($ERROR_PRONE_VALUE && $ERROR_PRONE_VERSION == "2.7.1") { JAVAC_FLAGS_VALUE+=$ERROR_PRONE_2_7_1_FORCED_OPTS - } - + } + JAVA_DEPENDENCIES_CONFIGURATION(FORBID_DEFAULT_VERSIONS) DISABLE(NEED_PLATFORM_PEERDIRS) NO_PLATFORM() @@ -4924,61 +4924,61 @@ module _JAVA_PLACEHOLDER: _BASE_UNIT { } # tag:java-specific -JAVA_CLASSPATH_CMD_TYPE_VALUE= - +JAVA_CLASSPATH_CMD_TYPE_VALUE= + # tag:java-specific -### @usage:TEST_JAVA_CLASSPATH_CMD_TYPE(Type) -### Availible types: MANIFEST(default), COMMAND_FILE, LIST -### Method for passing a classpath value to a java command line -### MANIFEST via empty jar file with manifest that cantains Class-Path attribute -### COMMAND_FILE via @command_file -### LIST via flat args -macro TEST_JAVA_CLASSPATH_CMD_TYPE(Type) { - SET(JAVA_CLASSPATH_CMD_TYPE_VALUE $Type) -} - +### @usage:TEST_JAVA_CLASSPATH_CMD_TYPE(Type) +### Availible types: MANIFEST(default), COMMAND_FILE, LIST +### Method for passing a classpath value to a java command line +### MANIFEST via empty jar file with manifest that cantains Class-Path attribute +### COMMAND_FILE via @command_file +### LIST via flat args +macro TEST_JAVA_CLASSPATH_CMD_TYPE(Type) { + SET(JAVA_CLASSPATH_CMD_TYPE_VALUE $Type) +} + # tag:java-specific -IGNORE_JAVA_DEPENDENCIES_CONFIGURATION=no -JAVA_DEPENDENCIES_CONFIGURATION_VALUE= - +IGNORE_JAVA_DEPENDENCIES_CONFIGURATION=no +JAVA_DEPENDENCIES_CONFIGURATION_VALUE= + # tag:java-specific -### @usage JAVA_DEPENDENCIES_CONFIGURATION(Vetos...) -### Validate contrib/java dependencies -### Valid arguments -### FORBID_DIRECT_PEERDIRS - fail when module have direct PEERDIR (with version) (non-transitive) -### FORBID_DEFAULT_VERSIONS - fail when module have PEERDIR to library with default (last) version (transitive) -### FORBID_CONFLICT - fail when module have resolved without DEPENDENCY_MANAGEMENT version conflict (transitive) -### FORBID_CONFLICT_DM - fail when module have resolved with DEPENDENCY_MANAGEMENT version conflict (transitive) -### FORBID_CONFLICT_DM_RECENT - like FORBID_CONFLICT_DM but fail only when dependency have more recent version than specified in DEPENDENCY_MANAGEMENT -### REQUIRE_DM - all dependencies must be specified in DEPENDENCY_MANAGEMENT (transitive) -macro JAVA_DEPENDENCIES_CONFIGURATION(Args...) { - SET_APPEND(JAVA_DEPENDENCIES_CONFIGURATION_VALUE $Args) -} - +### @usage JAVA_DEPENDENCIES_CONFIGURATION(Vetos...) +### Validate contrib/java dependencies +### Valid arguments +### FORBID_DIRECT_PEERDIRS - fail when module have direct PEERDIR (with version) (non-transitive) +### FORBID_DEFAULT_VERSIONS - fail when module have PEERDIR to library with default (last) version (transitive) +### FORBID_CONFLICT - fail when module have resolved without DEPENDENCY_MANAGEMENT version conflict (transitive) +### FORBID_CONFLICT_DM - fail when module have resolved with DEPENDENCY_MANAGEMENT version conflict (transitive) +### FORBID_CONFLICT_DM_RECENT - like FORBID_CONFLICT_DM but fail only when dependency have more recent version than specified in DEPENDENCY_MANAGEMENT +### REQUIRE_DM - all dependencies must be specified in DEPENDENCY_MANAGEMENT (transitive) +macro JAVA_DEPENDENCIES_CONFIGURATION(Args...) { + SET_APPEND(JAVA_DEPENDENCIES_CONFIGURATION_VALUE $Args) +} + # tag:java-specific # TODO(DEVTOOLS-6901): remove this variable when there are no more references to it in jbuild -JAVA_FORBIDDEN_LIBRARIES_VALUE= - +JAVA_FORBIDDEN_LIBRARIES_VALUE= + # tag:java-specific -JAR_INCLUDE_FILTER_VALUE= -JAR_EXCLUDE_FILTER_VALUE= - +JAR_INCLUDE_FILTER_VALUE= +JAR_EXCLUDE_FILTER_VALUE= + # tag:java-specific -### @usage:JAR_INCLUDE(Filters...) -### Filter .jar file content: keep only matched files -### * and ** patterns are supported (like JAVA_SRCS) -macro JAR_INCLUDE(Filters...) { - SET_APPEND(JAR_INCLUDE_FILTER_VALUE $Filters) -} - +### @usage:JAR_INCLUDE(Filters...) +### Filter .jar file content: keep only matched files +### * and ** patterns are supported (like JAVA_SRCS) +macro JAR_INCLUDE(Filters...) { + SET_APPEND(JAR_INCLUDE_FILTER_VALUE $Filters) +} + # tag:java-specific -### @usage:JAR_EXCLUDE(Filters...) -### Filter .jar file content: remove matched files -### * and ** patterns are supported (like JAVA_SRCS) -macro JAR_EXCLUDE(Filters...) { - SET_APPEND(JAR_EXCLUDE_FILTER_VALUE $Filters) -} - +### @usage:JAR_EXCLUDE(Filters...) +### Filter .jar file content: remove matched files +### * and ** patterns are supported (like JAVA_SRCS) +macro JAR_EXCLUDE(Filters...) { + SET_APPEND(JAR_EXCLUDE_FILTER_VALUE $Filters) +} + # tag:sandbox-specific ### @usage: SANDBOX_TASK([Name]) ### @@ -5125,7 +5125,7 @@ macro _PYTHON_ADDINCL() { } otherwise { when ($USE_SYSTEM_PYTHON) { - PEERDIR+=build/platform/python + PEERDIR+=build/platform/python } otherwise { CFLAGS+=$PYTHON_INCLUDE @@ -5175,7 +5175,7 @@ macro _PYTHON3_ADDINCL() { } otherwise { when ($USE_SYSTEM_PYTHON) { - PEERDIR+=build/platform/python + PEERDIR+=build/platform/python } otherwise { CFLAGS+=$PYTHON_INCLUDE @@ -5232,7 +5232,7 @@ when ($PERL_DEFAULT_PEERDIR == "yes") { ### @usage: USE_PERL_LIB() ### Add dependency on Perl to your LIBRARY macro USE_PERL_LIB() { - PEERDIR(build/platform/perl) + PEERDIR(build/platform/perl) } # tag:perl-specific @@ -5350,28 +5350,28 @@ when ($BT_MINSIZEREL == "yes" || $LINKER_ICF == "yes") { ICF_FLAG=$LD_ICF_FLAG } -OBJCOPY_TOOL=$OBJCOPY_TOOL_VENDOR -STRIP_TOOL=$STRIP_TOOL_VENDOR -NEED_BINUTILS_PEERDIR= -BINUTILS_USED= - -when (!$OBJCOPY_TOOL_VENDOR) { - OBJCOPY_TOOL=$BINUTILS_ROOT_RESOURCE_GLOBAL/bin/objcopy - NEED_BINUTILS_PEERDIR=yes -} -when (!$STRIP_TOOL_VENDOR) { - STRIP_TOOL=$BINUTILS_ROOT_RESOURCE_GLOBAL/bin/strip - NEED_BINUTILS_PEERDIR=yes -} - +OBJCOPY_TOOL=$OBJCOPY_TOOL_VENDOR +STRIP_TOOL=$STRIP_TOOL_VENDOR +NEED_BINUTILS_PEERDIR= +BINUTILS_USED= + +when (!$OBJCOPY_TOOL_VENDOR) { + OBJCOPY_TOOL=$BINUTILS_ROOT_RESOURCE_GLOBAL/bin/objcopy + NEED_BINUTILS_PEERDIR=yes +} +when (!$STRIP_TOOL_VENDOR) { + STRIP_TOOL=$BINUTILS_ROOT_RESOURCE_GLOBAL/bin/strip + NEED_BINUTILS_PEERDIR=yes +} + SPLIT_DWARF_VALUE=no NO_SPLIT_DWARF=no -when ($STRIP_DEBUG_INFO) { - SPLIT_DWARF_VALUE=yes - NO_SPLIT_DWARF=no -} - +when ($STRIP_DEBUG_INFO) { + SPLIT_DWARF_VALUE=yes + NO_SPLIT_DWARF=no +} + ### @usage: SPLIT_DWARF() ### ### Emit debug info for the PROGRAM/DLL as a separate file <module_name>.debug. @@ -5384,9 +5384,9 @@ SPLIT_DWARF_OUTPUT=${output;tobindir;pre=$MODULE_PREFIX;suf=$MODULE_SUFFIX.debug when ($SPLIT_DWARF_VALUE == "yes" && $NO_SPLIT_DWARF != "yes" && $NO_DEBUGINFO != "yes" && $HOST_OS_LINUX == "yes" && $TARGET_PLATFORM == "LINUX") { DWARF_COMMAND+= \ $OBJCOPY_TOOL --only-keep-debug $TARGET $SPLIT_DWARF_OUTPUT && \ - $STRIP_TOOL --strip-debug $TARGET && \ - $OBJCOPY_TOOL --remove-section=.gnu_debuglink --add-gnu-debuglink $SPLIT_DWARF_OUTPUT $TARGET - BINUTILS_USED=yes + $STRIP_TOOL --strip-debug $TARGET && \ + $OBJCOPY_TOOL --remove-section=.gnu_debuglink --add-gnu-debuglink $SPLIT_DWARF_OUTPUT $TARGET + BINUTILS_USED=yes } ### @usage: EXTRALIBS_STATIC(Libs...) @@ -5468,7 +5468,7 @@ macro COPY_FILE(File, Destination, AUTO?"AUTO_DST":"NOAUTO_DST", OUTPUT_INCLUDES .CMD=$_COPY_FILE_IMPL($File $AUTO $Destination OUTPUT_INCLUDES $OUTPUT_INCLUDES REQUIREMENTS $REQUIREMENTS) .SEM=$_COPY_FILE_IMPL($File $AUTO $Destination OUTPUT_INCLUDES $OUTPUT_INCLUDES REQUIREMENTS $REQUIREMENTS) } - + ### @usage: COPY_FILE_WITH_CONTEXT(FILE DEST [AUTO] [OUTPUT_INCLUDES DEPS...]) ### ### Copy file to build root the same way as it is done for COPY_FILE, but also @@ -5479,8 +5479,8 @@ macro COPY_FILE_WITH_CONTEXT(FILE, DEST, AUTO?"AUTO":"", OUTPUT_INCLUDES[]) { macro _BUNDLE_TARGET(Target, Destination) { .CMD=$MOVE_FILE ${result:Target} ${output;noauto:Destination} ${kv;hide:"p BN"} ${kv;hide:"pc light-cyan"} $VCS_INFO_DISABLE_CACHE__NO_UID__ -} - +} + ### @usage: TIMEOUT(TIMEOUT) ### ### Sets a timeout on test execution @@ -5595,11 +5595,11 @@ macro JOIN_SRCS_GLOBAL(Out, Src...) { ### Join set of sources into single file named Out and send it for further processing as if it were listed as SRCS(GLOBAL Out). ### This macro places all files into single file, so will work with any sources. ### You should specify file name with the extension as Out. Further processing will be done according to this extension. -macro FLAT_JOIN_SRCS_GLOBAL(Out, Src...) { +macro FLAT_JOIN_SRCS_GLOBAL(Out, Src...) { .CMD=$YMAKE_PYTHON ${input:"build/scripts/fs_tools.py"} cat ${output;noauto:Out} --ya-start-command-file ${input:Src} --ya-end-command-file ${output_include;hide:Src} ${kv;hide:"p JS"} ${kv;hide:"pc magenta"} - SRCS(GLOBAL $Out) -} - + SRCS(GLOBAL $Out) +} + # tag:cpu PIC_CFLAGS= SSE2_CFLAGS= @@ -5940,11 +5940,11 @@ macro _SRC("yasm", SRC, SRCFLAGS...) { } # tag:src-processing -macro _SRC("asm", SRC, SRCFLAGS...) { - .CMD=$_SRC(yasm $SRC $SRCFLAGS) +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 -} - +} + # tag:src-processing macro _SRC("lua", SRC, SRCFLAGS...) { .CMD=${cwd:LUAJIT_PATH} ${tool:"contrib/libs/luajit/compiler"} -b -g ${input:SRC} ${SRCFLAGS} ${global;output;suf=.o:SRC} ${kv;hide:"p LJ"} ${kv;hide:"pc light-cyan"} @@ -6438,8 +6438,8 @@ macro ARCHIVE_BY_KEYS(NAME="", KEYS="", DONTCOMPRESS?"-p":"", REQUIREMENTS[], Fi #scripts #special commands -BUILDVERSION_SCRIPT=build/scripts/build_info_gen.py -SVNVERSION_JAVA_MARKER=output-java-class +BUILDVERSION_SCRIPT=build/scripts/build_info_gen.py +SVNVERSION_JAVA_MARKER=output-java-class SVNVERSION_GO_MARKER=output-go VCS_C_OBJ=$BINDIR/__vcs_version__.c$OBJECT_SUF VCS_C_OBJ_RR=$MODDIR/__vcs_version__.c$OBJECT_SUF @@ -7217,11 +7217,11 @@ macro BPF_STATIC(Input, Output, Opts...) { ### ### Compile LLVM bytecode to object representation. ### Note: Output name is used as is, no extension added. -macro LLVM_COMPILE_LL(Input, Output, Opts...) { - .CMD=$CLANG_ROOT/bin/llvm-as ${input:Input} -o ${output;noauto:Output} ${kv;hide:"p BC"} ${kv;hide:"pc light-green"} +macro LLVM_COMPILE_LL(Input, Output, Opts...) { + .CMD=$CLANG_ROOT/bin/llvm-as ${input:Input} -o ${output;noauto:Output} ${kv;hide:"p BC"} ${kv;hide:"pc light-green"} PEERDIR(build/platform/clang) -} - +} + ### @usage: LLVM_LINK(Output Inputs...) ### ### Call llvm-link on set of Inputs to produce Output. @@ -7295,28 +7295,28 @@ otherwise { _YASM_PREDEFINED_FLAGS_VALUE=-g dwarf2 } -when ($ASM_PREFIX) { - ASM_PREFIX_VALUE=--prefix=$ASM_PREFIX -} -otherwise { - ASM_PREFIX_VALUE= -} +when ($ASM_PREFIX) { + ASM_PREFIX_VALUE=--prefix=$ASM_PREFIX +} +otherwise { + ASM_PREFIX_VALUE= +} # tag:yasm-specific YASM_FLAGS= -YASM_PREINCLUDES_VALUE= +YASM_PREINCLUDES_VALUE= # tag:yasm-specific macro _SRC_yasm(SRC, PREINCLUDES[], SRCFLAGS...) { .CMD=${tool:"contrib/tools/yasm"} -f ${_YASM_FMT_VALUE}${HARDWARE_ARCH} $_YASM_PLATFORM_FLAGS_VALUE $YASM_DEBUG_INFO $YASM_DEBUG_INFO_DISABLE_CACHE__NO_UID__ -D ${pre=_;suf=_:HARDWARE_TYPE} -D_YASM_ $ASM_PREFIX_VALUE $_YASM_PREDEFINED_FLAGS_VALUE $YASM_FLAGS ${pre=-I :_ASM__INCLUDE} $SRCFLAGS -o ${output;noext;suf=${OBJECT_SUF}:SRC} ${pre=-P :PREINCLUDES} ${input;hide:PREINCLUDES} ${input:SRC} ${requirements;hide:PY_REQUIREMENTS} ${kv;hide:"p AS"} ${kv;hide:"pc light-green"} -} +} ### @usage: ASM_PREINCLUDE(AsmFiles...) ### ### Supply additional .asm files to all assembler calls within a module -macro ASM_PREINCLUDE(PREINCLUDES...) { - SET_APPEND(YASM_PREINCLUDES_VALUE $PREINCLUDES) -} +macro ASM_PREINCLUDE(PREINCLUDES...) { + SET_APPEND(YASM_PREINCLUDES_VALUE $PREINCLUDES) +} # tag:python-specific ### @usage: RUN_PYTHON(Args...) @@ -7504,7 +7504,7 @@ multimodule PROTO_LIBRARY { .SEM=ignored SET(PEERDIR_TAGS JAVA_PROTO) ENABLE(JAVA_PROTO) - PEERDIR+=$JAVA_PROTOBUF_PEERS contrib/java/javax/annotation/javax.annotation-api/1.3.1 + PEERDIR+=$JAVA_PROTOBUF_PEERS contrib/java/javax/annotation/javax.annotation-api/1.3.1 .IGNORED=GENERATE_ENUM_SERIALIZATION GENERATE_ENUM_SERIALIZATION_WITH_HEADER USE_SKIFF CPP_PROTO_PLUGIN2 PY_PROTO_PLUGIN YMAPS_SPROTO RESOURCE ADDINCL(FOR proto $PROTOBUF_PATH) @@ -7602,7 +7602,7 @@ multimodule PROTO_LIBRARY { when ($_COMMON_GOOGLE_APIS != "None") { PEERDIR += contrib/libs/googleapis-common-protos } - SET(CREDITS_FILE_EXTRA_EXT .ext_proto) + SET(CREDITS_FILE_EXTRA_EXT .ext_proto) } module DESC_PROTO: _BARE_UNIT { @@ -7623,7 +7623,7 @@ multimodule PROTO_LIBRARY { when ($_COMMON_GOOGLE_APIS != "None") { PEERDIR += contrib/libs/googleapis-common-protos } - + when ($NEED_GOOGLE_PROTO_PEERDIRS == "yes") { when ($USE_VANILLA_PROTOC == "yes") { PEERDIR += contrib/libs/protobuf_std/builtin_proto/protos_from_protobuf @@ -7646,7 +7646,7 @@ multimodule PROTO_LIBRARY { # PB_PY_PROTO is a legacy module type, stop using it. } } - + # tag:proto _EXT_PROTO_DIR=_RAW_ @@ -7882,9 +7882,9 @@ GO_HOST_ARCH=unknown when ($HOST_ARCH_X86_64) { GO_HOST_ARCH=amd64 } -elsewhen($HOST_ARCH_ARM64) { - GO_HOST_ARCH=arm64 -} +elsewhen($HOST_ARCH_ARM64) { + GO_HOST_ARCH=arm64 +} # tag:go-specific GO_TARG_OS=unknown @@ -7906,9 +7906,9 @@ when ($ARCH_X86_64) { elsewhen ($ARCH_I386) { GO_TARG_ARCH=x86 } -elsewhen ($ARCH_ARM64) { - GO_TARG_ARCH=arm64 -} +elsewhen ($ARCH_ARM64) { + GO_TARG_ARCH=arm64 +} # tag:go-specific GO_HOST_TARG_PARAMS=++host-os $GO_HOST_OS ++host-arch $GO_HOST_ARCH ++targ-os $GO_TARG_OS ++targ-arch $GO_TARG_ARCH @@ -8703,13 +8703,13 @@ macro GO_MOCKGEN_MOCKS() { } # tag:java-specific -JAVA_IGNORE_CLASSPATH_CLASH_VALUE= -### @usage: JAVA_IGNORE_CLASSPATH_CLASH_FOR([classes]) -### Ignore classpath clash test fails for classes -macro JAVA_IGNORE_CLASSPATH_CLASH_FOR(Args...) { - SET_APPEND(JAVA_IGNORE_CLASSPATH_CLASH_VALUE $Args) -} - +JAVA_IGNORE_CLASSPATH_CLASH_VALUE= +### @usage: JAVA_IGNORE_CLASSPATH_CLASH_FOR([classes]) +### Ignore classpath clash test fails for classes +macro JAVA_IGNORE_CLASSPATH_CLASH_FOR(Args...) { + SET_APPEND(JAVA_IGNORE_CLASSPATH_CLASH_VALUE $Args) +} + # tag:python-specific ### @usage: PY_SRCS({| CYTHON_C} { | TOP_LEVEL | NAMESPACE ns} Files...) ### @@ -8802,7 +8802,7 @@ multimodule PY23_LIBRARY { OBJ_SUF=.py3 } } - + # tag:python-specific ### @usage: PY23_NATIVE_LIBRARY([name]) ### @@ -8839,65 +8839,65 @@ multimodule PY23_NATIVE_LIBRARY { OBJ_SUF=.py3 } } - + IBTOOL_PATH=$XCODE_TOOLS_ROOT_RESOURCE_GLOBAL/Xcode/Contents/Developer/usr/bin/ibtool # tag:src-processing -STORYBOARD_FLAGS=--errors --warnings --notices --auto-activate-custom-fonts --output-format human-readable-text -macro _SRC("storyboard", SRC, SRCFLAGS...) { +STORYBOARD_FLAGS=--errors --warnings --notices --auto-activate-custom-fonts --output-format human-readable-text +macro _SRC("storyboard", SRC, SRCFLAGS...) { .CMD=$IBTOOL_PATH $STORYBOARD_FLAGS --module $REALPRJNAME --output-partial-info-plist ${output;suf=.partial_plist:SRC} --compilation-directory $BINDIR ${input:SRC} && $YMAKE_PYTHON ${input:"build/scripts/tar_directory.py"} ${output;tobindir;suf=.compiled_storyboard_tar:SRC} $BINDIR/${nopath;suf=c:SRC} $BINDIR/${nopath;suf=c:SRC} -} - +} + # tag:src-processing -macro _SRC("xib", SRC, SRCFLAGS...) { +macro _SRC("xib", SRC, SRCFLAGS...) { .CMD=$IBTOOL_PATH $STORYBOARD_FLAGS --module $REALPRJNAME --output-partial-info-plist ${output;suf=.partial_plist:SRC} --compile ${output;tobindir;nopath;noext;suf=.nib:SRC} ${input:SRC} -} - +} + ACTOOL_PATH=$XCODE_TOOLS_ROOT_RESOURCE_GLOBAL/Xcode/Contents/Developer/usr/bin/ibtool # tag:ios-specific ASSETS_FLAGS=--output-format human-readable-text --notices --warnings -macro _IOS_ASSETS(AssetsDir, Content...) { +macro _IOS_ASSETS(AssetsDir, Content...) { .CMD=$FS_TOOLS md $BINDIR/$REALPRJNAME && $ACTOOL_PATH $ASSETS_FLAGS --export-dependency-info $BINDIR/assetcatalog_dependencies --output-partial-info-plist ${output:"assetcatalog_generated_info.partial_plist"} --product-type com.apple.product-type.application --compile $BINDIR/$REALPRJNAME $AssetsDir ${input;hide:Content} && ${cwd:BINDIR} $YMAKE_PYTHON ${input:"build/scripts/tar_directory.py"} ${output;suf=_assetes.resource_tar:REALPRJNAME} $REALPRJNAME $REALPRJNAME -} - +} + # tag:ios-specific -macro IOS_APP_COMMON_FLAGS(Flags...) { - SET_APPEND(STORYBOARD_FLAGS $Flags) - SET_APPEND(ASSETS_FLAGS $Flags) -} - +macro IOS_APP_COMMON_FLAGS(Flags...) { + SET_APPEND(STORYBOARD_FLAGS $Flags) + SET_APPEND(ASSETS_FLAGS $Flags) +} + # tag:ios-specific -macro IOS_APP_ASSETS_FLAGS(Flags...) { - SET_APPEND(ASSETS_FLAGS $Flags) -} - -macro DARWIN_STRINGS_RESOURCE(Resource, Relpath) { - .CMD=$COPY_CMD ${input:Resource} $BINDIR/$Relpath && $YMAKE_PYTHON ${input:"build/scripts/tar_directory.py"} ${output;tobindir;suf=.strings_tar:Relpath} $BINDIR/$Relpath $BINDIR -} - -macro DARWIN_SIGNED_RESOURCE(Resource, Relpath) { - .CMD=$COPY_CMD $Resource $BINDIR/$Relpath && $YMAKE_PYTHON ${input:"build/scripts/tar_directory.py"} ${output;tobindir;suf=.signed_resource_tar:Relpath} $BINDIR/$Relpath $BINDIR -} - +macro IOS_APP_ASSETS_FLAGS(Flags...) { + SET_APPEND(ASSETS_FLAGS $Flags) +} + +macro DARWIN_STRINGS_RESOURCE(Resource, Relpath) { + .CMD=$COPY_CMD ${input:Resource} $BINDIR/$Relpath && $YMAKE_PYTHON ${input:"build/scripts/tar_directory.py"} ${output;tobindir;suf=.strings_tar:Relpath} $BINDIR/$Relpath $BINDIR +} + +macro DARWIN_SIGNED_RESOURCE(Resource, Relpath) { + .CMD=$COPY_CMD $Resource $BINDIR/$Relpath && $YMAKE_PYTHON ${input:"build/scripts/tar_directory.py"} ${output;tobindir;suf=.signed_resource_tar:Relpath} $BINDIR/$Relpath $BINDIR +} + # tag:ios-specific -DELIM=__DELIM__ +DELIM=__DELIM__ PACK_IOS_ARCHIVE=$GENERATE_MF && $YMAKE_PYTHON ${input:"build/scripts/ios_wrapper.py"} bin $IBTOOL_PATH $TARGET $REALPRJNAME $BINDIR $DELIM $AUTO_INPUT $DELIM $STORYBOARD_FLAGS -### @usage: IOS_INTERFACE() -### iOS GUI module definition +### @usage: IOS_INTERFACE() +### iOS GUI module definition module IOS_INTERFACE: _BARE_UNIT { - .CMD=PACK_IOS_ARCHIVE - .EXTS=.compiled_storyboard_tar .partial_plist .plist .xcent .nib .resource_tar .signed_resource_tar .strings_tar .plist_json - .NODE_TYPE=Library - .FINAL_TARGET=no - SET(MODULE_SUFFIX .ios.interface) - - PEERDIR+=build/platform/xcode/tools -} - + .CMD=PACK_IOS_ARCHIVE + .EXTS=.compiled_storyboard_tar .partial_plist .plist .xcent .nib .resource_tar .signed_resource_tar .strings_tar .plist_json + .NODE_TYPE=Library + .FINAL_TARGET=no + SET(MODULE_SUFFIX .ios.interface) + + PEERDIR+=build/platform/xcode/tools +} + # tag:ios-specific -module DEFAULT_IOS_INTERFACE: IOS_INTERFACE { +module DEFAULT_IOS_INTERFACE: IOS_INTERFACE { SET(MODULE_SUFFIX .default.ios.interface) -} - +} + DEFAULT_IOS_TYPE= IOS_TYPE= when(!$IOS_TYPE) { @@ -8918,47 +8918,47 @@ when(!$IOS_RUNTIME) { IOS_RUNTIME=com.apple.CoreSimulator.SimRuntime.iOS-12-1 } } -when ($ARCH_I386) { - TEST_IOS_DEVICE_TYPE_VALUE=com.apple.CoreSimulator.SimDeviceType.iPhone-5 - TEST_IOS_RUNTIME_TYPE_VALUE=com.apple.CoreSimulator.SimRuntime.iOS-10-3 -} -otherwise { +when ($ARCH_I386) { + TEST_IOS_DEVICE_TYPE_VALUE=com.apple.CoreSimulator.SimDeviceType.iPhone-5 + TEST_IOS_RUNTIME_TYPE_VALUE=com.apple.CoreSimulator.SimRuntime.iOS-10-3 +} +otherwise { TEST_IOS_DEVICE_TYPE_VALUE=$IOS_TYPE TEST_IOS_RUNTIME_TYPE_VALUE=$IOS_RUNTIME -} - +} + # tag:java-specific -### @usage: MODULE_JDK(Version) -### -### Specify JDK version for module -macro JDK_VERSION(Arg) { - SET(JDK_VERSION $Arg) - _JDK_VERSION_MACRO_CHECK($Arg) -} - +### @usage: MODULE_JDK(Version) +### +### Specify JDK version for module +macro JDK_VERSION(Arg) { + SET(JDK_VERSION $Arg) + _JDK_VERSION_MACRO_CHECK($Arg) +} + # tag:java-specific -when ($JDK_VERSION == "10") { - JDK10=yes # remove this later -} -JAVA_PROGRAM_CP_USE_COMMAND_FILE=yes -when ($JDK_VERSION == "8") { - JAVA_PROGRAM_CP_USE_COMMAND_FILE=no -} - +when ($JDK_VERSION == "10") { + JDK10=yes # remove this later +} +JAVA_PROGRAM_CP_USE_COMMAND_FILE=yes +when ($JDK_VERSION == "8") { + JAVA_PROGRAM_CP_USE_COMMAND_FILE=no +} + # tag:kotlin-specific -KOTLIN_JVM_TARGET= -when ($JDK_VERSION == "8") { - KOTLIN_JVM_TARGET=1.8 -} +KOTLIN_JVM_TARGET= +when ($JDK_VERSION == "8") { + KOTLIN_JVM_TARGET=1.8 +} elsewhen ($JDK_VERSION == "18") { # remove when kotlin starts supporting jdk18 bytecode # see also devtools/ya/jbuild/gen/actions/idea.py KOTLIN_JVM_TARGET=17 -} -otherwise { - KOTLIN_JVM_TARGET=$JDK_VERSION -} - +} +otherwise { + KOTLIN_JVM_TARGET=$JDK_VERSION +} + # tag:frontend-specific ### @usage: COLLECT_FRONTEND_FILES(Varname, Dir) ### @@ -8966,45 +8966,45 @@ otherwise { macro COLLECT_FRONTEND_FILES(Varname, Dir) { _GLOB($Varname $Dir/**/*.(css|ejs|jpg|js|jsx|png|styl|svg|ts|tsx|json|html)) } - + # tag:java-specific -# local jdk and tools -USE_SYSTEM_JDK= -USE_SYSTEM_UBERJAR= -USE_SYSTEM_ERROR_PRONE= - +# local jdk and tools +USE_SYSTEM_JDK= +USE_SYSTEM_UBERJAR= +USE_SYSTEM_ERROR_PRONE= + # tag:swift-specific -CPP_XCODE_TOOLCHAIN_VERSION=9.2 -SWIFT_XCODE_TOOLCHAIN_VERSION=9.2 -XCODE_TOOLS_VERSION=10.1 -macro COMPILE_SWIFT_MODULE(SRCS{input}[], BRIDGE_HEADER{input}="", Flags...) { - when ($BRIDGE_HEADER != "") { - SWIFT_BRIDGE_HEADER=-import-objc-header ${input:BRIDGE_HEADER} - } - otherwise { - SWIFT_BRIDGE_HEADER= - } - - .PEERDIR+=build/platform/xcode/swift - # swift core libraries - LDFLAGS($SWIFT_LD_FLAGS) - +CPP_XCODE_TOOLCHAIN_VERSION=9.2 +SWIFT_XCODE_TOOLCHAIN_VERSION=9.2 +XCODE_TOOLS_VERSION=10.1 +macro COMPILE_SWIFT_MODULE(SRCS{input}[], BRIDGE_HEADER{input}="", Flags...) { + when ($BRIDGE_HEADER != "") { + SWIFT_BRIDGE_HEADER=-import-objc-header ${input:BRIDGE_HEADER} + } + otherwise { + SWIFT_BRIDGE_HEADER= + } + + .PEERDIR+=build/platform/xcode/swift + # swift core libraries + LDFLAGS($SWIFT_LD_FLAGS) + .CMD=$YMAKE_PYTHON ${input:"build/scripts/gen_swiftc_output_map.py"} $(SOURCE_ROOT) $(BUILD_ROOT) $BINDIR/swift_output_map.json ${input:SRCS} && $SWIFT_COMPILER -c $SWIFT_FLAGS_PLATFORM $Flags $SWIFT_BRIDGE_HEADER ${pre=-Xcc -I:_C__INCLUDE} ${input:SRCS} -emit-objc-header -emit-objc-header-path ${output;suf=-Swift.h:REALPRJNAME} -emit-module -module-name $REALPRJNAME -output-file-map $BINDIR/swift_output_map.json ${output;hide;suf=.o:SRCS} -} - -TEST_TOOL_HOST_LOCAL= -TEST_TOOL_TARGET_LOCAL= - -when ($TENSORFLOW_WITH_CUDA) { - CUDA_REQUIRED=yes -} - +} + +TEST_TOOL_HOST_LOCAL= +TEST_TOOL_TARGET_LOCAL= + +when ($TENSORFLOW_WITH_CUDA) { + CUDA_REQUIRED=yes +} + when (!$TENSORRT_VERSION) { TENSORRT_VERSION=5 } -ANDROID_APK_TEST_ACTIVITY_VALUE=com.yandex.test.unittests/.RunTestsActivity - +ANDROID_APK_TEST_ACTIVITY_VALUE=com.yandex.test.unittests/.RunTestsActivity + MAVEN_BIN=$MAVEN_RESOURCE_GLOBAL/bin when ($QT_REQUIRED) { @@ -9159,7 +9159,7 @@ module CONTAINER: _BARE_UNIT { .FINAL_TARGET=yes .CMD=CONTAINER_CMD } - + # tag:external-build CUSTOM_BUILD_LIBRARY_USE= CUSTOM_BUILD_LIBRARY_CMD=$GENERATE_MF && ${tool:"devtools/experimental/solar/outbuild/runner"} ${hide:PEERS} --script=${input:CUSTOM_SCRIPT} --output $TARGET --python=${tool:"contrib/tools/python3"} --isolator=${tool:"devtools/experimental/solar/outbuild/isolator"} $CUSTOM_BUILD_LIBRARY_USE @@ -9173,14 +9173,14 @@ module CUSTOM_BUILD_LIBRARY: LIBRARY { DISABLE(NEED_ADD_FAKE_SRC) } -### @usage: ORIGINAL_SOURCE(Source) -### -### This macro specifies the source repository for contrib -### Does nothing now (just a placeholder for future functionality) -### See https://st.yandex-team.ru/DTCC-316 -macro ORIGINAL_SOURCE(Source) { - ENABLE(UNUSED_MACRO) -} +### @usage: ORIGINAL_SOURCE(Source) +### +### This macro specifies the source repository for contrib +### Does nothing now (just a placeholder for future functionality) +### See https://st.yandex-team.ru/DTCC-316 +macro ORIGINAL_SOURCE(Source) { + ENABLE(UNUSED_MACRO) +} CMAKE_PACKAGE= CMAKE_PACKAGE_COMPONENT= @@ -9198,36 +9198,36 @@ macro OPENSOURCE_EXPORT_REPLACEMENT(CMAKE[], CMAKE_TARGET[], CMAKE_COMPONENET[], } # tag:licence -CREDITS_FILE_EXTRA_EXT= -CREDITS_FLAGS= -CREDITS_TEXTS_FILE= -NO_CREDITS_TEXTS_FILE= -WITH_CREDITS= -### @usage: LICENSE_TEXTS(File) -### -### This macro specifies the filename with all library licenses texts -macro LICENSE_TEXTS(Source) { - SET(CREDITS_TEXTS_FILE $Source) -} - +CREDITS_FILE_EXTRA_EXT= +CREDITS_FLAGS= +CREDITS_TEXTS_FILE= +NO_CREDITS_TEXTS_FILE= +WITH_CREDITS= +### @usage: LICENSE_TEXTS(File) +### +### This macro specifies the filename with all library licenses texts +macro LICENSE_TEXTS(Source) { + SET(CREDITS_TEXTS_FILE $Source) +} + # tag:licence -### @usage: WITHOUT_LICENSE_TEXTS() -### -### This macro indicates that the module has no license text -macro WITHOUT_LICENSE_TEXTS() { - ENABLE(NO_CREDITS_TEXTS_FILE) -} - +### @usage: WITHOUT_LICENSE_TEXTS() +### +### This macro indicates that the module has no license text +macro WITHOUT_LICENSE_TEXTS() { + ENABLE(NO_CREDITS_TEXTS_FILE) +} + # tag:licence -when ($WITH_CREDITS) { - CREDITS_FLAGS+=--credits-output ${output;suf=${CREDITS_FILE_EXTRA_EXT}".CREDITS.txt":REALPRJNAME} -} - -GENERATE_MF= -when ($WITH_CREDITS) { - GENERATE_MF=$GENERATE_MF_CMD -} - +when ($WITH_CREDITS) { + CREDITS_FLAGS+=--credits-output ${output;suf=${CREDITS_FILE_EXTRA_EXT}".CREDITS.txt":REALPRJNAME} +} + +GENERATE_MF= +when ($WITH_CREDITS) { + GENERATE_MF=$GENERATE_MF_CMD +} + macro _MCU_CONVERT(Bin) { .CMD=${cwd:BINDIR} $OBJCOPY_TOOL -O ihex $Bin ${output;noext:Bin.hex} && ${cwd:BINDIR} $OBJCOPY_TOOL -O srec $Bin ${output;noext:Bin.s37} } diff --git a/build/ymake_conf.py b/build/ymake_conf.py index 4e9419ee65..30219eb85e 100755 --- a/build/ymake_conf.py +++ b/build/ymake_conf.py @@ -57,7 +57,7 @@ class Platform(object): self.is_armv7 = self.arch in ('armv7', 'armv7a', 'armv7a_neon', 'arm', 'armv7a_cortex_a9', 'armv7ahf_cortex_a35', 'armv7ahf_cortex_a53') self.is_armv8 = self.arch in ('armv8', 'armv8a', 'arm64', 'aarch64', 'armv8a_cortex_a35', 'armv8a_cortex_a53') self.is_armv8m = self.arch in ('armv8m_cortex_m33',) - self.is_arm64 = self.arch in ('arm64',) + self.is_arm64 = self.arch in ('arm64',) self.is_arm = self.is_armv7 or self.is_armv8 or self.is_armv8m self.is_armv7_neon = self.arch in ('armv7a_neon', 'armv7a_cortex_a9', 'armv7ahf_cortex_a35', 'armv7ahf_cortex_a53') self.is_armv7hf = self.arch in ('armv7ahf_cortex_a35', 'armv7ahf_cortex_a53') @@ -94,7 +94,7 @@ class Platform(object): self.is_macos = self.os == 'macos' self.is_macos_x86_64 = self.is_macos and self.is_x86_64 - self.is_macos_arm64 = self.is_macos and self.is_arm64 + self.is_macos_arm64 = self.is_macos and self.is_arm64 self.is_iossim = self.os == 'iossim' or (self.os == 'ios' and self.is_intel) self.is_ios = self.os == 'ios' or self.is_iossim self.is_apple = self.is_macos or self.is_ios @@ -111,7 +111,7 @@ class Platform(object): self.android_api = int(preset('ANDROID_API', default_android_api)) self.is_cygwin = self.os == 'cygwin' - self.is_yocto = self.os == 'yocto' + self.is_yocto = self.os == 'yocto' self.is_none = self.os == 'none' @@ -138,9 +138,9 @@ class Platform(object): if self.is_macos: yield 'DARWIN' yield 'OS_DARWIN' - if self.is_iossim: - yield 'IOS' - yield 'OS_IOS' + if self.is_iossim: + yield 'IOS' + yield 'OS_IOS' yield 'OS_IOSSIM' @property @@ -154,7 +154,7 @@ class Platform(object): (self.is_armv8, 'ARCH_ARM64'), (self.is_armv8m, 'ARCH_ARM8M'), (self.is_arm, 'ARCH_ARM'), - (self.is_linux_armv8 or self.is_macos_arm64, 'ARCH_AARCH64'), + (self.is_linux_armv8 or self.is_macos_arm64, 'ARCH_AARCH64'), (self.is_powerpc, 'ARCH_PPC64LE'), (self.is_power8le, 'ARCH_POWER8LE'), (self.is_power9le, 'ARCH_POWER9LE'), @@ -624,13 +624,13 @@ class Build(object): perl.configure_local() perl.print_variables('LOCAL_') - swiftc = SwiftCompiler(self) - swiftc.configure() - swiftc.print_compiler() - + swiftc = SwiftCompiler(self) + swiftc.configure() + swiftc.print_compiler() + if host.is_linux or host.is_macos or host.is_cygwin: if is_negative('USE_ARCADIA_PYTHON'): - python = Python(self.tc) + python = Python(self.tc) python.configure_posix() python.print_variables() @@ -975,27 +975,27 @@ class ToolchainOptions(object): def version_at_least(self, *args): return args <= tuple(self.compiler_version_list) - def version_exactly(self, *args): - if not args or len(args) > len(self.compiler_version_list): - return False - for l, r in zip(args, list(self.compiler_version_list)[:len(args)]): - if l != r: - return False - return True - + def version_exactly(self, *args): + if not args or len(args) > len(self.compiler_version_list): + return False + for l, r in zip(args, list(self.compiler_version_list)[:len(args)]): + if l != r: + return False + return True + @property def is_gcc(self): return self.type == 'gnu' @property def is_clang(self): - return self.type in ('clang', 'xcode') + return self.type in ('clang', 'xcode') + + @property + def is_xcode(self): + return self.type == 'xcode' @property - def is_xcode(self): - return self.type == 'xcode' - - @property def is_from_arcadia(self): return self.from_arcadia @@ -1020,8 +1020,8 @@ class GnuToolchainOptions(ToolchainOptions): self.ar = self.params.get('ar') self.ar_plugin = self.params.get('ar_plugin') self.inplace_tools = self.params.get('inplace_tools', False) - self.strip = self.params.get('strip') - self.objcopy = self.params.get('objcopy') + self.strip = self.params.get('strip') + self.objcopy = self.params.get('objcopy') self.isystem = self.params.get('isystem') self.dwarf_tool = self.target.find_in_dict(self.params.get('dwarf_tool')) @@ -1031,14 +1031,14 @@ class GnuToolchainOptions(ToolchainOptions): if isinstance(self.sys_lib, dict): self.sys_lib = self.target.find_in_dict(self.sys_lib, []) - self.os_sdk = preset('OS_SDK') or self._default_os_sdk() - self.os_sdk_local = self.os_sdk == 'local' + self.os_sdk = preset('OS_SDK') or self._default_os_sdk() + self.os_sdk_local = self.os_sdk == 'local' - def _default_os_sdk(self): - if self.target.is_linux: + def _default_os_sdk(self): + if self.target.is_linux: if self.target.is_armv8: - return 'ubuntu-16' - + return 'ubuntu-16' + if self.target.is_armv7 and self.target.armv7_float_abi == 'hard': return 'ubuntu-16' @@ -1048,10 +1048,10 @@ class GnuToolchainOptions(ToolchainOptions): if self.target.is_powerpc: return 'ubuntu-14' - # Default OS SDK for Linux builds + # Default OS SDK for Linux builds return 'ubuntu-14' - - + + class Toolchain(object): def __init__(self, tc, build): """ @@ -1076,8 +1076,8 @@ class Compiler(object): # CLANG and CLANG_VER variables emit(self.compiler_variable, 'yes') emit('{}_VER'.format(self.compiler_variable), self.tc.compiler_version) - if self.tc.is_xcode: - emit('XCODE', 'yes') + if self.tc.is_xcode: + emit('XCODE', 'yes') class GnuToolchain(Toolchain): @@ -1086,15 +1086,15 @@ class GnuToolchain(Toolchain): :type tc: GnuToolchainOptions :type build: Build """ - - def get_os_sdk(target): - sdk_native_version = 10.11 if not preset('EXPERIMENTAL_MACOS_M1_SUPPORT') else '11.1' - if target.is_macos: - return '$MACOS_SDK_RESOURCE_GLOBAL/MacOSX{}.sdk'.format(sdk_native_version) + + def get_os_sdk(target): + sdk_native_version = 10.11 if not preset('EXPERIMENTAL_MACOS_M1_SUPPORT') else '11.1' + if target.is_macos: + return '$MACOS_SDK_RESOURCE_GLOBAL/MacOSX{}.sdk'.format(sdk_native_version) elif target.is_yocto: - return '$YOCTO_SDK_RESOURCE_GLOBAL' - return '$OS_SDK_ROOT_RESOURCE_GLOBAL' - + return '$YOCTO_SDK_RESOURCE_GLOBAL' + return '$OS_SDK_ROOT_RESOURCE_GLOBAL' + super(GnuToolchain, self).__init__(tc, build) self.tc = tc @@ -1103,7 +1103,7 @@ class GnuToolchain(Toolchain): self.c_flags_platform = list(tc.target_opt) - self.default_os_sdk_root = get_os_sdk(target) + self.default_os_sdk_root = get_os_sdk(target) self.env = self.tc.get_env() @@ -1122,9 +1122,9 @@ class GnuToolchain(Toolchain): '$GO_FAKE_XCRUN_RESOURCE_GLOBAL', ]) - self.swift_flags_platform = [] - self.swift_lib_path = None - + self.swift_flags_platform = [] + self.swift_lib_path = None + if self.tc.is_from_arcadia: for lib_path in build.host.library_path_variables: self.env.setdefault(lib_path, []).append('{}/lib'.format(self.tc.name_marker)) @@ -1138,22 +1138,22 @@ class GnuToolchain(Toolchain): if preset('MAPSMOBI_BUILD_TARGET') and target.is_iossim and target.is_armv8: ios_version_min = '13.0' - swift_target = select(default=None, selectors=[ + swift_target = select(default=None, selectors=[ (target.is_iossim and target.is_x86_64, 'x86_64-apple-ios{}-simulator'.format(ios_version_min)), (target.is_iossim and target.is_x86, 'i386-apple-ios{}-simulator'.format(ios_version_min)), (target.is_iossim and target.is_armv8, 'arm64-apple-ios{}-simulator'.format(ios_version_min)), (not target.is_iossim and target.is_ios and target.is_armv8, 'arm64-apple-ios9'), (not target.is_iossim and target.is_ios and target.is_armv7, 'armv7-apple-ios9'), - ]) - if swift_target: - self.swift_flags_platform += ['-target', swift_target] - - if self.tc.is_from_arcadia: - self.swift_lib_path = select(default=None, selectors=[ - (host.is_macos and target.is_iossim, '$SWIFT_XCODE_TOOLCHAIN_ROOT_RESOURCE_GLOBAL/usr/lib/swift/iphonesimulator'), + ]) + if swift_target: + self.swift_flags_platform += ['-target', swift_target] + + if self.tc.is_from_arcadia: + self.swift_lib_path = select(default=None, selectors=[ + (host.is_macos and target.is_iossim, '$SWIFT_XCODE_TOOLCHAIN_ROOT_RESOURCE_GLOBAL/usr/lib/swift/iphonesimulator'), (host.is_macos and not target.is_iossim and target.is_ios and (target.is_armv8 or target.is_armv7), '$SWIFT_XCODE_TOOLCHAIN_ROOT_RESOURCE_GLOBAL/usr/lib/swift/iphoneos'), - ]) - + ]) + if self.tc.is_clang: target_triple = self.tc.triplet_opt.get(target.arch, None) if not target_triple: @@ -1166,7 +1166,7 @@ class GnuToolchain(Toolchain): (target.is_iossim and target.is_arm64, 'arm64-apple-ios{}-simulator'.format(ios_version_min)), (target.is_apple and target.is_x86, 'i386-apple-darwin14'), (target.is_apple and target.is_x86_64, 'x86_64-apple-darwin14'), - (target.is_apple and target.is_macos_arm64, 'arm64-apple-macos11'), + (target.is_apple and target.is_macos_arm64, 'arm64-apple-macos11'), (target.is_apple and target.is_armv7, 'armv7-apple-darwin14'), (target.is_apple and target.is_armv8, 'arm64-apple-darwin14'), (target.is_yocto and target.is_armv7, 'arm-poky-linux-gnueabi'), @@ -1221,29 +1221,29 @@ class GnuToolchain(Toolchain): (target.is_linux and target.is_power8le, ['-mcpu=power8', '-mtune=power8', '-maltivec']), (target.is_linux and target.is_power9le, ['-mcpu=power9', '-mtune=power9', '-maltivec']), (target.is_linux and target.is_armv8, ['-march=armv8a']), - (target.is_macos_arm64, ['-mmacosx-version-min={}'.format(macos_arm64_version_min)]), - (target.is_macos, ['-mmacosx-version-min={}'.format(macos_version_min)]), - (target.is_ios and not target.is_iossim, ['-mios-version-min={}'.format(ios_version_min)]), - (target.is_iossim, ['-mios-simulator-version-min={}'.format(ios_version_min)]), + (target.is_macos_arm64, ['-mmacosx-version-min={}'.format(macos_arm64_version_min)]), + (target.is_macos, ['-mmacosx-version-min={}'.format(macos_version_min)]), + (target.is_ios and not target.is_iossim, ['-mios-version-min={}'.format(ios_version_min)]), + (target.is_iossim, ['-mios-simulator-version-min={}'.format(ios_version_min)]), (target.is_android and target.is_armv7, ['-march=armv7-a', '-mfloat-abi=softfp']), - (target.is_android and target.is_armv8, ['-march=armv8-a']), - (target.is_yocto and target.is_armv7, ['-march=armv7-a', '-mfpu=neon', '-mfloat-abi=hard', '-mcpu=cortex-a9', '-O1']) + (target.is_android and target.is_armv8, ['-march=armv8-a']), + (target.is_yocto and target.is_armv7, ['-march=armv7-a', '-mfpu=neon', '-mfloat-abi=hard', '-mcpu=cortex-a9', '-O1']) ]) if target_flags: self.c_flags_platform.extend(target_flags) if target.is_ios: - self.c_flags_platform.append('-D__IOS__=1') - + self.c_flags_platform.append('-D__IOS__=1') + if self.tc.is_from_arcadia: if target.is_apple: if target.is_ios: self.setup_sdk(project='build/platform/ios_sdk', var='${IOS_SDK_ROOT_RESOURCE_GLOBAL}') - self.platform_projects.append('build/platform/macos_system_stl') + self.platform_projects.append('build/platform/macos_system_stl') if target.is_macos: self.setup_sdk(project='build/platform/macos_sdk', var='${MACOS_SDK_RESOURCE_GLOBAL}') - self.platform_projects.append('build/platform/macos_system_stl') + self.platform_projects.append('build/platform/macos_system_stl') if not self.tc.inplace_tools: self.setup_tools(project='build/platform/cctools', var='${CCTOOLS_ROOT_RESOURCE_GLOBAL}', bin='bin', ldlibs=None) @@ -1262,7 +1262,7 @@ class GnuToolchain(Toolchain): elif target.is_armv8: self.setup_tools(project='build/platform/linux_sdk', var='$OS_SDK_ROOT_RESOURCE_GLOBAL', bin='usr/bin', ldlibs='usr/lib/x86_64-linux-gnu') - if target.is_yocto: + if target.is_yocto: self.setup_sdk(project='build/platform/yocto_sdk/yocto_sdk', var='${YOCTO_SDK_ROOT_RESOURCE_GLOBAL}') elif self.tc.params.get('local'): if target.is_apple: @@ -1280,11 +1280,11 @@ class GnuToolchain(Toolchain): self.env.setdefault('SDKROOT', subprocess.check_output(['xcrun', '-sdk', 'iphoneos', '--show-sdk-path']).strip()) elif target.is_macos: self.env.setdefault('SDKROOT', subprocess.check_output(['xcrun', '-sdk', 'macosx', '--show-sdk-path']).strip()) - + def setup_sdk(self, project, var): self.platform_projects.append(project) self.c_flags_platform.append('--sysroot={}'.format(var)) - self.swift_flags_platform += ['-sdk', var] + self.swift_flags_platform += ['-sdk', var] # noinspection PyShadowingBuiltins def setup_tools(self, project, var, bin, ldlibs): @@ -1300,15 +1300,15 @@ class GnuToolchain(Toolchain): emit('TOOLCHAIN_ENV', format_env(self.env, list_separator=':')) emit('_GO_TOOLCHAIN_ENV_PATH', format_env(self.env_go, list_separator=':')) emit('C_FLAGS_PLATFORM', self.c_flags_platform) - emit('SWIFT_FLAGS_PLATFORM', self.swift_flags_platform) - emit('SWIFT_LD_FLAGS', '-L{}'.format(self.swift_lib_path) if self.swift_lib_path else '') + emit('SWIFT_FLAGS_PLATFORM', self.swift_flags_platform) + emit('SWIFT_LD_FLAGS', '-L{}'.format(self.swift_lib_path) if self.swift_lib_path else '') emit('PERL_SDK', preset('OS_SDK') or self.tc.os_sdk) - if preset('OS_SDK') is None: - emit('OS_SDK', self.tc.os_sdk) - emit('OS_SDK_ROOT', None if self.tc.os_sdk_local else self.default_os_sdk_root) + if preset('OS_SDK') is None: + emit('OS_SDK', self.tc.os_sdk) + emit('OS_SDK_ROOT', None if self.tc.os_sdk_local else self.default_os_sdk_root) + - class GnuCompiler(Compiler): gcc_fstack = ['-fstack-protector'] @@ -1395,8 +1395,8 @@ class GnuCompiler(Compiler): if self.target.is_ios: self.c_defines.extend(['-D_XOPEN_SOURCE', '-D_DARWIN_C_SOURCE']) - if preset('MAPSMOBI_BUILD_TARGET') and self.target.is_arm: - self.c_foptions.append('-fembed-bitcode') + if preset('MAPSMOBI_BUILD_TARGET') and self.target.is_arm: + self.c_foptions.append('-fembed-bitcode') self.extra_compile_opts = [] @@ -1723,25 +1723,25 @@ class GnuCompiler(Compiler): emit('_SRC_M_CMD', '$SRC_c($SRC $SRCFLAGS)') emit('_SRC_MASM_CMD', '$_EMPTY_CMD') - # fuzzing configuration + # fuzzing configuration if self.tc.is_clang: if self.tc.version_at_least(12): emit('LIBFUZZER_PATH', 'contrib/libs/libfuzzer12') - - -class SwiftCompiler(object): - def __init__(self, build): - self.host = build.host - self.compiler = None - - def configure(self): - if self.host.is_macos: - self.compiler = '$SWIFT_XCODE_TOOLCHAIN_ROOT_RESOURCE_GLOBAL/usr/bin/swiftc' - - def print_compiler(self): - emit('SWIFT_COMPILER', self.compiler or '') - - + + +class SwiftCompiler(object): + def __init__(self, build): + self.host = build.host + self.compiler = None + + def configure(self): + if self.host.is_macos: + self.compiler = '$SWIFT_XCODE_TOOLCHAIN_ROOT_RESOURCE_GLOBAL/usr/bin/swiftc' + + def print_compiler(self): + emit('SWIFT_COMPILER', self.compiler or '') + + class Linker(object): BFD = 'bfd' LLD = 'lld' @@ -1807,8 +1807,8 @@ class LD(Linker): self.ar = preset('AR') or self.tc.ar self.ar_plugin = self.tc.ar_plugin - self.strip = self.tc.strip - self.objcopy = self.tc.objcopy + self.strip = self.tc.strip + self.objcopy = self.tc.objcopy self.musl = Setting('MUSL', convert=to_bool) @@ -1932,7 +1932,7 @@ class LD(Linker): self.use_stdlib = None self.ld_sdk = select(default=None, selectors=[ - (target.is_macos_arm64, '-Wl,-sdk_version,11.0'), + (target.is_macos_arm64, '-Wl,-sdk_version,11.0'), (target.is_macos, '-Wl,-sdk_version,10.15'), (not target.is_iossim and target.is_ios, '-Wl,-sdk_version,13.1'), (target.is_iossim, '-Wl,-sdk_version,14.5'), @@ -1972,9 +1972,9 @@ class LD(Linker): emit('AR_TOOL', self.ar) emit('AR_TYPE', self.ar_type) - emit('STRIP_TOOL_VENDOR', self.strip) - emit('OBJCOPY_TOOL_VENDOR', self.objcopy) - + emit('STRIP_TOOL_VENDOR', self.strip) + emit('OBJCOPY_TOOL_VENDOR', self.objcopy) + append('LDFLAGS', '$USER_LDFLAGS', self.ld_flags) append('LDFLAGS_GLOBAL', '') @@ -2055,9 +2055,9 @@ class LD(Linker): # Program emit( - "GENERATE_MF_CMD", + "GENERATE_MF_CMD", '$YMAKE_PYTHON', '${input:"build/scripts/generate_mf.py"}', - '--build-root $ARCADIA_BUILD_ROOT --module-name $REALPRJNAME -o ${output;pre=$MODULE_PREFIX;suf=$MODULE_SUFFIX.mf:REALPRJNAME}', + '--build-root $ARCADIA_BUILD_ROOT --module-name $REALPRJNAME -o ${output;pre=$MODULE_PREFIX;suf=$MODULE_SUFFIX.mf:REALPRJNAME}', '-t $MODULE_TYPE --ya-start-command-file -Ya,lics $LICENSE_NAMES -Ya,peers ${rootrel:PEERS} -Ya,credits ${input:CREDITS_TEXTS_FILE} $CREDITS_FLAGS --ya-end-command-file', ) if is_positive("TIDY"): @@ -2129,7 +2129,7 @@ class LD(Linker): ld_env_style) emit('REAL_LINK_DYN_LIB', '$REAL_LINK_DYN_LIB_IMPL($_WHOLE_ARCHIVE_PEERS_VALUE)') - if self.dwarf_command is None or self.target.is_ios: + if self.dwarf_command is None or self.target.is_ios: emit('DWARF_COMMAND') else: emit('DWARF_COMMAND', self.dwarf_command, ld_env_style) @@ -2156,14 +2156,14 @@ class LD(Linker): # "Fat Object" : pre-linked global objects and static library with all dependencies def emit_link_fat_obj(cmd_name, need_wa_option, *extended_flags): - prefix = ['$GENERATE_MF && $GENERATE_VCS_C_INFO_NODEP &&', - '$YMAKE_PYTHON ${input:"build/scripts/link_fat_obj.py"} --build-root $ARCADIA_BUILD_ROOT'] + prefix = ['$GENERATE_MF && $GENERATE_VCS_C_INFO_NODEP &&', + '$YMAKE_PYTHON ${input:"build/scripts/link_fat_obj.py"} --build-root $ARCADIA_BUILD_ROOT'] globals_libs = srcs_globals if need_wa_option else '${rootrel;ext=.a:SRCS_GLOBAL} ${rootrel;ext=.o:SRCS_GLOBAL}' - suffix = [arch_flag, + suffix = [arch_flag, '-Ya,input $AUTO_INPUT $VCS_C_OBJ -Ya,global_srcs', globals_libs, '-Ya,peers $PEERS', '-Ya,linker $CXX_COMPILER $LDFLAGS_GLOBAL $C_FLAGS_PLATFORM', self.ld_sdk, '-Ya,archiver', archiver, '$TOOLCHAIN_ENV ${kv;hide:"p LD"} ${requirements;hide:LD_REQUIREMENTS} ${kv;hide:"pc light-blue"} ${kv;hide:"show_out"}'] - emit(cmd_name, *(prefix + list(extended_flags) + suffix)) + emit(cmd_name, *(prefix + list(extended_flags) + suffix)) # TODO(somov): Проверить, не нужны ли здесь все остальные флаги компоновки (LDFLAGS и т. д.). emit_link_fat_obj('LINK_FAT_OBJECT', True, '--obj=$TARGET', '--lib=${output:REALPRJNAME.a}') @@ -2311,7 +2311,7 @@ class MSVCToolchain(MSVC, Toolchain): if self.tc.from_arcadia and not self.tc.ide_msvs: self.platform_projects.append('build/platform/msvc') if tc.under_wine: - self.platform_projects.append('build/platform/wine') + self.platform_projects.append('build/platform/wine') def print_toolchain(self): super(MSVCToolchain, self).print_toolchain() @@ -2444,10 +2444,10 @@ class MSVCCompiler(MSVC, Compiler): # See: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85678#c0 '-fno-common', ] - if target.is_x86: - flags.append('-m32') - if target.is_x86_64: - flags.append('-m64') + if target.is_x86: + flags.append('-m32') + if target.is_x86_64: + flags.append('-m64') # Some warnings are getting triggered even when NO_COMPILER_WARNINGS is enabled flags.extend(( @@ -2481,27 +2481,27 @@ class MSVCCompiler(MSVC, Compiler): '-Wimport-preprocessor-directive-pedantic', '-Wno-undefined-var-template', ] - if self.tc.version_at_least(2019): - cxx_warnings += [ - '-Wno-deprecated-volatile', - '-Wno-deprecated-anon-enum-enum-conversion', - '-Wno-defaulted-function-deleted', - '-Wno-deprecated-enum-enum-conversion', - '-Wno-ambiguous-reversed-operator', - '-Wno-deprecated-enum-float-conversion', - '-Wno-pointer-to-int-cast', # didn't fail on linux - ] - - # heretic: на момент коммита в нашей конфигурации указано, что тулчейн clang11-windows - аналог msvc 2019 - # https://a.yandex-team.ru/arc/trunk/arcadia/build/ya.conf.json?rev=r7910792#L2185 - # сам clang11 по дефолту представляется msvc2017 (#define _MSC_VER 1911) - # https://a.yandex-team.ru/arc/trunk/arcadia/contrib/libs/clang11/lib/Driver/ToolChains/MSVC.cpp?rev=r7913127#L1352 - # вручную заставляем его представляться msvc2019 (#define _MSC_VER 1921) - # значение версии взято вот отсюда: - # https://a.yandex-team.ru/arc/trunk/arcadia/contrib/libs/llvm11/include/llvm/Support/Compiler.h?blame=true&rev=r7913127#L89 - if self.tc.version_exactly(2019): - flags.append('-fms-compatibility-version=19.21') - + if self.tc.version_at_least(2019): + cxx_warnings += [ + '-Wno-deprecated-volatile', + '-Wno-deprecated-anon-enum-enum-conversion', + '-Wno-defaulted-function-deleted', + '-Wno-deprecated-enum-enum-conversion', + '-Wno-ambiguous-reversed-operator', + '-Wno-deprecated-enum-float-conversion', + '-Wno-pointer-to-int-cast', # didn't fail on linux + ] + + # heretic: на момент коммита в нашей конфигурации указано, что тулчейн clang11-windows - аналог msvc 2019 + # https://a.yandex-team.ru/arc/trunk/arcadia/build/ya.conf.json?rev=r7910792#L2185 + # сам clang11 по дефолту представляется msvc2017 (#define _MSC_VER 1911) + # https://a.yandex-team.ru/arc/trunk/arcadia/contrib/libs/clang11/lib/Driver/ToolChains/MSVC.cpp?rev=r7913127#L1352 + # вручную заставляем его представляться msvc2019 (#define _MSC_VER 1921) + # значение версии взято вот отсюда: + # https://a.yandex-team.ru/arc/trunk/arcadia/contrib/libs/llvm11/include/llvm/Support/Compiler.h?blame=true&rev=r7913127#L89 + if self.tc.version_exactly(2019): + flags.append('-fms-compatibility-version=19.21') + if self.tc.ide_msvs: cxx_warnings += [ '-Wno-unused-command-line-argument', @@ -2761,8 +2761,8 @@ class MSVCLinker(MSVC, Linker): EXPORTS_VALUE=/DEF:${input:EXPORTS_FILE} }''') - emit("GENERATE_MF_CMD", '$YMAKE_PYTHON ${input:"build/scripts/generate_mf.py"}', - '--build-root $ARCADIA_BUILD_ROOT --module-name $REALPRJNAME -o ${output;pre=$MODULE_PREFIX;suf=$MODULE_SUFFIX.mf:REALPRJNAME}', + emit("GENERATE_MF_CMD", '$YMAKE_PYTHON ${input:"build/scripts/generate_mf.py"}', + '--build-root $ARCADIA_BUILD_ROOT --module-name $REALPRJNAME -o ${output;pre=$MODULE_PREFIX;suf=$MODULE_SUFFIX.mf:REALPRJNAME}', '-t $MODULE_TYPE --ya-start-command-file -Ya,lics $LICENSE_NAMES -Ya,peers ${rootrel:PEERS} -Ya,credits ${input:CREDITS_TEXTS_FILE} $CREDITS_FLAGS --ya-end-command-file', ) @@ -2779,9 +2779,9 @@ class MSVCLinker(MSVC, Linker): srcs_globals, '--ya-start-command-file ${VCS_C_OBJ_RR} ${qe;rootrel:AUTO_INPUT} ${qe;rootrel;ext=.lib:PEERS} ${qe;rootrel;ext=.dll;noext;suf=.lib:PEERS} \ $LINK_EXE_FLAGS $LINK_STDLIBS $LDFLAGS $LDFLAGS_GLOBAL $OBJADDE --ya-end-command-file') emit('REAL_LINK_DYN_LIB', '$REAL_LINK_DYN_LIB_IMPL($_WHOLE_ARCHIVE_PEERS_VALUE)') - - emit('SWIG_DLL_JAR_CMD', '$GENERATE_MF && $GENERATE_VCS_C_INFO_NODEP && $REAL_SWIG_DLL_JAR_CMD') - + + emit('SWIG_DLL_JAR_CMD', '$GENERATE_MF && $GENERATE_VCS_C_INFO_NODEP && $REAL_SWIG_DLL_JAR_CMD') + head_link_lib = '${TOOLCHAIN_ENV} ${cwd:ARCADIA_BUILD_ROOT} ${LIB_WRAPPER} ${LINK_LIB_CMD}' tail_link_lib = '--ya-start-command-file ${qe;rootrel:AUTO_INPUT} $LINK_LIB_FLAGS --ya-end-command-file \ ${requirements;hide:LIB_REQUIREMENTS} ${hide;kv:"soe"} ${hide;kv:"p AR"} ${hide;kv:"pc light-red"}' @@ -2819,7 +2819,7 @@ class MSVCLinker(MSVC, Linker): Compilers = { 'gnu': (GnuToolchain, GnuCompiler, LD), 'clang': (GnuToolchain, GnuCompiler, LD), - 'xcode': (GnuToolchain, GnuCompiler, LD), + 'xcode': (GnuToolchain, GnuCompiler, LD), 'msvc': (MSVCToolchain, MSVCCompiler, MSVCLinker), } @@ -2853,13 +2853,13 @@ class Ragel(object): class Python(object): - def __init__(self, tc): + def __init__(self, tc): self.python = None self.flags = None self.ldflags = None self.libraries = None self.includes = None - self.tc = tc + self.tc = tc def configure_posix(self, python=None, python_config=None): python = python or preset('PYTHON_BIN') or which('python') @@ -2882,8 +2882,8 @@ class Python(object): # They are not used separately and get overriden together, so it is safe. # TODO(somov): Удалить эту переменную и PYTHON_LIBRARIES из makelist-ов. self.libraries = '' - if preset('USE_ARCADIA_PYTHON') == 'no' and not preset('USE_SYSTEM_PYTHON') and not self.tc.os_sdk_local: - raise Exception("Use fixed python (see https://clubs.at.yandex-team.ru/arcadia/15392) or set OS_SDK=local flag") + if preset('USE_ARCADIA_PYTHON') == 'no' and not preset('USE_SYSTEM_PYTHON') and not self.tc.os_sdk_local: + raise Exception("Use fixed python (see https://clubs.at.yandex-team.ru/arcadia/15392) or set OS_SDK=local flag") def print_variables(self): variables = Variables({ @@ -3002,7 +3002,7 @@ class Cuda(object): self.cuda_host_msvc_version = Setting('CUDA_HOST_MSVC_VERSION') self.cuda_nvcc_flags = Setting('CUDA_NVCC_FLAGS', auto=[]) - self.peerdirs = ['build/platform/cuda'] + self.peerdirs = ['build/platform/cuda'] self.nvcc_std = '-std=c++14' if self.build.tc.type == 'msvc': @@ -3069,12 +3069,12 @@ class Cuda(object): return False if host != target: - if not(host.is_linux_x86_64 and target.is_linux_armv8): - return False - if not self.cuda_version.from_user: - return False - if self.cuda_version.value not in ('11.3',): - raise ConfigureError('Only CUDA 11.3 are available for cross compilation from linux-x86 to linux-aarch64.\nUse -DCUDA_VERSION=11.3 flag.') + if not(host.is_linux_x86_64 and target.is_linux_armv8): + return False + if not self.cuda_version.from_user: + return False + if self.cuda_version.value not in ('11.3',): + raise ConfigureError('Only CUDA 11.3 are available for cross compilation from linux-x86 to linux-aarch64.\nUse -DCUDA_VERSION=11.3 flag.') if self.cuda_version.value in ('8.0', '9.0', '9.1', '9.2', '10.0'): raise ConfigureError('CUDA versions 8.x, 9.x and 10.0 are no longer supported.\nSee DEVTOOLS-7108.') @@ -3133,7 +3133,7 @@ class Cuda(object): return select(( (host.is_linux_x86_64 and target.is_linux_x86_64, '$CUDA_HOST_TOOLCHAIN_RESOURCE_GLOBAL/bin/clang'), - (host.is_linux_x86_64 and target.is_linux_armv8, '$CUDA_HOST_TOOLCHAIN_RESOURCE_GLOBAL/bin/clang'), + (host.is_linux_x86_64 and target.is_linux_armv8, '$CUDA_HOST_TOOLCHAIN_RESOURCE_GLOBAL/bin/clang'), (host.is_linux_powerpc and target.is_linux_powerpc, '$CUDA_HOST_TOOLCHAIN_RESOURCE_GLOBAL/bin/clang'), (host.is_macos_x86_64 and target.is_macos_x86_64, '$CUDA_HOST_TOOLCHAIN_RESOURCE_GLOBAL/usr/bin/clang'), )) |