diff options
author | dimdim11 <dimdim11@yandex-team.com> | 2025-02-05 21:27:20 +0300 |
---|---|---|
committer | dimdim11 <dimdim11@yandex-team.com> | 2025-02-05 21:42:39 +0300 |
commit | 7cb114b7cc680c6ec0055e7530b1aa48afd4b94e (patch) | |
tree | 74c6a78ea8edd8475be20bc12badfd7aeefbe3e5 | |
parent | 53c94da1fd856e0a2a445bb594b8da9ee02eaacb (diff) | |
download | ydb-7cb114b7cc680c6ec0055e7530b1aa48afd4b94e.tar.gz |
Support kotlin proto without grpc in ya ide gradle, update Kotlin plugin, sources -> source
commit_hash:dcaf3228b9c1433141dfad4d88533188dbcad04b
-rw-r--r-- | build/conf/java.conf | 2 | ||||
-rw-r--r-- | build/conf/proto.conf | 3 | ||||
-rw-r--r-- | build/export_generators/gradle/generator.toml | 25 | ||||
-rw-r--r-- | build/export_generators/ide-gradle/generator.toml | 1 | ||||
-rw-r--r-- | build/export_generators/ide-gradle/proto_plugins.jinja | 5 | ||||
-rw-r--r-- | build/export_generators/ide-gradle/proto_prepare.jinja | 7 | ||||
-rw-r--r-- | build/export_generators/ide-gradle/proto_source_sets.jinja | 12 | ||||
-rw-r--r-- | build/export_generators/ide-gradle/proto_vars.jinja | 2 | ||||
-rw-r--r-- | build/export_generators/ide-gradle/protobuf.jinja | 13 |
9 files changed, 60 insertions, 10 deletions
diff --git a/build/conf/java.conf b/build/conf/java.conf index bfd91651be..913a5f9022 100644 --- a/build/conf/java.conf +++ b/build/conf/java.conf @@ -357,6 +357,7 @@ module EXTERNAL_JAVA_LIBRARY: _BASE_UNIT { PEERDIR+=$JDK_RESOURCE_PEERDIR $EXTERNAL_JAVA_EXTRA_PEERDIR when ($KOTLIN_PROTO == "yes") { PEERDIR+=build/platform/java/kotlin contrib/java/org/jetbrains/kotlin/kotlin-stdlib-jdk8/${_KOTLIN_VERSION} + _WITH_KOTLIN_PROTO_SEM=$_DO_WITH_KOTLIN_PROTO_SEM } when ($MAVEN_EXPORT == "yes") { @@ -2017,6 +2018,7 @@ DETEKT_VERSION=1.23.7 _KOTLIN_SEM= \ ${_WITH_KOTLIN_SEM} \ ${_KOTLIN_VERSION_SEM} \ + ${_WITH_KOTLIN_PROTO_SEM} \ ${_WITH_KOTLIN_GRPC_SEM} \ ${_WITH_KOTLINC_PLUGIN_ALLOPEN_SEM} \ ${_WITH_KOTLINC_PLUGIN_LOMBOK_SEM} \ diff --git a/build/conf/proto.conf b/build/conf/proto.conf index 2ac19f9446..356293d9d9 100644 --- a/build/conf/proto.conf +++ b/build/conf/proto.conf @@ -674,6 +674,8 @@ module _CPP_PROTO : LIBRARY { } } +_WITH_KOTLIN_PROTO_SEM= +_DO_WITH_KOTLIN_PROTO_SEM=&& with_kotlin && kotlin_version ${_KOTLIN_VERSION} && proto_kotlin module _JAVA_PROTO: EXTERNAL_JAVA_LIBRARY { .EXTS=.jsrc .ALLOWED=GRPC @@ -685,6 +687,7 @@ module _JAVA_PROTO: EXTERNAL_JAVA_LIBRARY { when ($KOTLIN_PROTO == "yes") { KOTLIN_PROTO_PEERS=contrib/java/com/google/protobuf/protobuf-kotlin/${JAVA_PROTO_RUNTIME_VERSION} KOTLIN_PROTO_FLAGS=--kotlin_out=$ARCADIA_BUILD_ROOT/java_out + _WITH_KOTLIN_PROTO_SEM=$_DO_WITH_KOTLIN_PROTO_SEM } when ($GRADLE_EXPORT_PUBLISHING == "yes") { _GRADLE_EXPORT_PUBLISHING_SEM=$_DO_GRADLE_EXPORT_PUBLISHING_SEM diff --git a/build/export_generators/gradle/generator.toml b/build/export_generators/gradle/generator.toml index f447c1ed6d..4c2b464c18 100644 --- a/build/export_generators/gradle/generator.toml +++ b/build/export_generators/gradle/generator.toml @@ -25,6 +25,7 @@ add_vcs_info_to_mf="bool" junit4_test="flag" junit5_test="flag" app_main_class="str" +jar_source_set="list" enable_preview="flag" use_annotation_processor="list" use_errorprone="flag" @@ -43,6 +44,9 @@ proto_common_version="str" proto_grpc="flag" proto_grpc_version="str" +proto_kotlin="flag" +proto_kotlin_grpc="flag" +proto_kotlin_grpc_version="str" kotlin_version="str" with_kotlin="flag" @@ -51,6 +55,27 @@ with_kotlinc_plugin_lombok="set" with_kotlinc_plugin_noarg="set" with_kotlinc_plugin_serialization="set" +runs="list" +runs-args="list" +runs-classpath="list" +runs-cwd="str" +runs-in="list" +runs-in_dir="list" +runs-in_dirs_inputs="list" +runs-in_noparse="list" +runs-out="list" +runs-out_dir="list" +runs-tool="list" + +custom_runs="list" +custom_runs-depends="list" +custom_runs-env="list" +custom_runs-command="list" +custom_runs-outputs="list" +custom_runs-cwd="str" + +javac-flags="list" + [attrs.root] [attrs.dir] diff --git a/build/export_generators/ide-gradle/generator.toml b/build/export_generators/ide-gradle/generator.toml index cbb34c45e4..6e7d747633 100644 --- a/build/export_generators/ide-gradle/generator.toml +++ b/build/export_generators/ide-gradle/generator.toml @@ -47,6 +47,7 @@ proto_common_version="str" proto_grpc="flag" proto_grpc_version="str" +proto_kotlin="flag" proto_kotlin_grpc="flag" proto_kotlin_grpc_version="str" diff --git a/build/export_generators/ide-gradle/proto_plugins.jinja b/build/export_generators/ide-gradle/proto_plugins.jinja index 655614672d..28b9910492 100644 --- a/build/export_generators/ide-gradle/proto_plugins.jinja +++ b/build/export_generators/ide-gradle/proto_plugins.jinja @@ -1,11 +1,14 @@ {#- empty string #} plugins { id("java-library") - id("com.google.protobuf") version "0.8.19" + id("com.google.protobuf") version "0.9.4" {%- if publish %} `maven-publish` `signing` {%- endif %} +{%- if with_kotlin and kotlin_version %} + kotlin("jvm") version "{{ kotlin_version }}" +{%- endif %} } {%- if jdk_version %} diff --git a/build/export_generators/ide-gradle/proto_prepare.jinja b/build/export_generators/ide-gradle/proto_prepare.jinja index 2ac84b5014..cf6fc96adf 100644 --- a/build/export_generators/ide-gradle/proto_prepare.jinja +++ b/build/export_generators/ide-gradle/proto_prepare.jinja @@ -1,4 +1,5 @@ {#- empty string #} +{%- if target.proto_files|length %} val prepareMainProtos = tasks.register<Copy>("prepareMainProtos") { from("$project_root") { {#- list of all current project proto files -#} @@ -8,6 +9,7 @@ val prepareMainProtos = tasks.register<Copy>("prepareMainProtos") { } into(mainProtosDir) } +{%- endif %} {% if libraries|length -%} val extractMainLibrariesProtos = tasks.register<Copy>("extractMainLibrariesProtos") { @@ -23,10 +25,15 @@ val extractMainLibrariesProtos = tasks.register<Copy>("extractMainLibrariesProto {% endif -%} afterEvaluate { +{%- if target.proto_files|length %} tasks.getByName("extractProto").dependsOn(prepareMainProtos) +{%- endif %} {%- if libraries|length %} tasks.getByName("extractProto").dependsOn(extractMainLibrariesProtos) {%- endif %} } tasks.getByName("sourcesJar").dependsOn("generateProto") +{%- if with_kotlin %} +tasks.getByName("compileKotlin").dependsOn("generateProto") +{%- endif %} diff --git a/build/export_generators/ide-gradle/proto_source_sets.jinja b/build/export_generators/ide-gradle/proto_source_sets.jinja index fffe7301a6..7c7814d940 100644 --- a/build/export_generators/ide-gradle/proto_source_sets.jinja +++ b/build/export_generators/ide-gradle/proto_source_sets.jinja @@ -1,15 +1,15 @@ {#- empty string #} sourceSets { main { - java.srcDir("$buildDir/generated/sources/proto/main/java") + java.srcDir("$buildDir/generated/source/proto/main/java") {%- if target.proto_grpc %} - java.srcDir("$buildDir/generated/sources/proto/main/grpc") + java.srcDir("$buildDir/generated/source/proto/main/grpc") {%- endif %} } test { - java.srcDir("$buildDir/generated/sources/proto/test/java") + java.srcDir("$buildDir/generated/source/proto/test/java") {%- if target.proto_grpc %} - java.srcDir("$buildDir/generated/sources/proto/test/grpc") + java.srcDir("$buildDir/generated/source/proto/test/grpc") {%- endif %} } } @@ -20,3 +20,7 @@ sourceSets { sourceSets.main.java.srcDirs += "{{ srcdir_glob[0] }}" {% endfor -%} {%- endif %} + +tasks.withType<Jar>() { + duplicatesStrategy = DuplicatesStrategy.INCLUDE +} diff --git a/build/export_generators/ide-gradle/proto_vars.jinja b/build/export_generators/ide-gradle/proto_vars.jinja index 761c74b070..3ef6275d87 100644 --- a/build/export_generators/ide-gradle/proto_vars.jinja +++ b/build/export_generators/ide-gradle/proto_vars.jinja @@ -1,4 +1,6 @@ {%- set publish = target.publish -%} {%- set libraries = target.consumer|selectattr('type', 'eq', 'library') -%} +{%- set with_kotlin = target.with_kotlin -%} +{%- set kotlin_version = target.kotlin_version -%} {%- include "[generator]/jdk.jinja" -%} diff --git a/build/export_generators/ide-gradle/protobuf.jinja b/build/export_generators/ide-gradle/protobuf.jinja index 6803206957..d2935b18b4 100644 --- a/build/export_generators/ide-gradle/protobuf.jinja +++ b/build/export_generators/ide-gradle/protobuf.jinja @@ -1,7 +1,5 @@ {#- empty string #} protobuf { - generatedFilesBaseDir = "$buildDir/generated/sources/proto" - protoc { // Download from repositories artifact = "com.google.protobuf:protoc:{%- if target.proto_compiler_version -%}{{ target.proto_compiler_version }}{%- else -%}3.22.5{%- endif -%}" @@ -18,16 +16,21 @@ protobuf { } {%- endif %} } +{%- endif %} + +{%- if target.proto_kotlin or target.proto_grpc %} generateProtoTasks { all().forEach { +{%- if target.proto_grpc %} it.plugins { id("grpc") -{%- if target.proto_kotlin_grpc %} +{%- if target.proto_kotlin_grpc %} id("grpckt") -{%- endif %} +{%- endif %} } -{%- if target.proto_kotlin_grpc %} +{%- endif %} +{%- if target.proto_kotlin or target.proto_kotlin_grpc %} it.builtins { create("kotlin") } |