summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsay <[email protected]>2023-07-17 12:15:51 +0300
committersay <[email protected]>2023-07-17 12:15:51 +0300
commit70217907a75707300118481ea373b73a6cb6ad4d (patch)
tree3f498648d91ac75871d1a587040501049189447e
parent5e0f4b1b36814db524e00584ab22c83171da1b30 (diff)
Add STDOUT and STDOUT_NOAUTO params to RUN_JAVA_PROGRAM
-rw-r--r--build/scripts/stdout2stderr.py12
-rw-r--r--build/ymake.core.conf4
2 files changed, 12 insertions, 4 deletions
diff --git a/build/scripts/stdout2stderr.py b/build/scripts/stdout2stderr.py
index d7861fdda32..a67eb0afb36 100644
--- a/build/scripts/stdout2stderr.py
+++ b/build/scripts/stdout2stderr.py
@@ -1,6 +1,14 @@
import subprocess
import sys
+FILE_PARAM='--file='
+
if __name__ == '__main__':
- assert len(sys.argv) > 1
- sys.exit(subprocess.Popen(sys.argv[1:], stdout=sys.stderr).wait())
+ i = 1
+ stdout = sys.stderr
+ if len(sys.argv) > i and sys.argv[i].startswith(FILE_PARAM):
+ file_name = sys.argv[i][len(FILE_PARAM):]
+ stdout = open(file_name, "w")
+ i += 1
+ assert len(sys.argv) > i and not sys.argv[i].startswith(FILE_PARAM)
+ sys.exit(subprocess.Popen(sys.argv[i:], stdout=stdout).wait())
diff --git a/build/ymake.core.conf b/build/ymake.core.conf
index caf2eac064c..fa18111da65 100644
--- a/build/ymake.core.conf
+++ b/build/ymake.core.conf
@@ -3625,11 +3625,11 @@ JDK_LATEST_VERSION=19
JDK_LATEST_PEERDIR=build/platform/java/jdk/jdk${JDK_LATEST_VERSION}
# tag:java-specific
-macro _DO_2_RUN_JAR_PROGRAM(IN_DIRS_VAR="uniq_", IN_DIRS_INPUTS[], IN{input}[], IN_NOPARSE{input}[], IN_DIR[], OUT_NOAUTO{output}[], OUT{output}[], TOOL{tool}[], OUT_DIR[], CLASSPATH[], ADD_SRCS_TO_CLASSPATH?"yes":"no", CWD="${ARCADIA_BUILD_ROOT}", Args...) {
+macro _DO_2_RUN_JAR_PROGRAM(IN_DIRS_VAR="uniq_", IN_DIRS_INPUTS[], IN{input}[], IN_NOPARSE{input}[], IN_DIR[], OUT_NOAUTO{output}[], OUT{output}[], TOOL{tool}[], OUT_DIR[], CLASSPATH[], ADD_SRCS_TO_CLASSPATH?"yes":"no", CWD="${ARCADIA_BUILD_ROOT}", STDOUT="", STDOUT_NOAUTO="", Args...) {
_LATE_GLOB(${IN_DIRS_VAR} ${suf=/**/*:IN_DIR})
_CHECK_RUN_JAVA_PROG_CLASSPATH($CLASSPATH)
.PEERDIR=build/platform/java/jdk $JDK_RESOURCE_PEERDIR
- .CMD=${kv;hide:"p RJ"} ${kv;hide:"pc blue"} ${hide:JAVA_FAKEID} ${cwd:BINDIR} $YMAKE_PYTHON ${input:"build/scripts/mkdir.py"} ${OUT_DIR} && ${cwd:CWD} $YMAKE_PYTHON ${input:"build/scripts/setup_java_tmpdir.py"} $YMAKE_PYTHON ${input:"build/scripts/stdout2stderr.py"} $YMAKE_PYTHON ${input:"build/scripts/fix_java_command_file_cp.py"} --build-root ${ARCADIA_BUILD_ROOT} $JDK_RESOURCE/bin/java -Dfile.encoding=utf8 -classpath ${RUN_JAR_PROG_CP_PRE}${tool:CLASSPATH}${RUN_JAR_PROG_CP_SUF} ${Args} && $_GENTAR_HELPER($CLASSPATH $IN_DIR $IN $IN_NOPARSE $TOOL $Args OUT_DIR $OUT_DIR) ${input;hide:IN} ${input;context=TEXT;hide:IN_NOPARSE} ${output;noauto;hide:OUT_NOAUTO} ${output;hide:OUT} ${tool;hide:TOOL} ${IN_DIRS_INPUTS}
+ .CMD=${kv;hide:"p RJ"} ${kv;hide:"pc blue"} ${hide:JAVA_FAKEID} ${cwd:BINDIR} $YMAKE_PYTHON ${input:"build/scripts/mkdir.py"} ${OUT_DIR} && ${cwd:CWD} $YMAKE_PYTHON ${input:"build/scripts/setup_java_tmpdir.py"} $YMAKE_PYTHON ${input:"build/scripts/stdout2stderr.py"} ${pre=--file=:STDOUT} ${output;hide:STDOUT} ${pre=--file=:STDOUT_NOAUTO} ${output;hide;noauto:STDOUT_NOAUTO} $YMAKE_PYTHON ${input:"build/scripts/fix_java_command_file_cp.py"} --build-root ${ARCADIA_BUILD_ROOT} $JDK_RESOURCE/bin/java -Dfile.encoding=utf8 -classpath ${RUN_JAR_PROG_CP_PRE}${tool:CLASSPATH}${RUN_JAR_PROG_CP_SUF} ${Args} && $_GENTAR_HELPER($CLASSPATH $IN_DIR $IN $IN_NOPARSE $TOOL $Args OUT_DIR $OUT_DIR) ${input;hide:IN} ${input;context=TEXT;hide:IN_NOPARSE} ${output;noauto;hide:OUT_NOAUTO} ${output;hide:OUT} ${tool;hide:TOOL} ${IN_DIRS_INPUTS}
}
# tag:java-specific