diff options
author | say <[email protected]> | 2023-07-17 12:15:51 +0300 |
---|---|---|
committer | say <[email protected]> | 2023-07-17 12:15:51 +0300 |
commit | 70217907a75707300118481ea373b73a6cb6ad4d (patch) | |
tree | 3f498648d91ac75871d1a587040501049189447e | |
parent | 5e0f4b1b36814db524e00584ab22c83171da1b30 (diff) |
Add STDOUT and STDOUT_NOAUTO params to RUN_JAVA_PROGRAM
-rw-r--r-- | build/scripts/stdout2stderr.py | 12 | ||||
-rw-r--r-- | build/ymake.core.conf | 4 |
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 |