aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordimdim11 <dimdim11@yandex-team.com>2024-11-15 00:07:26 +0300
committerdimdim11 <dimdim11@yandex-team.com>2024-11-15 00:16:57 +0300
commitea4efd148c04ba3a8682fea3c59b58baf172548e (patch)
treeeeb3b3eed70e85226e6ec1f8f40ac6860f323e89
parent7f616bd2969d2a94edb34570d52813e98a1118fc (diff)
downloadydb-ea4efd148c04ba3a8682fea3c59b58baf172548e.tar.gz
Upgrades for AP in templates, some fixes
Upgrades for AP in templates, some fixes commit_hash:63f7bbc30e5df3c590e65c9b54346158193efd45
-rw-r--r--build/export_generators/gradle/generator.toml6
-rw-r--r--build/export_generators/ide-gradle/build.gradle.kts.jinja69
-rw-r--r--build/export_generators/ide-gradle/build.gradle.kts.proto.jinja6
-rw-r--r--build/export_generators/ide-gradle/generator.toml6
-rw-r--r--build/export_generators/ide-gradle/settings.gradle.kts.jinja9
5 files changed, 65 insertions, 31 deletions
diff --git a/build/export_generators/gradle/generator.toml b/build/export_generators/gradle/generator.toml
index 64f1d2e192..bccc600a73 100644
--- a/build/export_generators/gradle/generator.toml
+++ b/build/export_generators/gradle/generator.toml
@@ -17,14 +17,16 @@ template="build.gradle.kts.jinja"
template={ path="build.gradle.kts.proto.jinja", dest="build.gradle.kts" }
[attrs.target]
+# DEPRECATED
+annotation_processors="list"
+
required_jdk="str"
add_vcs_info_to_mf="bool"
junit4_test="flag"
junit5_test="flag"
app_main_class="str"
enable_preview="flag"
-annotation_processors="list"
-use_annotation_processor="str"
+use_annotation_processor="list"
publish="flag"
publish_group="str"
diff --git a/build/export_generators/ide-gradle/build.gradle.kts.jinja b/build/export_generators/ide-gradle/build.gradle.kts.jinja
index 5900458fe8..8299b4db6f 100644
--- a/build/export_generators/ide-gradle/build.gradle.kts.jinja
+++ b/build/export_generators/ide-gradle/build.gradle.kts.jinja
@@ -3,13 +3,27 @@ buildDir = file(baseBuildDir + project.path.replaceFirst(":", "/").replace(":",
subprojects {
buildDir = file(baseBuildDir + project.path.replaceFirst(":", "/").replace(":", "."))
}
-
-{% set mainClass = target.app_main_class -%}
+{%- set mainClass = target.app_main_class -%}
{%- set publish = target.publish -%}
{%- set with_kotlin = target.with_kotlin -%}
{%- set kotlin_version = target.kotlin_version -%}
{%- set hasJunit5Test = extra_targets|selectattr('junit5_test') -%}
{%- set errorprone_plugin_version = "4.0.0" -%}
+
+{%- 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 -%}
+{#- Use JDK 23 instead 22 -#}
+{%- if target.required_jdk == '22' -%}
+{%- set required_jdk = '23' -%}
+{%- else -%}
+{%- set required_jdk = target.required_jdk -%}
+{%- endif -%}
+{%- endif %}
+
plugins {
{#- some plugins configuration -#}
{%- for library in target.consumer if library.classpath -%}
@@ -20,8 +34,10 @@ plugins {
{%- endif -%}
{%- endfor -%}
+
{#- lombok configuration -#}
-{%- if "lombok.launch.AnnotationProcessorHider$AnnotationProcessor" in target.annotation_processors %}
+{#- TODO remove annotation_processors -#}
+{%- if ("lombok.launch.AnnotationProcessorHider$AnnotationProcessor" in target.annotation_processors) or (target.use_annotation_processor|length and target.use_annotation_processor|select('startsWith', 'contrib/java/org/projectlombok/lombok')|length) %}
id("io.freefair.lombok") version "8.6"
{%- endif -%}
{%- if mainClass %}
@@ -49,11 +65,13 @@ plugins {
{% endif -%}
{%- endif %}
}
+
{#- language level -#}
-{%- if target.required_jdk is defined and target.required_jdk|length %}
+{%- if has_required_jdk %}
+
java {
toolchain {
- languageVersion = JavaLanguageVersion.of("{{ target.required_jdk }}")
+ languageVersion = JavaLanguageVersion.of("{{ required_jdk }}")
}
}
{% endif -%}
@@ -118,24 +136,24 @@ noArg {
{%- if with_kotlin %}
kotlin {
- jvmToolchain({%- if target.required_jdk -%}{{ target.required_jdk }}{%- else -%}17{%- endif -%})
+ jvmToolchain({{ required_jdk }})
}
{% endif -%}
+
{%- if publish %}
group = "{{ target.publish_group }}"
version = {% if target.publish_version and target.publish_version != "no" -%}"{{ target.publish_version }}"{%- else -%}project.properties["version"]!!{%- endif %}
-{% endif %}
+{% endif -%}
+
+{%- if target.enable_preview %}
-{% if target.enable_preview %}
tasks.withType<JavaCompile> {
options.compilerArgs.add("--enable-preview")
-
options.compilerArgs.add("-Xlint:preview")
- options.release.set({%- if target.required_jdk -%}{{ target.required_jdk }}{%- else -%}17{%- endif -%})
+ options.release.set({{ required_jdk }})
}
-
tasks.withType<JavaExec> {
jvmArgs?.add("--enable-preview")
}
@@ -146,20 +164,21 @@ tasks.withType<Test> {
tasks.withType<Javadoc> {
val javadocOptions = options as CoreJavadocOptions
- javadocOptions.addStringOption("source", "{%- if target.required_jdk -%}{{ target.required_jdk }}{%- else -%}17{%- endif -%}")
+ javadocOptions.addStringOption("source", "{{ required_jdk }}")
javadocOptions.addBooleanOption("-enable-preview", true)
}
-{% endif %}
+{% endif -%}
{#- javac flags -#}
-{%- if (target.javac.flags is defined) and (target.javac.flags|length) %}
+{%- if target.javac.flags|length -%}
+{%- set javac_flags = target.javac.flags|reject('startsWith', '-Xep:') -%}
+{%- if javac_flags|length %}
+
tasks.withType<JavaCompile> {
-{%- for javac_flag in target.javac.flags %}
-{%- if '-Xep:' in javac_flag %}
-{% else %}
+{%- for javac_flag in javac_flags %}
options.compilerArgs.add("{{ javac_flag }}")
+{%- endfor -%}
{%- endif %}
-{%- endfor %}
}
{%- endif %}
@@ -288,6 +307,10 @@ dependencies {
{%- endif -%}
{%- endfor -%}
+{%- for annotation_processor in target.use_annotation_processor %}
+ annotationProcessor(files("$project_root/{{ annotation_processor}}"))
+{%- endfor -%}
+
{%- for extra_target in extra_targets -%}
{%- for library in extra_target.consumer if library.classpath -%}
{%- if library.prebuilt and library.jar and (library.type != "contrib" or build_contribs) %}
@@ -312,14 +335,17 @@ dependencies {
{%- endif -%}
{%- endif -%}
{%- endfor -%}
+{%- for annotation_processor in extra_target.use_annotation_processor %}
+ testAnnotationProcessor(files("$project_root/{{ annotation_processor}}"))
+{%- endfor -%}
{%- endfor %}
}
-{% if hasJunit5Test -%}
+{%- if hasJunit5Test %}
+
tasks.named<Test>("test") {
useJUnitPlatform()
}
-
{% endif -%}
{#- run_java_program -#}
@@ -394,7 +420,8 @@ tasks {
{% if publish -%}
{% include 'publish.gradle.kts' ignore missing -%}
{% endif -%}
-{# To disable redundant javadoc (it may fail the build) #}
+{#- To disable redundant javadoc (it may fail the build) #}
+
tasks.withType<Javadoc>().configureEach {
isEnabled = false
}
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 7e0e0c1990..f1da347c15 100644
--- a/build/export_generators/ide-gradle/build.gradle.kts.proto.jinja
+++ b/build/export_generators/ide-gradle/build.gradle.kts.proto.jinja
@@ -94,11 +94,11 @@ dependencies {
{%- endif -%}
{%- endfor %}
-{% if target.proto_namespace -%}
+{%- if target.proto_namespace %}
protobuf(files(File(buildProtoDir, "{{ target.proto_namespace }}")))
-{% else -%}
+{%- else %}
protobuf(files(buildProtoDir))
-{% endif -%}
+{%- endif %}
}
protobuf {
diff --git a/build/export_generators/ide-gradle/generator.toml b/build/export_generators/ide-gradle/generator.toml
index 764441cbbb..4bd8f5947f 100644
--- a/build/export_generators/ide-gradle/generator.toml
+++ b/build/export_generators/ide-gradle/generator.toml
@@ -20,6 +20,9 @@ template="build.gradle.kts.jinja"
template={ path="build.gradle.kts.proto.jinja", dest="build.gradle.kts" }
[attrs.target]
+# DEPRECATED
+annotation_processors="list"
+
required_jdk="str"
add_vcs_info_to_mf="bool"
junit4_test="flag"
@@ -27,8 +30,7 @@ junit5_test="flag"
app_main_class="str"
jar_source_set="list"
enable_preview="flag"
-annotation_processors="list"
-use_annotation_processor="str"
+use_annotation_processor="list"
publish="flag"
publish_group="str"
diff --git a/build/export_generators/ide-gradle/settings.gradle.kts.jinja b/build/export_generators/ide-gradle/settings.gradle.kts.jinja
index a71aefe4f4..ca32319453 100644
--- a/build/export_generators/ide-gradle/settings.gradle.kts.jinja
+++ b/build/export_generators/ide-gradle/settings.gradle.kts.jinja
@@ -1,9 +1,12 @@
rootProject.name = "{{ project_name }}"
-{% for subdir in subdirs -%}
-{%- set classname = subdir | replace("/", ":") -%}
+{% if subdirs|length > 1 -%}
+{#- Apply list if not only root in it -#}
+{%- for subdir in subdirs -%}
+{%- set classname = subdir | replace("/", ":") -%}
include(":{{ classname }}")
project(":{{ classname }}").projectDir = file("{{ arcadia_root }}/{{ subdir }}")
-{% endfor -%}
+{% endfor -%}
+{%- endif -%}
{%- include "[generator]/debug.jinja" ignore missing -%}