summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilliam Deegan <bill@baddogconsulting.com>2018-10-02 21:47:17 (GMT)
committerWilliam Deegan <bill@baddogconsulting.com>2018-10-02 21:47:17 (GMT)
commitcd82751d67fd348f88575494fab5400feee7290e (patch)
tree504552d0cbd1ec047db1240e0541440421921b31
parent7cae39dc41ee3ff6becb53dbc8c426eddff9b8ac (diff)
downloadSCons-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.py25
-rw-r--r--src/engine/SCons/Tool/javac.py13
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('')