aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordimdim11 <dimdim11@yandex-team.com>2025-04-14 23:28:02 +0300
committerdimdim11 <dimdim11@yandex-team.com>2025-04-14 23:41:30 +0300
commite211648efe14d84a52f72170cfa8628e3026cb35 (patch)
tree5cd317c6cfaad5d5279283a2264a412cda159fbe
parent87a85d90a3532eba45980e35b0a9a636e35c5dec (diff)
downloadydb-e211648efe14d84a52f72170cfa8628e3026cb35.tar.gz
Support codegen in extra targets
Support codegen in extra targets commit_hash:d2bd1f092234f614a86170ef2905acc8d07770e3
-rw-r--r--build/export_generators/ide-gradle/codegen.jinja63
-rw-r--r--build/export_generators/ide-gradle/codegen_common.jinja11
-rw-r--r--build/export_generators/ide-gradle/codegen_copy_file.jinja2
-rw-r--r--build/export_generators/ide-gradle/codegen_current_target.jinja8
-rw-r--r--build/export_generators/ide-gradle/codegen_depends.jinja41
-rw-r--r--build/export_generators/ide-gradle/codegen_move_file.jinja2
-rw-r--r--build/export_generators/ide-gradle/codegen_run_java_program.jinja6
-rw-r--r--build/export_generators/ide-gradle/codegen_run_program.jinja6
8 files changed, 74 insertions, 65 deletions
diff --git a/build/export_generators/ide-gradle/codegen.jinja b/build/export_generators/ide-gradle/codegen.jinja
index defcffc3d01..3950c9aa166 100644
--- a/build/export_generators/ide-gradle/codegen.jinja
+++ b/build/export_generators/ide-gradle/codegen.jinja
@@ -1,9 +1,54 @@
-{%- set copy_files = target.target_commands|selectattr("macro", "eq", "copy_file") -%}
-{%- set move_files = target.target_commands|selectattr("macro", "eq", "move_file") -%}
-
-{%- include "[generator]/codegen_run_program.jinja" -%}
-{%- include "[generator]/codegen_run_java_program.jinja" -%}
-{%- include "[generator]/codegen_copy_file.jinja" -%}
-{%- include "[generator]/codegen_move_file.jinja" -%}
-{%- include "[generator]/codegen_common.jinja" -%}
-{%- include "[generator]/codegen_depends.jinja" -%}
+{%- macro TopDepends(taskvar) -%}
+{%- if proto_template %}
+
+tasks.getByName("prepareMainProtos").dependsOn({{ taskvar }})
+{%- endif %}
+
+tasks.compileJava.configure {
+ dependsOn({{ taskvar }})
+}
+tasks.compileTestJava.configure {
+ dependsOn({{ taskvar }})
+}
+{%- if with_kotlin %}
+tasks.compileKotlin.configure {
+ dependsOn({{ taskvar }})
+}
+tasks.compileTestKotlin.configure {
+ dependsOn({{ taskvar }})
+}
+{% endif -%}
+{%- endmacro -%}
+
+{%- macro ObjDepends(obj) -%}
+{%- set taskvar = varprefix + obj['_object_index'] -%}
+{%- if obj['_parent_object_index'] -%}
+{%- set parent_taskvar = varprefix + obj['_parent_object_index'] %}
+
+tasks.getByName("{{ parent_taskvar }}").dependsOn({{ taskvar }})
+{%- else -%}
+{{ TopDepends(taskvar) }}
+{%- endif -%}
+{%- endmacro -%}
+
+{%- if target is defined -%}
+{%- set current_target = target -%}
+{%- set varprefix = "codegen" -%}
+{%- include "[generator]/codegen_current_target.jinja" -%}
+{%- endif -%}
+{%- if extra_targets|length -%}
+{%- for current_target in extra_targets -%}
+{%- set varprefix = "test" + loop.index0|tojson + "Codegen" -%}
+{%- include "[generator]/codegen_current_target.jinja" -%}
+{%- endfor -%}
+{%- endif -%}
+
+{%- if not proto_template %}
+
+tasks.getByName("sourcesJar").dependsOn(tasks.compileJava)
+tasks.getByName("sourcesJar").mustRunAfter(tasks.compileTestJava)
+{%- if with_kotlin %}
+tasks.getByName("sourcesJar").dependsOn(tasks.compileKotlin)
+tasks.getByName("sourcesJar").mustRunAfter(tasks.compileTestKotlin)
+{%- endif %}
+{%- endif -%}
diff --git a/build/export_generators/ide-gradle/codegen_common.jinja b/build/export_generators/ide-gradle/codegen_common.jinja
index eb60cffbe50..e69de29bb2d 100644
--- a/build/export_generators/ide-gradle/codegen_common.jinja
+++ b/build/export_generators/ide-gradle/codegen_common.jinja
@@ -1,11 +0,0 @@
-{%- if not proto_template and (target.runs|length or target.custom_runs|length or copy_files|length or move_files|length) %}
-
-tasks.getByName("sourcesJar").dependsOn(tasks.compileJava)
-{%- if with_kotlin %}
-tasks.getByName("sourcesJar").dependsOn(tasks.compileKotlin)
-{%- endif %}
-tasks.getByName("sourcesJar").mustRunAfter(tasks.compileTestJava)
-{%- if with_kotlin %}
-tasks.getByName("sourcesJar").mustRunAfter(tasks.compileTestKotlin)
-{%- endif -%}
-{%- endif -%}
diff --git a/build/export_generators/ide-gradle/codegen_copy_file.jinja b/build/export_generators/ide-gradle/codegen_copy_file.jinja
index 800c23658f4..2b054b7ce1f 100644
--- a/build/export_generators/ide-gradle/codegen_copy_file.jinja
+++ b/build/export_generators/ide-gradle/codegen_copy_file.jinja
@@ -9,7 +9,7 @@
{%- set dst_path = dst_split[0] -%}
{%- set dst_name = dst_split[1] %}
-val codegen{{ copy['_object_index'] }} = tasks.register<Copy>("codegen{{ copy['_object_index'] }}") {
+val {{ varprefix }}{{ copy['_object_index'] }} = tasks.register<Copy>("{{ varprefix }}{{ copy['_object_index'] }}") {
from({{ PatchRoots(src_path, copy['flags']|select("eq", "src_is_depend")|length) }}) {
include("{{ src_name }}")
}
diff --git a/build/export_generators/ide-gradle/codegen_current_target.jinja b/build/export_generators/ide-gradle/codegen_current_target.jinja
new file mode 100644
index 00000000000..24bdcdb460e
--- /dev/null
+++ b/build/export_generators/ide-gradle/codegen_current_target.jinja
@@ -0,0 +1,8 @@
+{%- set copy_files = current_target.target_commands|selectattr("macro", "eq", "copy_file") -%}
+{%- set move_files = current_target.target_commands|selectattr("macro", "eq", "move_file") -%}
+
+{%- include "[generator]/codegen_run_program.jinja" -%}
+{%- include "[generator]/codegen_run_java_program.jinja" -%}
+{%- include "[generator]/codegen_copy_file.jinja" -%}
+{%- include "[generator]/codegen_move_file.jinja" -%}
+{%- include "[generator]/codegen_depends.jinja" -%}
diff --git a/build/export_generators/ide-gradle/codegen_depends.jinja b/build/export_generators/ide-gradle/codegen_depends.jinja
index 8fc0313753a..5e798da71da 100644
--- a/build/export_generators/ide-gradle/codegen_depends.jinja
+++ b/build/export_generators/ide-gradle/codegen_depends.jinja
@@ -1,44 +1,11 @@
-{%- macro TopDepends(taskvar) -%}
-{%- if proto_template %}
-
-tasks.getByName("prepareMainProtos").dependsOn({{ taskvar }})
-{%- endif %}
-
-tasks.compileJava.configure {
- dependsOn({{ taskvar }})
-}
-tasks.compileTestJava.configure {
- dependsOn({{ taskvar }})
-}
-{%- if with_kotlin %}
-tasks.compileKotlin.configure {
- dependsOn({{ taskvar }})
-}
-tasks.compileTestKotlin.configure {
- dependsOn({{ taskvar }})
-}
-{% endif -%}
-{%- endmacro -%}
-
-{%- macro ObjDepends(obj) -%}
-{%- set taskvar = "codegen" + obj['_object_index'] -%}
-{%- if obj['_parent_object_index'] -%}
-{%- set parent_taskvar = "codegen" + obj['_parent_object_index'] %}
-
-tasks.getByName("{{ parent_taskvar }}").dependsOn({{ taskvar }})
-{%- else -%}
-{{ TopDepends(taskvar) }}
-{%- endif -%}
-{%- endmacro -%}
-
-{%- if target.custom_runs|length -%}
-{%- for custom_run in target.custom_runs -%}
+{%- if current_target.custom_runs|length -%}
+{%- for custom_run in current_target.custom_runs -%}
{{ ObjDepends(custom_run) }}
{%- endfor -%}
{%- endif -%}
-{%- if target.runs|length -%}
-{%- for run in target.runs -%}
+{%- if current_target.runs|length -%}
+{%- for run in current_target.runs -%}
{{ ObjDepends(run) }}
{%- endfor -%}
{%- endif -%}
diff --git a/build/export_generators/ide-gradle/codegen_move_file.jinja b/build/export_generators/ide-gradle/codegen_move_file.jinja
index 792b5df9c66..9103329c338 100644
--- a/build/export_generators/ide-gradle/codegen_move_file.jinja
+++ b/build/export_generators/ide-gradle/codegen_move_file.jinja
@@ -3,7 +3,7 @@
{%- set src = move.args[0] -%}
{%- set dst = move.args[1] %}
-val codegen{{ move['_object_index'] }} = tasks.register("codegen{{ move['_object_index'] }}") {
+val {{ varprefix }}{{ move['_object_index'] }} = tasks.register("{{ varprefix }}{{ move['_object_index'] }}") {
doLast {
file({{ PatchRoots(src, move['flags']|select("eq", "src_is_depend")|length) }}).renameTo(file({{ PatchRoots(dst) }}))
}
diff --git a/build/export_generators/ide-gradle/codegen_run_java_program.jinja b/build/export_generators/ide-gradle/codegen_run_java_program.jinja
index 5e82fb3bc11..e3604f85e62 100644
--- a/build/export_generators/ide-gradle/codegen_run_java_program.jinja
+++ b/build/export_generators/ide-gradle/codegen_run_java_program.jinja
@@ -1,7 +1,7 @@
-{%- if target.runs|length -%}
-{%- for run in target.runs %}
+{%- if current_target.runs|length -%}
+{%- for run in current_target.runs %}
-val codegen{{ run['_object_index'] }} = task<JavaExec>("codegen{{ run['_object_index'] }}") {
+val {{ varprefix }}{{ run['_object_index'] }} = task<JavaExec>("{{ varprefix }}{{ run['_object_index'] }}") {
group = "build"
description = "Code generation by run java program"
diff --git a/build/export_generators/ide-gradle/codegen_run_program.jinja b/build/export_generators/ide-gradle/codegen_run_program.jinja
index 8c5f8db5110..f064f636fce 100644
--- a/build/export_generators/ide-gradle/codegen_run_program.jinja
+++ b/build/export_generators/ide-gradle/codegen_run_program.jinja
@@ -1,7 +1,7 @@
-{%- if target.custom_runs|length -%}
-{%- for custom_run in target.custom_runs %}
+{%- if current_target.custom_runs|length -%}
+{%- for custom_run in current_target.custom_runs %}
-val codegen{{ custom_run['_object_index'] }} = task<Exec>("codegen{{ custom_run['_object_index'] }}") {
+val {{ varprefix }}{{ custom_run['_object_index'] }} = task<Exec>("{{ varprefix }}{{ custom_run['_object_index'] }}") {
group = "build"
description = "Code generation by run custom program"