aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorc0nsumer <c0nsumer@yandex-team.com>2024-07-25 19:03:48 +0300
committerc0nsumer <c0nsumer@yandex-team.com>2024-07-25 19:13:08 +0300
commit790f370a8a0bea0631222fd07a2ff26a8536d58a (patch)
tree5ab3845998fe2a1e7bf3cd377bfb5cb5a4423775
parentc4df9035ef733d9287a31ffae8c682f8bed97d32 (diff)
downloadydb-790f370a8a0bea0631222fd07a2ff26a8536d58a.tar.gz
RUN_JAVA_PROGRAM supported
7f22d27fd1f8d48b3b4aa51a72c445997c9e6285
-rw-r--r--build/export_generators/ide-gradle/build.gradle.kts.jinja42
1 files changed, 32 insertions, 10 deletions
diff --git a/build/export_generators/ide-gradle/build.gradle.kts.jinja b/build/export_generators/ide-gradle/build.gradle.kts.jinja
index a1e2563878..5eedab187e 100644
--- a/build/export_generators/ide-gradle/build.gradle.kts.jinja
+++ b/build/export_generators/ide-gradle/build.gradle.kts.jinja
@@ -258,23 +258,41 @@ tasks.named<Test>("test") {
{% endif -%}
-{% set runs = targets|selectattr("runs") -%}
+{# run_java_program #}
+{# {% set runs = targets|selectattr("runs") -%} #}
+{% set runs = target.runs -%}
{% if runs -%}
{% for run in runs -%}
-tasks.build.dependsOn(
- task<JavaExec>("runJavaProgram") {
+
+val runJav = task<JavaExec>("runJavaProgram") {
group = "build"
- description = "Code generation by rub java program"
+ description = "Code generation by run java program"
- mainClass.set(mainClass)
+ mainClass.set("{{ run.args[0] }}")
{% if run.classpath -%}
- classpath = "{{ run.classpath }}"
+{% for classpath in run.classpath -%}
+{% set real_classpath = classpath|replace('@', '') -%}
+{% set real_classpath = real_classpath|replace('.run.cp', '') -%}
+{% set real_classpath = real_classpath|replace('.cplst', '') -%}
+{% set real_classpath = real_classpath|replace(export_root, '') -%}
+{% set real_gradle_classpath = real_classpath|replace('/', ':') %}
+ val classPath = "{{ real_gradle_classpath }}"
+ val classPathParts = classPath.split(":")
+ classPathParts[classPathParts.size - 2]
+ classpath = files("$project_root{{ real_classpath }}") + project(classPath.replace(":${classPathParts[classPathParts.size - 2]}.jar", "")).configurations.runtimeClasspath.get()
+{% endfor -%}
{% else -%}
classpath = sourceSets.main.get().runtimeClasspath
{% endif -%}
-{% if run.args -%}
-{# for arg in run.args #}
- args = "{{ run.args }}"
+{% set args = run.args -%}
+{% if args -%}
+ val argsList = mutableListOf(
+{% for arg in args -%}
+ "{{ arg }}",
+{% endfor -%}
+ )
+ argsList.removeAt(0)
+ args = argsList
{% endif -%}
{% if run.in_dir -%}
{% for dir in run.in_dir -%}
@@ -300,7 +318,11 @@ tasks.build.dependsOn(
#}
{% endif -%}
}
-)
+tasks {
+ build {
+ dependsOn(runJav)
+ }
+}
{% endfor -%}
{% endif -%}