diff options
author | William Deegan <bill@baddogconsulting.com> | 2018-10-02 21:47:17 (GMT) |
---|---|---|
committer | William Deegan <bill@baddogconsulting.com> | 2018-10-02 21:47:17 (GMT) |
commit | cd82751d67fd348f88575494fab5400feee7290e (patch) | |
tree | 504552d0cbd1ec047db1240e0541440421921b31 | |
parent | 7cae39dc41ee3ff6becb53dbc8c426eddff9b8ac (diff) | |
download | SCons-cd82751d67fd348f88575494fab5400feee7290e.zip SCons-cd82751d67fd348f88575494fab5400feee7290e.tar.gz SCons-cd82751d67fd348f88575494fab5400feee7290e.tar.bz2 |
Move finding java include paths to javaCommon.py. Add paths for macos java include files
-rw-r--r-- | src/engine/SCons/Tool/JavaCommon.py | 25 | ||||
-rw-r--r-- | src/engine/SCons/Tool/javac.py | 13 |
2 files changed, 32 insertions, 6 deletions
diff --git a/src/engine/SCons/Tool/JavaCommon.py b/src/engine/SCons/Tool/JavaCommon.py index 2be31e3..53fcf49 100644 --- a/src/engine/SCons/Tool/JavaCommon.py +++ b/src/engine/SCons/Tool/JavaCommon.py @@ -397,6 +397,9 @@ else: java_win32_version_dir_glob = 'C:/Program Files*/Java/jdk%s*/bin' java_win32_dir_glob = 'C:/Program Files*/Java/jdk*/bin' +java_macos_include_dir = '/System/Library/Frameworks/JavaVM.framework/Headers/' +java_macos_version_include_dir = '/System/Library/Frameworks/JavaVM.framework/Versions/%s*/Headers/' + def get_java_install_dirs(platform, version=None): """ @@ -419,6 +422,28 @@ def get_java_install_dirs(platform, version=None): return paths +def get_java_include_paths(env, javac, version): + """ + Return java include paths + :param platform: + :param javac: + :return: + """ + paths = [] + if env['PLATFORM'] == 'win32': + javac_bin_dir = os.path.dirname(javac) + java_inc_dir = os.path.normpath(os.path.join(javac_bin_dir, '..', 'include')) + paths = [java_inc_dir, os.path.join(java_inc_dir, 'win32')] + elif env['PLATFORM'] == 'darwin': + if not version: + paths = [java_macos_include_dir] + else: + paths = sorted(glob.glob(java_macos_version_include_dir%version)) + + return paths + + + # Local Variables: # tab-width:4 diff --git a/src/engine/SCons/Tool/javac.py b/src/engine/SCons/Tool/javac.py index 0d627a1..8d98b54 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, get_java_install_dirs +from SCons.Tool.JavaCommon import parse_java_file, get_java_install_dirs, get_java_include_paths import SCons.Util def classname(path): @@ -208,19 +208,20 @@ def generate(env): env.AddMethod(Java) + version = env.get('JAVAVERSION', None) + + javac = SCons.Tool.find_program_path(env, 'javac') if env['PLATFORM'] == 'win32': # Ensure that we have a proper path for javac - version = env.get('JAVAVERSION', None) - # import pdb; pdb.set_trace() paths=get_java_install_dirs(env['PLATFORM'], version=version) - # print("JAVA PATHS:%s"%paths) javac = SCons.Tool.find_program_path(env, 'javac', default_paths=paths) if javac: javac_bin_dir = os.path.dirname(javac) env.AppendENVPath('PATH', javac_bin_dir) - java_inc_dir = os.path.normpath(os.path.join(javac_bin_dir,'..','include')) - env['JAVAINCLUDES'] = [ java_inc_dir, os.path.join(java_inc_dir,'win32')] + + env['JAVAINCLUDES'] = get_java_include_paths(env, javac, version) + env['JAVAC'] = 'javac' env['JAVACFLAGS'] = SCons.Util.CLVar('') |