summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/engine/SCons/Tool/JavaCommon.py27
-rw-r--r--src/engine/SCons/Tool/javac.py10
-rw-r--r--test/Java/Java-1.6.py2
-rw-r--r--test/Java/Java-1.8.py2
4 files changed, 38 insertions, 3 deletions
diff --git a/src/engine/SCons/Tool/JavaCommon.py b/src/engine/SCons/Tool/JavaCommon.py
index e90e768..83b0b05 100644
--- a/src/engine/SCons/Tool/JavaCommon.py
+++ b/src/engine/SCons/Tool/JavaCommon.py
@@ -32,6 +32,7 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
import os
import os.path
import re
+import glob
java_parsing = 1
@@ -391,6 +392,32 @@ else:
"""
return os.path.split(file)
+
+
+java_win32_version_dir_glob = 'C:/Program Files*/Java/jdk%s*/bin'
+java_win32_dir_glob = 'C:/Program Files*/Java/jdk*/bin'
+
+
+def get_java_install_dirs(platform, version=None):
+ """
+ Using patterns above find the java jdk install dir
+ :param platform:
+ :param version:
+ :return: list of default paths for java.
+ """
+ paths = []
+ if platform == 'win32':
+ if version:
+ paths = glob.glob(java_win32_version_dir_glob%version)
+ else:
+ paths = glob.glob(java_win32_dir_glob)
+ else:
+ # do nothing for now
+ pass
+
+ return paths
+
+
# Local Variables:
# tab-width:4
# indent-tabs-mode:nil
diff --git a/src/engine/SCons/Tool/javac.py b/src/engine/SCons/Tool/javac.py
index 72c48f7..08d3d2f 100644
--- a/src/engine/SCons/Tool/javac.py
+++ b/src/engine/SCons/Tool/javac.py
@@ -39,7 +39,7 @@ from collections import OrderedDict
import SCons.Action
import SCons.Builder
from SCons.Node.FS import _my_normcase
-from SCons.Tool.JavaCommon import parse_java_file
+from SCons.Tool.JavaCommon import parse_java_file, get_java_install_dirs
import SCons.Util
def classname(path):
@@ -208,6 +208,14 @@ def generate(env):
env.AddMethod(Java)
+ if env['PLATFORM'] == 'win32':
+ # Ensure that we have a proper path for clang
+ clang = SCons.Tool.find_program_path(env, 'javac',
+ default_paths=get_java_install_dirs(env['PLATFORM']))
+ if clang:
+ clang_bin_dir = os.path.dirname(clang)
+ env.AppendENVPath('PATH', clang_bin_dir)
+
env['JAVAC'] = 'javac'
env['JAVACFLAGS'] = SCons.Util.CLVar('')
env['JAVABOOTCLASSPATH'] = []
diff --git a/test/Java/Java-1.6.py b/test/Java/Java-1.6.py
index cd92b95..7bda650 100644
--- a/test/Java/Java-1.6.py
+++ b/test/Java/Java-1.6.py
@@ -41,7 +41,7 @@ version = '1.6'
where_javac, java_version = test.java_where_javac(version)
javac_path=os.path.dirname(where_javac)
-test.verbose_set(1)
+# test.verbose_set(1)
if ' ' in javac_path:
javac_path ='"%s"'%javac_path
diff --git a/test/Java/Java-1.8.py b/test/Java/Java-1.8.py
index cb28515..8e85889 100644
--- a/test/Java/Java-1.8.py
+++ b/test/Java/Java-1.8.py
@@ -41,7 +41,7 @@ version = '1.8'
where_javac, java_version = test.java_where_javac(version)
javac_path=os.path.dirname(where_javac)
-test.verbose_set(1)
+# test.verbose_set(1)
if ' ' in javac_path:
javac_path ='"%s"'%javac_path