aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordimdim11 <dimdim11@yandex-team.com>2023-12-04 21:02:51 +0300
committerdimdim11 <dimdim11@yandex-team.com>2023-12-05 07:09:42 +0300
commit281e071434110042abd52486e6a6fabc0c2c8ab3 (patch)
treebc4ab165e43d2d954ba5fc1893383aa29b9aaa2a
parentd0fc1d76f9fe8f63828c1e73aa9994acce244555 (diff)
downloadydb-281e071434110042abd52486e6a6fabc0c2c8ab3.tar.gz
Add sematic attributes, refactor java.conf, scripts for manual check yexport output for yt, ydb, catboost
-rw-r--r--build/conf/java.conf41
-rw-r--r--build/conf/proto.conf1
-rw-r--r--build/export_generators/gradle/build.gradle.kts.proto.jinja12
-rw-r--r--build/export_generators/gradle/generator.toml19
-rw-r--r--build/export_generators/ide-gradle/build.gradle.kts.proto.jinja12
-rw-r--r--build/export_generators/ide-gradle/generator.toml19
6 files changed, 70 insertions, 34 deletions
diff --git a/build/conf/java.conf b/build/conf/java.conf
index be4cf9547f..6a57b33eb9 100644
--- a/build/conf/java.conf
+++ b/build/conf/java.conf
@@ -288,7 +288,7 @@ module EXTERNAL_JAVA_LIBRARY: _BASE_UNIT {
otherwise {
MAVEN_EXPORT_CMD= && $MAVEN_EXPORT_GEN_DEPLST && $MAVEN_EXPORT_GEN_POM
}
- MAVEN_EXPORT_COORDS_GLOBAL=$MAVEN_EXPORT_GOUP_ID:${MODULE_PREFIX}${REALPRJNAME}:${MAVEN_EXPORT_VERSION}:
+ MAVEN_EXPORT_COORDS_GLOBAL=$MAVEN_EXPORT_GROUP_ID:${MODULE_PREFIX}${REALPRJNAME}:${MAVEN_EXPORT_VERSION}:
}
PEERDIR_TAGS=JAVA_PROTO JAVA_FBS JAVA_IDL PACKAGE_UNION
@@ -859,8 +859,8 @@ GRADLE_EXPORT_PUBLISHING=no
_GRADLE_EXPORT_PUBLISHING_SEM=
PUBLISH_MAVEN_VERSION=no
_DO_GRADLE_EXPORT_PUBLISHING_SEM= \
- && publish True \
- && publish_group $MAVEN_EXPORT_GOUP_ID \
+ && publish \
+ && publish_group $MAVEN_EXPORT_GROUP_ID \
&& publish_version $PUBLISH_MAVEN_VERSION
BUILD_JAR_SEM= \
@@ -876,19 +876,10 @@ BUILD_JAR_SEM= \
$_GRADLE_EXPORT_PUBLISHING_SEM \
$SEM_JAR_SOURCE_SET
-### _EXPORT_GRADLE_TARGET_ATTR(NAME, VALUE...)
-###
-### Add target attribute `NAME` for .SEM if `VALUE` is non-empty
-### ` && $Name $Value
-macro _EXPORT_GRADLE_TARGET_ATTR(NAME, VALUE...) {
- .SEM=${pre= && $NAME :VALUE}
-}
-
BUILD_PROTO_JAR_SEM= \
${hide:target} ${hide:AUTO_INPUT} \
jar_proto $MODDIR $REALPRJNAME \
- $_EXPORT_GRADLE_TARGET_ATTR(proto_namespace $PROTO_NAMESPACE) \
- $_EXPORT_GRADLE_TARGET_ATTR(proto_grpc ${ext=yes:_GRPC_ENABLED}) \
+ $_JAVA_PROTO_SEM \
&& consumer_classpath $EXPORT_GRADLE_CLASSPATH \
&& consumer.classpath $EXPORT_GRADLE_CLASSPATH \
&& consumer.jar ${MODDIR}/${REALPRJNAME}.jar \
@@ -977,7 +968,7 @@ module JAR_LIBRARY: _COMPILABLE_JAR_BASE {
otherwise {
MAVEN_EXPORT_CMD= && $MAVEN_EXPORT_GEN_DEPLST && $MAVEN_EXPORT_GEN_POM
}
- MAVEN_EXPORT_COORDS_GLOBAL=$MAVEN_EXPORT_GOUP_ID:${MODULE_PREFIX}${REALPRJNAME}:${MAVEN_EXPORT_VERSION}:
+ MAVEN_EXPORT_COORDS_GLOBAL=$MAVEN_EXPORT_GROUP_ID:${MODULE_PREFIX}${REALPRJNAME}:${MAVEN_EXPORT_VERSION}:
}
when ($SOURCES_JAR == "yes") {
@@ -1645,14 +1636,14 @@ when ($SAVE_JAVAC_GENERATED_SRCS) {
# tag:java-specific
# TODO: MAVEN_GROUP_ID_VALUE is only used by jbuild remove it after YMAKE-45 and YMAKE-46
MAVEN_GROUP_ID_VALUE=
-MAVEN_EXPORT_GOUP_ID=ru.yandex
+MAVEN_EXPORT_GROUP_ID=ru.yandex
### @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, VERSION="no") {
SET(MAVEN_GROUP_ID_VALUE $Arg)
- SET(MAVEN_EXPORT_GOUP_ID $Arg)
+ SET(MAVEN_EXPORT_GROUP_ID $Arg)
SET(PUBLISH_MAVEN_VERSION $VERSION)
}
@@ -1869,6 +1860,24 @@ _KOTLIN_SEM= \
&& with_kotlinc_plugin_noarg ${WITH_KOTLINC_PLUGIN_NOARG} \
&& with_kotlinc_plugin_serialization ${WITH_KOTLINC_PLUGIN_SERIALIZATION}
+
+_JAVA_PROTO_GRPC_SEM=
+when ($_GRPC_ENABLED == "yes") {
+ _JAVA_PROTO_GRPC_SEM= && proto_grpc && proto_grpc_version ${JAVA_GRPC_VERSION}
+}
+
+_JAVA_PROTO_NAMESPACE_SEM=
+when ($PROTO_NAMESPACE != "") {
+ _JAVA_PROTO_NAMESPACE_SEM= && proto_namespace $PROTO_NAMESPACE
+}
+
+_JAVA_PROTO_SEM= \
+ ${_JAVA_PROTO_NAMESPACE_SEM} \
+ && proto_compiler_version ${JAVA_PROTO_COMPILER_VERSION} \
+ && proto_runtime_version ${JAVA_PROTO_RUNTIME_VERSION} \
+ && proto_common_version ${JAVA_PROTO_COMMON_VERSION} \
+ ${_JAVA_PROTO_GRPC_SEM}
+
# tag:java-specific
DIRECT_DEPS_ONLY_VALUE=
### @usage: DIRECT_DEPS_ONLY
diff --git a/build/conf/proto.conf b/build/conf/proto.conf
index 82506d1eb3..d1863c8f71 100644
--- a/build/conf/proto.conf
+++ b/build/conf/proto.conf
@@ -446,6 +446,7 @@ macro USE_JAVALITE() {
}
# tag:proto tag:java-specific
+JAVA_PROTO_COMPILER_VERSION = 3.22.5
JAVA_PROTO_RUNTIME_VERSION = 3.22.5
JAVA_PROTO_COMMON_VERSION = 1.12.0
JAVA_GRPC_VERSION = 1.43.2
diff --git a/build/export_generators/gradle/build.gradle.kts.proto.jinja b/build/export_generators/gradle/build.gradle.kts.proto.jinja
index b935c5953b..c12ab0d4f3 100644
--- a/build/export_generators/gradle/build.gradle.kts.proto.jinja
+++ b/build/export_generators/gradle/build.gradle.kts.proto.jinja
@@ -40,9 +40,15 @@ dependencies {
protobuf {
protoc {
// Download from repositories
- artifact = "com.google.protobuf:protoc:3.22.5"
+ artifact = "com.google.protobuf:protoc:
+{%- if targets[0].proto_compiler_version is defined -%}
+{{ targets[0].proto_compiler_version }}
+{%- else -%}
+3.22.5
+{%- endif -%}
+"
}
-{% if targets[0].proto_grpc is defined -%}
+{% if targets[0].proto_grpc is defined -%}
plugins {
id("grpc") {
artifact = "io.grpc:protoc-gen-grpc-java:1.45.0"
@@ -55,7 +61,7 @@ protobuf {
}
}
}
-{% endif -%}
+{%- endif %}
}
val prepareProto = tasks.register<Copy>("prepareProto") {
diff --git a/build/export_generators/gradle/generator.toml b/build/export_generators/gradle/generator.toml
index 6a640d81e5..1083c6ce62 100644
--- a/build/export_generators/gradle/generator.toml
+++ b/build/export_generators/gradle/generator.toml
@@ -15,21 +15,28 @@ template="build.gradle.kts.jinja"
template={ path="build.gradle.kts.proto.jinja", dest="build.gradle.kts" }
[attrs.target]
-proto_files="list"
-proto_grpc="flag"
-proto_namespace="str"
required_jdk="str"
add_vcs_info_to_mf="bool"
junit4_test="flag"
junit5_test="flag"
app_main_class="str"
-publish="flag"
-publish_group="str"
-publish_version="str"
peers_closure="list"
peers_closure_coords="list"
excludes_rules="list"
+publish="flag"
+publish_group="str"
+publish_version="str"
+
+proto_files="list"
+proto_namespace="str"
+proto_compiler_version="str"
+proto_runtime_version="str"
+proto_common_version="str"
+
+proto_grpc="flag"
+proto_grpc_version="str"
+
kotlin_version="str"
with_kotlin="bool"
with_kotlinc_plugin_allopen="bool"
diff --git a/build/export_generators/ide-gradle/build.gradle.kts.proto.jinja b/build/export_generators/ide-gradle/build.gradle.kts.proto.jinja
index b935c5953b..c12ab0d4f3 100644
--- a/build/export_generators/ide-gradle/build.gradle.kts.proto.jinja
+++ b/build/export_generators/ide-gradle/build.gradle.kts.proto.jinja
@@ -40,9 +40,15 @@ dependencies {
protobuf {
protoc {
// Download from repositories
- artifact = "com.google.protobuf:protoc:3.22.5"
+ artifact = "com.google.protobuf:protoc:
+{%- if targets[0].proto_compiler_version is defined -%}
+{{ targets[0].proto_compiler_version }}
+{%- else -%}
+3.22.5
+{%- endif -%}
+"
}
-{% if targets[0].proto_grpc is defined -%}
+{% if targets[0].proto_grpc is defined -%}
plugins {
id("grpc") {
artifact = "io.grpc:protoc-gen-grpc-java:1.45.0"
@@ -55,7 +61,7 @@ protobuf {
}
}
}
-{% endif -%}
+{%- endif %}
}
val prepareProto = tasks.register<Copy>("prepareProto") {
diff --git a/build/export_generators/ide-gradle/generator.toml b/build/export_generators/ide-gradle/generator.toml
index 9b88d62d4d..d28811b55a 100644
--- a/build/export_generators/ide-gradle/generator.toml
+++ b/build/export_generators/ide-gradle/generator.toml
@@ -14,22 +14,29 @@ template="build.gradle.kts.jinja"
template={ path="build.gradle.kts.proto.jinja", dest="build.gradle.kts" }
[attrs.target]
-proto_files="list"
-proto_grpc="flag"
-proto_namespace="str"
required_jdk="str"
add_vcs_info_to_mf="bool"
junit4_test="flag"
junit5_test="flag"
app_main_class="str"
-publish="flag"
-publish_group="str"
-publish_version="str"
peers_closure="list"
peers_closure_coords="list"
excludes_rules="list"
jar_source_set="list"
+publish="flag"
+publish_group="str"
+publish_version="str"
+
+proto_files="list"
+proto_namespace="str"
+proto_compiler_version="str"
+proto_runtime_version="str"
+proto_common_version="str"
+
+proto_grpc="flag"
+proto_grpc_version="str"
+
kotlin_version="str"
with_kotlin="bool"
with_kotlinc_plugin_allopen="bool"