diff options
author | dimdim11 <dimdim11@yandex-team.com> | 2025-04-14 23:28:02 +0300 |
---|---|---|
committer | dimdim11 <dimdim11@yandex-team.com> | 2025-04-14 23:41:30 +0300 |
commit | e211648efe14d84a52f72170cfa8628e3026cb35 (patch) | |
tree | 5cd317c6cfaad5d5279283a2264a412cda159fbe | |
parent | 87a85d90a3532eba45980e35b0a9a636e35c5dec (diff) | |
download | ydb-e211648efe14d84a52f72170cfa8628e3026cb35.tar.gz |
Support codegen in extra targets
Support codegen in extra targets
commit_hash:d2bd1f092234f614a86170ef2905acc8d07770e3
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" |