From 92d6803a0c01336f53aa3f78e6ce387333598d29 Mon Sep 17 00:00:00 2001 From: nik Date: Thu, 15 Jul 2010 10:25:44 +0400 Subject: [PATCH] use in-process javac only if source level of module matches with jdk version --- .../jetbrains/jps/builders/StandardBuilders.groovy | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/jps/src/org/jetbrains/jps/builders/StandardBuilders.groovy b/jps/src/org/jetbrains/jps/builders/StandardBuilders.groovy index d263c0c20c8b..ce73d591ef6f 100644 --- a/jps/src/org/jetbrains/jps/builders/StandardBuilders.groovy +++ b/jps/src/org/jetbrains/jps/builders/StandardBuilders.groovy @@ -14,13 +14,15 @@ class JavacBuilder implements ModuleBuilder { String sourceLevel = module["sourceLevel"] String targetLevel = module["targetLevel"] String customArgs = module["javac_args"] - def javacExecutable = getJavacExecutable(module) if (module.project.builder.useInProcessJavac) { - if (javacExecutable != null) { - module.project.warning("In-process Javac instead of '${javacExecutable}' will be used for '${module.name}'") + String version = System.getProperty("java.version") + if (sourceLevel == null || version.startsWith(sourceLevel)) { + if (Java16ApiCompilerRunner.compile(module, state, sourceLevel, targetLevel, customArgs)) { + return + } } - if (Java16ApiCompilerRunner.compile(module, state, sourceLevel, targetLevel, customArgs)) { - return + else { + module.project.info("In-process Javac won't be used for '${module.name}', because Java version ($version) doesn't match to source level ($sourceLevel)") } } @@ -33,6 +35,7 @@ class JavacBuilder implements ModuleBuilder { params.fork = "true" params.debug = "on" + def javacExecutable = getJavacExecutable(module) if (javacExecutable != null) { params.executable = javacExecutable }