summaryrefslogtreecommitdiff
path: root/QMTest
diff options
context:
space:
mode:
authorWilliam Deegan <bill@baddogconsulting.com>2017-04-01 18:46:06 -0400
committerWilliam Deegan <bill@baddogconsulting.com>2017-04-01 18:46:06 -0400
commite5d146b60b52b79d2766f56ce56191ad00c1dc32 (patch)
tree715d7d37b122a10323c3a228cb95ec3e108b3e22 /QMTest
parentfc54c2515dccd1db8217ec3ef7836e684c63d60f (diff)
downloadscons-e5d146b60b52b79d2766f56ce56191ad00c1dc32.tar.gz
Fix locating java home on mac. fix mode='r' for py2/3
Diffstat (limited to 'QMTest')
-rw-r--r--QMTest/TestSCons.py35
1 files changed, 27 insertions, 8 deletions
diff --git a/QMTest/TestSCons.py b/QMTest/TestSCons.py
index d33eae7c..6b087c06 100644
--- a/QMTest/TestSCons.py
+++ b/QMTest/TestSCons.py
@@ -22,6 +22,7 @@ import re
import shutil
import sys
import time
+import subprocess
from TestCommon import *
from TestCommon import __all__
@@ -729,16 +730,34 @@ class TestSCons(TestCommon):
result.append(os.path.join(d,'linux'))
return result
-
- def java_where_java_home(self,version=None):
+ def java_where_java_home(self, version=None):
if sys.platform[:6] == 'darwin':
+ # osx 10.11, 10.12
+ home_tool = '/usr/libexec/java_home'
+ java_home = False
+ if os.path.exists(home_tool):
+ java_home = subprocess.check_output(home_tool).strip()
+ java_home = java_home.decode()
+
if version is None:
- home = '/System/Library/Frameworks/JavaVM.framework/Home'
+ if java_home:
+ return java_home
+ else:
+ homes = ['/System/Library/Frameworks/JavaVM.framework/Home',
+ # osx 10.10
+ '/System/Library/Frameworks/JavaVM.framework/Versions/Current/Home']
+ for home in homes:
+ if os.path.exists(home):
+ return home
+
else:
- home = '/System/Library/Frameworks/JavaVM.framework/Versions/%s/Home' % version
- if not os.path.exists(home):
- # This works on OSX 10.10
- home = '/System/Library/Frameworks/JavaVM.framework/Versions/Current/'
+ if java_home.find('jdk%s'%version) != -1:
+ return java_home
+ else:
+ home = '/System/Library/Frameworks/JavaVM.framework/Versions/%s/Home' % version
+ if not os.path.exists(home):
+ # This works on OSX 10.10
+ home = '/System/Library/Frameworks/JavaVM.framework/Versions/Current/'
else:
jar = self.java_where_jar(version)
home = os.path.normpath('%s/..'%jar)
@@ -1028,7 +1047,7 @@ SConscript( sconscript )
nols = nols + "|"
nols = nols + ")"
lastEnd = 0
- logfile = self.read(self.workpath(logfile))
+ logfile = self.read(self.workpath(logfile), mode='r')
# Some debug code to keep around..
# sys.stderr.write("LOGFILE[%s]:%s"%(type(logfile),logfile))