aboutsummaryrefslogtreecommitdiffstats
path: root/build
diff options
context:
space:
mode:
authorAlexander Smirnov <alex@ydb.tech>2024-12-24 15:46:17 +0000
committerAlexander Smirnov <alex@ydb.tech>2024-12-24 15:46:17 +0000
commitc7decaf9230ddcb1ec2c42d1f50fb3998166c4ef (patch)
tree4efde4e4276bb0f24c314909403a1f6ed94c60d7 /build
parentcf344b64297e6a79d1e538be9f8f59afb06a2a97 (diff)
parentb821606f7bd364dc755d37b5bcb3559130675364 (diff)
downloadydb-c7decaf9230ddcb1ec2c42d1f50fb3998166c4ef.tar.gz
Merge branch 'rightlib' into merge-libs-241224-1545
Diffstat (limited to 'build')
-rw-r--r--build/conf/java.conf1
-rw-r--r--build/conf/proto.conf12
-rw-r--r--build/conf/settings.conf1
-rw-r--r--build/conf/ts/ts_test.conf2
-rw-r--r--build/export_generators/ide-gradle/build.gradle.kts.jinja11
-rw-r--r--build/export_generators/ide-gradle/generator.toml1
-rw-r--r--build/export_generators/ide-gradle/jdk.jinja24
-rw-r--r--build/export_generators/ide-gradle/kotlin_plugins.jinja2
-rw-r--r--build/export_generators/ide-gradle/plugins.jinja7
-rw-r--r--build/export_generators/ide-gradle/preview.jinja4
-rw-r--r--build/export_generators/ide-gradle/proto_plugins.jinja9
-rw-r--r--build/export_generators/ide-gradle/proto_vars.jinja2
-rw-r--r--build/export_generators/ide-gradle/run_java_program.jinja26
-rw-r--r--build/export_generators/ide-gradle/source_sets.jinja52
-rw-r--r--build/export_generators/ide-gradle/vars.jinja9
-rw-r--r--build/external_resources/ymake/public.resources.json10
-rw-r--r--build/external_resources/ymake/resources.json10
-rw-r--r--build/mapping.conf.json18
-rw-r--r--build/platform/test_tool/host.ya.make.inc10
-rw-r--r--build/platform/test_tool/host_os.ya.make.inc10
-rw-r--r--build/scripts/compile_java.py1
-rw-r--r--build/sysincl/stl-to-nothing.yml4
-rw-r--r--build/ymake.core.conf18
23 files changed, 149 insertions, 95 deletions
diff --git a/build/conf/java.conf b/build/conf/java.conf
index 114f78cd95..c83a583526 100644
--- a/build/conf/java.conf
+++ b/build/conf/java.conf
@@ -423,6 +423,7 @@ macro _SEM_JAR_SOURCE_SET(SRCDIR=".", PACKAGE_PREFIX="", EXCLUDE[], FILES[], RES
macro FULL_JAVA_SRCS(Args...) {
_IDEA_JAVA_SRCS_VALUE($Args)
_JAVA_SRCS($Args)
+ _SEM_JAR_SOURCE_SET($Args)
}
# tag:java-specific
diff --git a/build/conf/proto.conf b/build/conf/proto.conf
index 7f1194e32b..988206de22 100644
--- a/build/conf/proto.conf
+++ b/build/conf/proto.conf
@@ -511,18 +511,6 @@ macro _JAVA_PROTO_CMD(File) {
.SEM=proto_files ${input;rootrel:File} ${hide;output:File.jsrc}
}
-
-# tag:proto tag:perl-specific tag:deprecated
-### @usage: XS_PROTO(InputProto Dir Outputs...) # deprecated
-###
-### Generate Perl code from protobuf.
-### In order to use this macro one should predict all outputs protoc will emit from input_proto file and enlist those as outputs.
-macro XS_PROTO(File, Dir, Outputs...) {
- .CMD=${PROTOC_OLD} -I=${ARCADIA_ROOT}/${Dir} ${pre=-I=:_PROTO__INCLUDE} -I=${ARCADIA_ROOT} -I=${PROTOBUF_OLD_PATH} --perlxs_out=${BINDIR} $_PROTOC_FLAGS ${input:File} ${hide;output:Outputs} ${induced_deps=h+cpp;hide;nopath;noext;suf=.pb.h:File} ${hide:PROTO_FAKEID}
- PEERDIR(${Dir})
- ADDINCL(${ARCADIA_BUILD_ROOT}/${Dir})
-}
-
# tag:proto tag:python-specific
when ($PY_PROTOS_FOR == "yes") {
PEERDIR+=contrib/libs/protobuf/python
diff --git a/build/conf/settings.conf b/build/conf/settings.conf
index 87b1ba4203..2094fce5c5 100644
--- a/build/conf/settings.conf
+++ b/build/conf/settings.conf
@@ -127,4 +127,3 @@ ARCADIA_TEST_ROOT=../arcadia_tests_data/
DEFAULT_REQUIREMENTS=network:restricted cpu:1 ram:32
AUTOINCLUDE_PATHS=build/conf/autoincludes.json
-LINTERS_MAKE_FILENAME=linters.make.inc
diff --git a/build/conf/ts/ts_test.conf b/build/conf/ts/ts_test.conf
index c468139336..79f3d79bf2 100644
--- a/build/conf/ts/ts_test.conf
+++ b/build/conf/ts/ts_test.conf
@@ -35,7 +35,7 @@ module TS_TEST_JEST_FOR: _TS_TEST_BASE {
SET(PEERDIR_TAGS TS TS_PROTO TS_PROTO_FROM_SCHEMA)
# compatibility with old TS_TEST_SRCS
- SET(TS_TEST_EXTENSION test.(ts|tsx|js|jsx))
+ SET(TS_TEST_EXTENSION (test|spec).(ts|tsx|mts|cts|js|jsx|mjs|cjs))
SET(TS_TEST_EXTRA_SRCS_MASK /**/__mocks__/*)
# nots.py will decide if we need to depend on the testing target module output
diff --git a/build/export_generators/ide-gradle/build.gradle.kts.jinja b/build/export_generators/ide-gradle/build.gradle.kts.jinja
index d0a9040f05..36aa47faa9 100644
--- a/build/export_generators/ide-gradle/build.gradle.kts.jinja
+++ b/build/export_generators/ide-gradle/build.gradle.kts.jinja
@@ -1,14 +1,3 @@
-{%- macro OutDirs(run, prefix, suffix) -%}
-{%- if run.args|length and run.out_dir|length -%}
-{%- for out_dir in run.out_dir -%}
-{%- set out_dirs = select_by_ends(run.args, "/" + out_dir) -%}
-{%- if out_dirs|length %}
-{{ prefix }}{{ out_dirs|first }}{{ suffix }}
-{%- endif -%}
-{%- endfor -%}
-{%- endif -%}
-{%- endmacro -%}
-
{%- include "[generator]/vars.jinja" -%}
{%- include "[generator]/import.jinja" -%}
{%- include "[generator]/repositories.jinja" -%}
diff --git a/build/export_generators/ide-gradle/generator.toml b/build/export_generators/ide-gradle/generator.toml
index b618430b2c..afc18c34ce 100644
--- a/build/export_generators/ide-gradle/generator.toml
+++ b/build/export_generators/ide-gradle/generator.toml
@@ -88,4 +88,5 @@ test=[
"/src/test/java",
"/src/test-integration",
"/src/testFixtures",
+ "/src/intTest",
]
diff --git a/build/export_generators/ide-gradle/jdk.jinja b/build/export_generators/ide-gradle/jdk.jinja
new file mode 100644
index 0000000000..01fbc09daf
--- /dev/null
+++ b/build/export_generators/ide-gradle/jdk.jinja
@@ -0,0 +1,24 @@
+{#- default JDK version -#}
+{%- set jdk_version = '17' -%}
+{%- if target.required_jdk -%}
+{%- set jdk_version = target.required_jdk -%}
+{%- elif target.jdk_version -%}
+{%- set jdk_version = target.jdk_version -%}
+{%- elif not target and extra_targets|length -%}
+{%- set extra_jdk_version = extra_targets|selectattr('jdk_version')|map(attribute='jdk_version')|first -%}
+{%- if extra_jdk_version -%}
+{%- set jdk_version = extra_jdk_version -%}
+{%- endif -%}
+{%- endif -%}
+
+{%- set jdk_path = false -%}
+{%- if target.jdk_path and target.jdk_path != "NOT_FOUND" -%}
+{%- set jdk_path = target.jdk_path -%}
+{#- If no main target, but exists extra_targets -#}
+{%- elif not target and extra_targets|length -%}
+{%- set jdk_path_targets = extra_targets|selectattr('jdk_path')|rejectattr('jdk_path', 'eq', 'NOT_FOUND') -%}
+{%- if jdk_path_targets|length -%}
+{%- set jdk_path_target = jdk_path_targets|first -%}
+{%- set jdk_path = jdk_path_target.jdk_path -%}
+{%- endif -%}
+{%- endif -%}
diff --git a/build/export_generators/ide-gradle/kotlin_plugins.jinja b/build/export_generators/ide-gradle/kotlin_plugins.jinja
index df0f65de36..823fa5243d 100644
--- a/build/export_generators/ide-gradle/kotlin_plugins.jinja
+++ b/build/export_generators/ide-gradle/kotlin_plugins.jinja
@@ -59,6 +59,6 @@ noArg {
{%- if with_kotlin %}
kotlin {
- jvmToolchain({{ required_jdk }})
+ jvmToolchain({{ jdk_version }})
}
{% endif -%}
diff --git a/build/export_generators/ide-gradle/plugins.jinja b/build/export_generators/ide-gradle/plugins.jinja
index 13a46003be..25768f55ee 100644
--- a/build/export_generators/ide-gradle/plugins.jinja
+++ b/build/export_generators/ide-gradle/plugins.jinja
@@ -35,12 +35,11 @@ plugins {
{%- endif %}
}
-{#- language level -#}
-{%- if has_required_jdk %}
+{%- if jdk_version %}
java {
toolchain {
- languageVersion = JavaLanguageVersion.of("{{ required_jdk }}")
+ languageVersion = JavaLanguageVersion.of("{{ jdk_version }}")
}
}
-{%- endif -%}
+{% endif -%}
diff --git a/build/export_generators/ide-gradle/preview.jinja b/build/export_generators/ide-gradle/preview.jinja
index 18aa8fcd2d..5864b5171d 100644
--- a/build/export_generators/ide-gradle/preview.jinja
+++ b/build/export_generators/ide-gradle/preview.jinja
@@ -3,7 +3,7 @@
tasks.withType<JavaCompile> {
options.compilerArgs.add("--enable-preview")
options.compilerArgs.add("-Xlint:preview")
- options.release.set({{ required_jdk }})
+ options.release.set({{ jdk_version }})
}
tasks.withType<JavaExec> {
@@ -17,7 +17,7 @@ tasks.withType<Test> {
tasks.withType<Javadoc> {
val javadocOptions = options as CoreJavadocOptions
- javadocOptions.addStringOption("source", "{{ required_jdk }}")
+ javadocOptions.addStringOption("source", "{{ jdk_version }}")
javadocOptions.addBooleanOption("-enable-preview", true)
}
{% endif -%}
diff --git a/build/export_generators/ide-gradle/proto_plugins.jinja b/build/export_generators/ide-gradle/proto_plugins.jinja
index a5bb76d758..655614672d 100644
--- a/build/export_generators/ide-gradle/proto_plugins.jinja
+++ b/build/export_generators/ide-gradle/proto_plugins.jinja
@@ -7,3 +7,12 @@ plugins {
`signing`
{%- endif %}
}
+
+{%- if jdk_version %}
+
+java {
+ toolchain {
+ languageVersion = JavaLanguageVersion.of("{{ jdk_version }}")
+ }
+}
+{%- endif -%}
diff --git a/build/export_generators/ide-gradle/proto_vars.jinja b/build/export_generators/ide-gradle/proto_vars.jinja
index 45fa6d7bb7..761c74b070 100644
--- a/build/export_generators/ide-gradle/proto_vars.jinja
+++ b/build/export_generators/ide-gradle/proto_vars.jinja
@@ -1,2 +1,4 @@
{%- set publish = target.publish -%}
{%- set libraries = target.consumer|selectattr('type', 'eq', 'library') -%}
+
+{%- include "[generator]/jdk.jinja" -%}
diff --git a/build/export_generators/ide-gradle/run_java_program.jinja b/build/export_generators/ide-gradle/run_java_program.jinja
index 6f0597a86a..f28ef430cc 100644
--- a/build/export_generators/ide-gradle/run_java_program.jinja
+++ b/build/export_generators/ide-gradle/run_java_program.jinja
@@ -26,25 +26,31 @@ val runJav{{ loop.index }} = task<JavaExec>("runJavaProgram{{ loop.index }}") {
)
{% endif -%}
-{%- if run.in_dir %}
-{% for in_dir in run.in_dir -%}
+{%- if run.in_dir -%}
+{%- for in_dir in run.in_dir %}
inputs.files(fileTree("{{ in_dir }}"))
{% endfor -%}
{%- endif -%}
-{%- if run.in %}
-{% for in_file in run.in -%}
+
+{%- if run.in -%}
+{%- for in_file in run.in %}
inputs.files("{{ in_file }}")
{% endfor -%}
{%- endif -%}
-{{ OutDirs(run, ' outputs.dir("', '")') }}
-{#
+{%- if run.out_dir|length -%}
+{%- for out_dir in run.out_dir|unique %}
+ outputs.dir("{{ out_dir }}")
+{%- endfor -%}
+{%- endif -%}
+{#-
Не использованы аттрибуты
+ run-out="list"
run-cwd="str"
run-in_dirs_inputs="list"
run-in_noparse="list"
run-tool="list"
--#}
+#}
}
tasks.getByName("sourcesJar").dependsOn(runJav{{ loop.index }})
@@ -52,5 +58,11 @@ tasks.getByName("sourcesJar").dependsOn(runJav{{ loop.index }})
tasks.compileJava.configure {
dependsOn(runJav{{ loop.index }})
}
+{%- if with_kotlin %}
+
+tasks.compileKotlin.configure {
+ dependsOn(runJav{{ loop.index }})
+}
+{%- endif %}
{% endfor -%}
{% endif -%}
diff --git a/build/export_generators/ide-gradle/source_sets.jinja b/build/export_generators/ide-gradle/source_sets.jinja
index 75268d66aa..24965370d5 100644
--- a/build/export_generators/ide-gradle/source_sets.jinja
+++ b/build/export_generators/ide-gradle/source_sets.jinja
@@ -1,6 +1,6 @@
{#- empty string #}
sourceSets {
-{%- if target.runs|length %}
+{%- if target.runs|length or target.jar_source_set|length %}
main {
{#-
Default by Gradle:
@@ -9,9 +9,15 @@ sourceSets {
resources.srcDir("src/main/resources")
#}
-{%- for run in target.runs -%}
-{{ OutDirs(run, ' java.srcDir("', '")') }}
-{%- endfor %}
+{%- if target.jar_source_set|length -%}
+{%- for source_set in target.jar_source_set -%}
+{%- set srcdir_glob = split(source_set, ':') -%}
+{%- set out = srcdir_glob[0] -%}
+{%- if out != 'src/main/java' %}
+ java.srcDir("{{ out }}")
+{%- endif -%}
+{%- endfor -%}
+{%- endif %}
}
{%- endif %}
test {
@@ -30,30 +36,20 @@ sourceSets {
resources.srcDir("src/testFixtures/resources")
java.srcDir("src/intTest/java")
resources.srcDir("src/intTest/resources")
-{%- for extra_target in extra_targets -%}
-{%- if extra_target.runs|length -%}
-{%- for run in extra_target.runs -%}
-{{ OutDirs(run, ' java.srcDir("', '")') }}
-{%- endfor -%}
-{%- endif -%}
-{%- endfor %}
- }
-}
-
-{%- if target.jar_source_set|length -%}
-{%- for source_set in target.jar_source_set -%}
-{%- set srcdir_glob = split(source_set, ':') %}
-sourceSets.main.java.srcDirs += "{{ srcdir_glob[0] }}"
+{%- set extra_target_source_sets = extra_targets|selectattr('jar_source_set')|map(attribute='jar_source_set')|sum|unique -%}
+{%- if extra_target_source_sets|length -%}
+{%- for source_set in extra_target_source_sets -%}
+{%- set srcdir_glob = split(source_set, ':') -%}
+{%- set out = srcdir_glob[0] -%}
+{%- if out != 'src/test/java' %}
+ java.srcDir("{{ srcdir_glob[0] }}")
+{%- endif -%}
{%- endfor -%}
-{%- endif -%}
-
-{% for extra_target in extra_targets -%}
-{%- if extra_target.jar_source_set|length -%}
-{%- for source_set in extra_target.jar_source_set -%}
-{%- set srcdir_glob = split(source_set, ':') %}
+{%- endif %}
+ }
+}
-sourceSets.main.java.srcDirs += "{{ srcdir_glob[0] }}"
-{%- endfor -%}
-{%- endif -%}
-{%- endfor -%}
+tasks.withType<Jar>() {
+ duplicatesStrategy = DuplicatesStrategy.INCLUDE
+}
diff --git a/build/export_generators/ide-gradle/vars.jinja b/build/export_generators/ide-gradle/vars.jinja
index d8722a2b42..26f7e3621c 100644
--- a/build/export_generators/ide-gradle/vars.jinja
+++ b/build/export_generators/ide-gradle/vars.jinja
@@ -5,11 +5,4 @@
{%- set has_junit5_test = extra_targets|selectattr('junit5_test') -%}
{%- set has_errorprone = target.use_errorprone and not disable_errorprone and target.consumer|selectattr('jar', 'startsWith', 'contrib/java/com/google/errorprone/error_prone_annotations')|length -%}
-{%- if not target.required_jdk -%}
-{%- set has_required_jdk = false -%}
-{#- If no required JDK, set default JDK for Kotlin parts -#}
-{%- set required_jdk = '17' -%}
-{%- else -%}
-{%- set has_required_jdk = true -%}
-{%- set required_jdk = target.required_jdk -%}
-{%- endif -%}
+{%- include "[generator]/jdk.jinja" -%}
diff --git a/build/external_resources/ymake/public.resources.json b/build/external_resources/ymake/public.resources.json
index 206c810df4..1ef4b391df 100644
--- a/build/external_resources/ymake/public.resources.json
+++ b/build/external_resources/ymake/public.resources.json
@@ -1,19 +1,19 @@
{
"by_platform": {
"darwin": {
- "uri": "sbr:7666559958"
+ "uri": "sbr:7714082087"
},
"darwin-arm64": {
- "uri": "sbr:7666558962"
+ "uri": "sbr:7714081769"
},
"linux": {
- "uri": "sbr:7666562407"
+ "uri": "sbr:7714082818"
},
"linux-aarch64": {
- "uri": "sbr:7666556873"
+ "uri": "sbr:7714081292"
},
"win32-clang-cl": {
- "uri": "sbr:7666560929"
+ "uri": "sbr:7714082412"
}
}
}
diff --git a/build/external_resources/ymake/resources.json b/build/external_resources/ymake/resources.json
index 6ffdc2cea1..c958e7d196 100644
--- a/build/external_resources/ymake/resources.json
+++ b/build/external_resources/ymake/resources.json
@@ -1,19 +1,19 @@
{
"by_platform": {
"darwin": {
- "uri": "sbr:7666538130"
+ "uri": "sbr:7714069562"
},
"darwin-arm64": {
- "uri": "sbr:7666537615"
+ "uri": "sbr:7714068983"
},
"linux": {
- "uri": "sbr:7666539479"
+ "uri": "sbr:7714070680"
},
"linux-aarch64": {
- "uri": "sbr:7666537053"
+ "uri": "sbr:7714068462"
},
"win32-clang-cl": {
- "uri": "sbr:7666538798"
+ "uri": "sbr:7714070213"
}
}
}
diff --git a/build/mapping.conf.json b/build/mapping.conf.json
index 2972e50117..f3743e8100 100644
--- a/build/mapping.conf.json
+++ b/build/mapping.conf.json
@@ -464,6 +464,10 @@
"7658438634": "https://devtools-registry.s3.yandex.net/7658438634",
"7688925574": "https://devtools-registry.s3.yandex.net/7688925574",
"7688984774": "https://devtools-registry.s3.yandex.net/7688984774",
+ "7706167620": "https://devtools-registry.s3.yandex.net/7706167620",
+ "7706227677": "https://devtools-registry.s3.yandex.net/7706227677",
+ "7717368273": "https://devtools-registry.s3.yandex.net/7717368273",
+ "7717387253": "https://devtools-registry.s3.yandex.net/7717387253",
"5486731632": "https://devtools-registry.s3.yandex.net/5486731632",
"5514350352": "https://devtools-registry.s3.yandex.net/5514350352",
"5514360398": "https://devtools-registry.s3.yandex.net/5514360398",
@@ -647,6 +651,7 @@
"7642861686": "https://devtools-registry.s3.yandex.net/7642861686",
"7648122773": "https://devtools-registry.s3.yandex.net/7648122773",
"7666559958": "https://devtools-registry.s3.yandex.net/7666559958",
+ "7714082087": "https://devtools-registry.s3.yandex.net/7714082087",
"5766171800": "https://devtools-registry.s3.yandex.net/5766171800",
"5805430761": "https://devtools-registry.s3.yandex.net/5805430761",
"5829025456": "https://devtools-registry.s3.yandex.net/5829025456",
@@ -705,6 +710,7 @@
"7642861092": "https://devtools-registry.s3.yandex.net/7642861092",
"7648121342": "https://devtools-registry.s3.yandex.net/7648121342",
"7666558962": "https://devtools-registry.s3.yandex.net/7666558962",
+ "7714081769": "https://devtools-registry.s3.yandex.net/7714081769",
"5766173070": "https://devtools-registry.s3.yandex.net/5766173070",
"5805432830": "https://devtools-registry.s3.yandex.net/5805432830",
"5829031598": "https://devtools-registry.s3.yandex.net/5829031598",
@@ -763,6 +769,7 @@
"7642862516": "https://devtools-registry.s3.yandex.net/7642862516",
"7648125070": "https://devtools-registry.s3.yandex.net/7648125070",
"7666562407": "https://devtools-registry.s3.yandex.net/7666562407",
+ "7714082818": "https://devtools-registry.s3.yandex.net/7714082818",
"5766171341": "https://devtools-registry.s3.yandex.net/5766171341",
"5805430188": "https://devtools-registry.s3.yandex.net/5805430188",
"5829023352": "https://devtools-registry.s3.yandex.net/5829023352",
@@ -821,6 +828,7 @@
"7642860624": "https://devtools-registry.s3.yandex.net/7642860624",
"7648120215": "https://devtools-registry.s3.yandex.net/7648120215",
"7666556873": "https://devtools-registry.s3.yandex.net/7666556873",
+ "7714081292": "https://devtools-registry.s3.yandex.net/7714081292",
"5766172695": "https://devtools-registry.s3.yandex.net/5766172695",
"5805432230": "https://devtools-registry.s3.yandex.net/5805432230",
"5829029743": "https://devtools-registry.s3.yandex.net/5829029743",
@@ -879,6 +887,7 @@
"7642862140": "https://devtools-registry.s3.yandex.net/7642862140",
"7648124003": "https://devtools-registry.s3.yandex.net/7648124003",
"7666560929": "https://devtools-registry.s3.yandex.net/7666560929",
+ "7714082412": "https://devtools-registry.s3.yandex.net/7714082412",
"4307890075": "https://devtools-registry.s3.yandex.net/4307890075",
"5517245192": "https://devtools-registry.s3.yandex.net/5517245192",
"4307901240": "https://devtools-registry.s3.yandex.net/4307901240",
@@ -1596,6 +1605,10 @@
"7658438634": "devtools/ya/test/programs/test_tool/bin/test_tool for linux",
"7688925574": "devtools/ya/test/programs/test_tool/bin/test_tool for linux",
"7688984774": "devtools/ya/test/programs/test_tool/bin/test_tool for linux",
+ "7706167620": "devtools/ya/test/programs/test_tool/bin/test_tool for linux",
+ "7706227677": "devtools/ya/test/programs/test_tool/bin/test_tool for linux",
+ "7717368273": "devtools/ya/test/programs/test_tool/bin/test_tool for linux",
+ "7717387253": "devtools/ya/test/programs/test_tool/bin/test_tool for linux",
"5486731632": "devtools/ya/test/programs/test_tool/bin3/test_tool3 for linux",
"5514350352": "devtools/ya/test/programs/test_tool/bin3/test_tool3 for linux",
"5514360398": "devtools/ya/test/programs/test_tool/bin3/test_tool3 for linux",
@@ -1779,6 +1792,7 @@
"7642861686": "devtools/ymake/bin/ymake for darwin",
"7648122773": "devtools/ymake/bin/ymake for darwin",
"7666559958": "devtools/ymake/bin/ymake for darwin",
+ "7714082087": "devtools/ymake/bin/ymake for darwin",
"5766171800": "devtools/ymake/bin/ymake for darwin-arm64",
"5805430761": "devtools/ymake/bin/ymake for darwin-arm64",
"5829025456": "devtools/ymake/bin/ymake for darwin-arm64",
@@ -1837,6 +1851,7 @@
"7642861092": "devtools/ymake/bin/ymake for darwin-arm64",
"7648121342": "devtools/ymake/bin/ymake for darwin-arm64",
"7666558962": "devtools/ymake/bin/ymake for darwin-arm64",
+ "7714081769": "devtools/ymake/bin/ymake for darwin-arm64",
"5766173070": "devtools/ymake/bin/ymake for linux",
"5805432830": "devtools/ymake/bin/ymake for linux",
"5829031598": "devtools/ymake/bin/ymake for linux",
@@ -1895,6 +1910,7 @@
"7642862516": "devtools/ymake/bin/ymake for linux",
"7648125070": "devtools/ymake/bin/ymake for linux",
"7666562407": "devtools/ymake/bin/ymake for linux",
+ "7714082818": "devtools/ymake/bin/ymake for linux",
"5766171341": "devtools/ymake/bin/ymake for linux-aarch64",
"5805430188": "devtools/ymake/bin/ymake for linux-aarch64",
"5829023352": "devtools/ymake/bin/ymake for linux-aarch64",
@@ -1953,6 +1969,7 @@
"7642860624": "devtools/ymake/bin/ymake for linux-aarch64",
"7648120215": "devtools/ymake/bin/ymake for linux-aarch64",
"7666556873": "devtools/ymake/bin/ymake for linux-aarch64",
+ "7714081292": "devtools/ymake/bin/ymake for linux-aarch64",
"5766172695": "devtools/ymake/bin/ymake for win32-clang-cl",
"5805432230": "devtools/ymake/bin/ymake for win32-clang-cl",
"5829029743": "devtools/ymake/bin/ymake for win32-clang-cl",
@@ -2011,6 +2028,7 @@
"7642862140": "devtools/ymake/bin/ymake for win32-clang-cl",
"7648124003": "devtools/ymake/bin/ymake for win32-clang-cl",
"7666560929": "devtools/ymake/bin/ymake for win32-clang-cl",
+ "7714082412": "devtools/ymake/bin/ymake for win32-clang-cl",
"4307890075": "flake8_linter for linux",
"5517245192": "flake8_linter for linux",
"4307901240": "flake8_linter for linux-aarch64",
diff --git a/build/platform/test_tool/host.ya.make.inc b/build/platform/test_tool/host.ya.make.inc
index d362d78a85..bddbceb567 100644
--- a/build/platform/test_tool/host.ya.make.inc
+++ b/build/platform/test_tool/host.ya.make.inc
@@ -1,12 +1,12 @@
IF (HOST_OS_DARWIN AND HOST_ARCH_X86_64)
- DECLARE_EXTERNAL_RESOURCE(TEST_TOOL_HOST sbr:7688980745)
+ DECLARE_EXTERNAL_RESOURCE(TEST_TOOL_HOST sbr:7717386600)
ELSEIF (HOST_OS_DARWIN AND HOST_ARCH_ARM64)
- DECLARE_EXTERNAL_RESOURCE(TEST_TOOL_HOST sbr:7688979180)
+ DECLARE_EXTERNAL_RESOURCE(TEST_TOOL_HOST sbr:7717386279)
ELSEIF (HOST_OS_LINUX AND HOST_ARCH_X86_64)
- DECLARE_EXTERNAL_RESOURCE(TEST_TOOL_HOST sbr:7688984774)
+ DECLARE_EXTERNAL_RESOURCE(TEST_TOOL_HOST sbr:7717387253)
ELSEIF (HOST_OS_LINUX AND HOST_ARCH_AARCH64)
- DECLARE_EXTERNAL_RESOURCE(TEST_TOOL_HOST sbr:7688977846)
+ DECLARE_EXTERNAL_RESOURCE(TEST_TOOL_HOST sbr:7717386028)
ELSEIF (HOST_OS_WINDOWS AND HOST_ARCH_X86_64)
- DECLARE_EXTERNAL_RESOURCE(TEST_TOOL_HOST sbr:7688983202)
+ DECLARE_EXTERNAL_RESOURCE(TEST_TOOL_HOST sbr:7717387014)
ENDIF()
diff --git a/build/platform/test_tool/host_os.ya.make.inc b/build/platform/test_tool/host_os.ya.make.inc
index 287fa1f69c..e2c3ebc4b5 100644
--- a/build/platform/test_tool/host_os.ya.make.inc
+++ b/build/platform/test_tool/host_os.ya.make.inc
@@ -1,12 +1,12 @@
IF (HOST_OS_DARWIN AND HOST_ARCH_X86_64)
- DECLARE_EXTERNAL_RESOURCE(TEST_TOOL_HOST sbr:7688921363)
+ DECLARE_EXTERNAL_RESOURCE(TEST_TOOL_HOST sbr:7717367660)
ELSEIF (HOST_OS_DARWIN AND HOST_ARCH_ARM64)
- DECLARE_EXTERNAL_RESOURCE(TEST_TOOL_HOST sbr:7688919549)
+ DECLARE_EXTERNAL_RESOURCE(TEST_TOOL_HOST sbr:7717367448)
ELSEIF (HOST_OS_LINUX AND HOST_ARCH_X86_64)
- DECLARE_EXTERNAL_RESOURCE(TEST_TOOL_HOST sbr:7688925574)
+ DECLARE_EXTERNAL_RESOURCE(TEST_TOOL_HOST sbr:7717368273)
ELSEIF (HOST_OS_LINUX AND HOST_ARCH_AARCH64)
- DECLARE_EXTERNAL_RESOURCE(TEST_TOOL_HOST sbr:7688917384)
+ DECLARE_EXTERNAL_RESOURCE(TEST_TOOL_HOST sbr:7717367154)
ELSEIF (HOST_OS_WINDOWS AND HOST_ARCH_X86_64)
- DECLARE_EXTERNAL_RESOURCE(TEST_TOOL_HOST sbr:7688923417)
+ DECLARE_EXTERNAL_RESOURCE(TEST_TOOL_HOST sbr:7717367994)
ENDIF()
diff --git a/build/scripts/compile_java.py b/build/scripts/compile_java.py
index a28d737195..995ce625db 100644
--- a/build/scripts/compile_java.py
+++ b/build/scripts/compile_java.py
@@ -88,6 +88,7 @@ def main():
[
opts.java_bin,
'-Didea.max.content.load.filesize=30720',
+ '-Djava.correct.class.type.by.place.resolve.scope=true',
'-jar',
opts.kotlin_compiler,
'-classpath',
diff --git a/build/sysincl/stl-to-nothing.yml b/build/sysincl/stl-to-nothing.yml
index 528ebdbc88..972f592404 100644
--- a/build/sysincl/stl-to-nothing.yml
+++ b/build/sysincl/stl-to-nothing.yml
@@ -145,3 +145,7 @@
- experimental/string_view: DO_NOT_INCLUDE_NON_STANDARD_EXPERIMENTAL_STRING_VIEW
- experimental/system_error: DO_NOT_INCLUDE_NON_STANDARD_EXPERIMENTAL_SYSTEM_ERROR
- experimental/tuple: DO_NOT_INCLUDE_NON_STANDARD_EXPERIMENTAL_TUPLE
+
+# These headers belong to libc++, yet certain contribs depend libc++ internal structure.
+- includes:
+ - __utility/swap.h
diff --git a/build/ymake.core.conf b/build/ymake.core.conf
index 3725d7b158..26e521b827 100644
--- a/build/ymake.core.conf
+++ b/build/ymake.core.conf
@@ -5884,3 +5884,21 @@ macro WITHOUT_VERSION() {
macro LINK_EXCLUDE_LIBRARIES(Libs...) {
SET_APPEND(_LINK_EXCLUDE_LIBRARIES_GLOBAL $Libs)
}
+
+### @usage: GENERATE_IMPLIB(Lib, Path, [SONAME Name])
+###
+### Generates a wrapper for external dynamic library using Implib.so and excludes the real library from linker command
+###
+### The wrapper loads the real library on the first call to any of its functions
+###
+### @example:
+###
+### PEERDIR(build/platform/cuda)
+###
+### GENERATE_IMPLIB(cuda $CUDA_TARGET_ROOT/lib64/stubs/libcuda.so SONAME libcuda.so.1)
+###
+macro GENERATE_IMPLIB(Lib, Path, SONAME="") {
+ .CMD=${tool:"contrib/tools/implib"} --target $HARDWARE_TYPE --outdir $BINDIR ${pre=--library-load-name :SONAME} $Path ${hide;output;nopath;suf=.init.c:Path} ${hide;output;nopath;suf=.tramp.S:Path}
+
+ LINK_EXCLUDE_LIBRARIES($Lib)
+}