diff options
-rw-r--r-- | src/engine/SCons/Tool/JavaCommon.py | 27 | ||||
-rw-r--r-- | src/engine/SCons/Tool/javac.py | 10 | ||||
-rw-r--r-- | test/Java/Java-1.6.py | 2 | ||||
-rw-r--r-- | test/Java/Java-1.8.py | 2 |
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 |