aboutsummaryrefslogtreecommitdiffstats
path: root/build/scripts/build_java_with_error_prone2.py
diff options
context:
space:
mode:
authormiroslav2 <miroslav2@yandex-team.com>2024-07-01 09:39:40 +0300
committermiroslav2 <miroslav2@yandex-team.com>2024-07-01 09:56:34 +0300
commit39d6b4e403f27b6adda124cc1a099f454c3db241 (patch)
tree7092b8518e206767f8e8271ae6e80eeb0897e96e /build/scripts/build_java_with_error_prone2.py
parentf6e158056ed38be7c4c500adbe132bc0ecf1866a (diff)
downloadydb-39d6b4e403f27b6adda124cc1a099f454c3db241.tar.gz
Simplest improvements for Java build, remove chained 'execv' Python calls
* remove chained 'execv' Python calls for compiling Java with with "javac" and "ErrorProne" - replace with single "run_javac.py" script 84bc60b4e87890e6ceea1ef22a2c0936410ff6bb
Diffstat (limited to 'build/scripts/build_java_with_error_prone2.py')
-rw-r--r--build/scripts/build_java_with_error_prone2.py81
1 files changed, 39 insertions, 42 deletions
diff --git a/build/scripts/build_java_with_error_prone2.py b/build/scripts/build_java_with_error_prone2.py
index fa65cf19b9..8d7330db9e 100644
--- a/build/scripts/build_java_with_error_prone2.py
+++ b/build/scripts/build_java_with_error_prone2.py
@@ -22,21 +22,6 @@ JAVA10_EXPORTS = [
]
-def get_java_version(exe):
- p = subprocess.Popen([exe, '-version'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
- out, err = p.communicate()
- for line in (out or '').strip().split("\n") + (err or '').strip().split("\n"):
- m = re.match(r'java version "(.+)"', line)
- if m:
- parts = m.groups()[0].split(".")
- return parts[1] if parts[0] == "1" else parts[0]
- m = re.match(r'openjdk version "(\d+).*"', line)
- if m:
- parts = m.groups()[0].split(".")
- return parts[0]
- return None
-
-
def get_classpath(cmd):
for i, part in enumerate(cmd):
if part == '-classpath':
@@ -58,35 +43,47 @@ def parse_args(argv):
return parsed + [argv[i + 1 :]]
+def fix_cmd_line(error_prone_tool, cmd):
+ if not error_prone_tool:
+ return cmd
+ for f in cmd:
+ if f.startswith('-Xep'):
+ ERROR_PRONE_FLAGS.append(f)
+ for f in ERROR_PRONE_FLAGS:
+ if f in cmd:
+ cmd.remove(f)
+ if '-processor' in cmd:
+ classpath = get_classpath(cmd)
+ if classpath:
+ error_prone_tool = error_prone_tool + os.pathsep + classpath
+ return (
+ cmd
+ + JAVA10_EXPORTS
+ + ['-processorpath', error_prone_tool, '-XDcompilePolicy=byfile']
+ + [(' '.join(['-Xplugin:ErrorProne'] + ERROR_PRONE_FLAGS))]
+ )
+
+
+# NOTE: legacy, only for "devtools/ya/jbuild"
def just_do_it(argv):
java, javac, error_prone_tool, javac_cmd = parse_args(argv)
- ver = get_java_version(java)
- if not ver:
- raise Exception("Can't determine java version")
- if int(ver) >= 10:
- for f in javac_cmd:
- if f.startswith('-Xep'):
- ERROR_PRONE_FLAGS.append(f)
- for f in ERROR_PRONE_FLAGS:
- if f in javac_cmd:
- javac_cmd.remove(f)
- if '-processor' in javac_cmd:
- classpath = get_classpath(javac_cmd)
- if classpath:
- error_prone_tool = error_prone_tool + os.pathsep + classpath
- cmd = (
- [javac]
- + JAVA10_EXPORTS
- + ['-processorpath', error_prone_tool, '-XDcompilePolicy=byfile']
- + [(' '.join(['-Xplugin:ErrorProne'] + ERROR_PRONE_FLAGS))]
- + javac_cmd
- )
- else:
- cmd = (
- [java, '-Xbootclasspath/p:' + error_prone_tool, 'com.google.errorprone.ErrorProneCompiler']
- + ERROR_PRONE_FLAGS
- + javac_cmd
- )
+ for f in javac_cmd:
+ if f.startswith('-Xep'):
+ ERROR_PRONE_FLAGS.append(f)
+ for f in ERROR_PRONE_FLAGS:
+ if f in javac_cmd:
+ javac_cmd.remove(f)
+ if '-processor' in javac_cmd:
+ classpath = get_classpath(javac_cmd)
+ if classpath:
+ error_prone_tool = error_prone_tool + os.pathsep + classpath
+ cmd = (
+ [javac]
+ + JAVA10_EXPORTS
+ + ['-processorpath', error_prone_tool, '-XDcompilePolicy=byfile']
+ + [(' '.join(['-Xplugin:ErrorProne'] + ERROR_PRONE_FLAGS))]
+ + javac_cmd
+ )
if platform.system() == 'Windows':
sys.exit(subprocess.Popen(cmd).wait())
else: