diff options
author | dimdim11 <[email protected]> | 2025-04-02 20:25:26 +0300 |
---|---|---|
committer | dimdim11 <[email protected]> | 2025-04-02 20:37:36 +0300 |
commit | 66b85e2f81db12f8a7086e50bf40b19303b4622d (patch) | |
tree | 1210ce3e875f2c39078cc3b7037847ba5a2122ea | |
parent | 0f46543ac7870f75b40ddc611ab8b9e037c212e7 (diff) |
Fix proto templates
Fix proto templates
commit_hash:5551a84994438c39768a5e7a13d4bbe688b64b2e
6 files changed, 30 insertions, 15 deletions
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 aa97fb0baa1..95dfa0cca7f 100644 --- a/build/export_generators/ide-gradle/build.gradle.kts.proto.jinja +++ b/build/export_generators/ide-gradle/build.gradle.kts.proto.jinja @@ -6,6 +6,7 @@ {%- elif output and arg[0] != '/' -%} {#- Relative outputs in buildDir -#} "$buildDir/{{ arg }}" +{%- else -%} {#- Replace (export_root) === (BUILD_ROOT in ymake) to baseBuildDir in Gradle - root of all build folders for modules -#} "{{ arg|replace(export_root, "$baseBuildDir")|replace(arcadia_root, "$project_root") }}" {%- endif -%} diff --git a/build/export_generators/ide-gradle/proto_builddir.jinja b/build/export_generators/ide-gradle/proto_builddir.jinja index ac50a1d33b0..ef25e5fcbc8 100644 --- a/build/export_generators/ide-gradle/proto_builddir.jinja +++ b/build/export_generators/ide-gradle/proto_builddir.jinja @@ -1,5 +1,5 @@ {%- include "[generator]/builddir.jinja" %} val mainProtosDir = File(buildDir, "main_protos") -{%- if libraries|length %} +{%- if extractIncludeTask %} val mainExtractedIncludeProtosDir = File(buildDir, "extracted-include-protos/main") {%- endif %} diff --git a/build/export_generators/ide-gradle/proto_prepare.jinja b/build/export_generators/ide-gradle/proto_prepare.jinja index cf6fc96adf8..7355872471a 100644 --- a/build/export_generators/ide-gradle/proto_prepare.jinja +++ b/build/export_generators/ide-gradle/proto_prepare.jinja @@ -11,14 +11,17 @@ val prepareMainProtos = tasks.register<Copy>("prepareMainProtos") { } {%- endif %} -{% if libraries|length -%} +{% if extractIncludeTask -%} val extractMainLibrariesProtos = tasks.register<Copy>("extractMainLibrariesProtos") { from("$project_root") { {#- list of all library directories -#} {%- for library in libraries -%} {%- set path_and_jar = rsplit(library.jar, '/', 2) %} include("{{ path_and_jar[0] }}/**/*.proto") -{%- endfor %} +{%- endfor -%} +{%- if libraries|length == 0 %} + include("dummy_path/*.proto") +{%- endif %} } into(mainExtractedIncludeProtosDir) } @@ -28,7 +31,7 @@ afterEvaluate { {%- if target.proto_files|length %} tasks.getByName("extractProto").dependsOn(prepareMainProtos) {%- endif %} -{%- if libraries|length %} +{%- if extractIncludeTask %} tasks.getByName("extractProto").dependsOn(extractMainLibrariesProtos) {%- endif %} } diff --git a/build/export_generators/ide-gradle/proto_vars.jinja b/build/export_generators/ide-gradle/proto_vars.jinja index 3f357ce243a..ca30abd9c5f 100644 --- a/build/export_generators/ide-gradle/proto_vars.jinja +++ b/build/export_generators/ide-gradle/proto_vars.jinja @@ -3,5 +3,6 @@ {%- set with_kotlin = target.with_kotlin -%} {%- set kotlin_version = target.kotlin_version -%} {%- set proto_template = true -%} +{%- set extractIncludeTask = libraries|length or target.runs|length or target.custom_runs|length -%} {%- include "[generator]/jdk.jinja" -%} diff --git a/build/export_generators/ide-gradle/run_java_program.jinja b/build/export_generators/ide-gradle/run_java_program.jinja index ec0aff253ce..065d1c9becb 100644 --- a/build/export_generators/ide-gradle/run_java_program.jinja +++ b/build/export_generators/ide-gradle/run_java_program.jinja @@ -64,13 +64,21 @@ val runJav{{ loop.index }} = task<JavaExec>("runJavaProgram{{ loop.index }}") { {%- if run.out_dir|length -%} {%- for out_dir in run.out_dir|unique %} +{%- if proto_template %} + outputs.files({{ PatchGeneratedProto(out_dir) }}) +{%- else %} outputs.dir({{ PatchRoots(out_dir, false, true) }}) +{%- endif -%} {%- endfor -%} {%- endif -%} {%- if run.out|length -%} {%- for out in run.out|unique %} +{%- if proto_template %} + outputs.files({{ PatchGeneratedProto(out) }}) +{%- else %} outputs.files({{ PatchRoots(out, false, true) }}) +{%- endif -%} {%- endfor -%} {%- endif -%} @@ -83,7 +91,6 @@ val runJav{{ loop.index }} = task<JavaExec>("runJavaProgram{{ loop.index }}") { {%- if proto_template %} -tasks.getByName("prepareMainProtos").dependsOn(runJav{{ loop.index }}) tasks.getByName("extractMainLibrariesProtos").dependsOn(runJav{{ loop.index }}) {%- endif %} diff --git a/build/export_generators/ide-gradle/run_program.jinja b/build/export_generators/ide-gradle/run_program.jinja index 25b270ce95a..1c61ce89b05 100644 --- a/build/export_generators/ide-gradle/run_program.jinja +++ b/build/export_generators/ide-gradle/run_program.jinja @@ -14,18 +14,21 @@ val runProg{{ loop.index }} = task<Exec>("runProgram{{ loop.index }}") { commandLine("bash", "-c", listOf( {%- for arg in custom_run.command -%} -{%- if custom_run.depends|select("eq", arg)|length -%} -{{ PatchRoots(arg, true) }} -{%- elif proto_template -%} -{#- generated proto put to prepared proto dir -#} -{{ PatchGeneratedProto(arg) }} -{%- elif custom_run.outputs|select("eq", arg)|length -%} -{{ PatchRoots(arg, false, true) }} -{%- else -%} -{{ PatchRoots(arg) }} +{%- if custom_run.depends|select("eq", arg)|length %} + {{ PatchRoots(arg, true) }} +{%- elif custom_run.outputs|select("eq", arg)|length %} +{%- if proto_template -%} + {#- generated proto put to prepared proto dir #} + {{ PatchGeneratedProto(arg) }} +{%- else %} + {{ PatchRoots(arg, false, true) }} +{%- endif -%} +{%- else %} + {{ PatchRoots(arg) }} {%- endif -%} {%- if not loop.last %}, {% endif -%} -{%- endfor -%}).joinToString(" ")) +{%- endfor %} + ).joinToString(" ")) {%- if custom_run.depends|length -%} {%- for depend in custom_run.depends|unique %} |