diff options
| author | Remko Tronçon <git@el-tramo.be> | 2009-12-31 12:09:59 (GMT) | 
|---|---|---|
| committer | Remko Tronçon <git@el-tramo.be> | 2009-12-31 12:09:59 (GMT) | 
| commit | 3625bf9f94aad738b6d44da4b8f70c60cd167647 (patch) | |
| tree | 9b32044e0704904b1c88c8a11044ce6205ca6d9a /BuildTools/SCons | |
| parent | 8aed9641dd20a3375f8a443189c7ca6243cf9fc6 (diff) | |
| download | swift-3625bf9f94aad738b6d44da4b8f70c60cd167647.zip swift-3625bf9f94aad738b6d44da4b8f70c60cd167647.tar.bz2 | |
Fix building on OS X using default Qt installation.
Diffstat (limited to 'BuildTools/SCons')
| -rw-r--r-- | BuildTools/SCons/Tools/qt4.py | 59 | 
1 files changed, 32 insertions, 27 deletions
| diff --git a/BuildTools/SCons/Tools/qt4.py b/BuildTools/SCons/Tools/qt4.py index 1eb1273..0a84c03 100644 --- a/BuildTools/SCons/Tools/qt4.py +++ b/BuildTools/SCons/Tools/qt4.py @@ -135,7 +135,7 @@ class _Automoc:  		out_sources = source[:]  		for obj in source: -			if isinstance(obj,basestring):  # big kludge! +			if isinstance(obj,basestring):	# big kludge!  				print "scons: qt4: '%s' MAYBE USING AN OLD SCONS VERSION AND NOT CONVERTED TO 'File'. Discarded." % str(obj)  				continue  			if not obj.has_builder(): @@ -202,6 +202,9 @@ def _detect(env):  	moc = env.WhereIs('moc-qt4') or env.WhereIs('moc4') or env.WhereIs('moc')  	if moc: +		import sys +		if sys.platform == "darwin" : +			return ""  		QTDIR = os.path.dirname(os.path.dirname(moc))  		SCons.Warnings.warn(  			QtdirNotFound, @@ -217,6 +220,8 @@ def generate(env):  	"""Add Builders and construction variables for qt to an Environment."""  	def locateQt4Command(env, command, qtdir) : +		if len(qtdir) == 0 : +			qtdir = "/usr"  		suffixes = [  			'-qt4',  			'-qt4.exe', @@ -243,14 +248,11 @@ def generate(env):  	Builder = SCons.Builder.Builder  	splitext = SCons.Util.splitext -	env['QTDIR']  = _detect(env) +	env['QTDIR']	= _detect(env)  	# TODO: 'Replace' should be 'SetDefault'  #	env.SetDefault(  	env.Replace(  		QTDIR  = _detect(env), -		QT4_BINPATH = os.path.join('$QTDIR', 'bin'), -		QT4_CPPPATH = os.path.join('$QTDIR', 'include'), -		QT4_LIBPATH = os.path.join('$QTDIR', 'lib'),  		# TODO: This is not reliable to QTDIR value changes but needed in order to support '-qt4' variants  		QT4_MOC = locateQt4Command(env,'moc', env['QTDIR']),  		QT4_UIC = locateQt4Command(env,'uic', env['QTDIR']), @@ -292,6 +294,8 @@ def generate(env):  		QT4_LRELEASECOM = '$QT4_LRELEASE $SOURCE',  		QT4_RCCCOM = '$QT4_RCC $QT4_QRCFLAGS -name $SOURCE $SOURCE -o $TARGET',  		) +	if len(env["QTDIR"]) > 0 : +		env.Replace(QT4_LIBPATH = os.path.join('$QTDIR', 'lib'))  	# Translation builder  	tsbuilder = Builder( @@ -382,7 +386,6 @@ def generate(env):  					 SHLIBEMITTER=[AutomocShared],  					 LIBEMITTER  =[AutomocStatic],  					 # Of course, we need to link against the qt libraries -#					 CPPPATH=["$QT4_CPPPATH"],  					 LIBPATH=["$QT4_LIBPATH"],  					 LIBS=['$QT4_LIB']) @@ -427,20 +430,21 @@ def enable_modules(self, modules, debug=False, crosscompiling=False) :  			str(invalidModules),str(validModules)))  	moduleDefines = { -		'QtScript'   : ['QT_SCRIPT_LIB'], -		'QtSvg'      : ['QT_SVG_LIB'], +		'QtScript'	 : ['QT_SCRIPT_LIB'], +		'QtSvg'			 : ['QT_SVG_LIB'],  		'Qt3Support' : ['QT_QT3SUPPORT_LIB','QT3_SUPPORT'], -		'QtSql'      : ['QT_SQL_LIB'], -		'QtXml'      : ['QT_XML_LIB'], -		'QtOpenGL'   : ['QT_OPENGL_LIB'], -		'QtGui'      : ['QT_GUI_LIB'], +		'QtSql'			 : ['QT_SQL_LIB'], +		'QtXml'			 : ['QT_XML_LIB'], +		'QtOpenGL'	 : ['QT_OPENGL_LIB'], +		'QtGui'			 : ['QT_GUI_LIB'],  		'QtNetwork'  : ['QT_NETWORK_LIB'], -		'QtCore'     : ['QT_CORE_LIB'], +		'QtCore'		 : ['QT_CORE_LIB'],  	}  	for module in modules :  		try : self.AppendUnique(CPPDEFINES=moduleDefines[module])  		except: pass  	debugSuffix = '' +  	if sys.platform in ["linux2"] and not crosscompiling :  		if debug : debugSuffix = '_debug'  		self.AppendUnique(CPPPATH=[os.path.join("$QTDIR","include", "phonon")]) @@ -451,6 +455,7 @@ def enable_modules(self, modules, debug=False, crosscompiling=False) :  			self.AppendUnique(CPPPATH=[os.path.join("$QTDIR","include",module)])  		self["QT4_MOCCPPPATH"] = self["CPPPATH"]  		return +  	if sys.platform == "win32" or crosscompiling :  		if crosscompiling:  			transformedQtdir = transformToWinePath(self['QTDIR']) @@ -479,34 +484,34 @@ def enable_modules(self, modules, debug=False, crosscompiling=False) :  			self["QT4_MOCCPPPATH"] = self["CPPPATH"]  		self.AppendUnique(LIBPATH=[os.path.join('$QTDIR','lib')])  		return +  	if sys.platform=="darwin" : -		self.AppendUnique(LIBPATH=[os.path.join('$QTDIR','lib')]) -		self.AppendUnique(LINKFLAGS="-F$QTDIR/lib") -		self.AppendUnique(CPPFLAGS="-F$QTDIR/lib") -		self.AppendUnique(LINKFLAGS="-L$QTDIR/lib") #TODO clean! +		if debug : debugSuffix = 'd' + +		if len(self["QTDIR"]) > 0 : +			self.AppendUnique(LIBPATH=[os.path.join('$QTDIR','lib')]) +			self.AppendUnique(LINKFLAGS="-F$QTDIR/lib") +			self.AppendUnique(CPPFLAGS="-F$QTDIR/lib") +			self.AppendUnique(LINKFLAGS="-L$QTDIR/lib") #TODO clean! +  		# FIXME: Phonon Hack  		self.Append(LINKFLAGS=['-framework', "phonon"]) -		if debug : debugSuffix = 'd' +  		for module in modules : -#			self.AppendUnique(CPPPATH=[os.path.join("$QTDIR","include")]) -#			self.AppendUnique(CPPPATH=[os.path.join("$QTDIR","include",module)]) -# port qt4-mac:  			if module in staticModules :  				self.AppendUnique(LIBS=[module+debugSuffix]) # TODO: Add the debug suffix  				self.AppendUnique(LIBPATH=[os.path.join("$QTDIR","lib")])  			else : -				self.Append(CPPFLAGS = ["-I" + os.path.join("$QTDIR", "lib", module + ".framework", "Versions", "4", "Headers")]) +				if len(self["QTDIR"]) > 0 : +					self.Append(CPPFLAGS = ["-I" + os.path.join("$QTDIR", "lib", module + ".framework", "Versions", "4", "Headers")]) +				else : +					self.Append(CPPFLAGS = ["-I" + os.path.join("/Library/Frameworks", module + ".framework", "Versions", "4", "Headers")])  				self.Append(LINKFLAGS=['-framework', module])  		if 'QtOpenGL' in modules:  			self.AppendUnique(LINKFLAGS="-F/System/Library/Frameworks")  			self.Append(LINKFLAGS=['-framework', 'AGL']) #TODO ughly kludge to avoid quotes  			self.Append(LINKFLAGS=['-framework', 'OpenGL'])  		self["QT4_MOCCPPPATH"] = self["CPPPATH"] -		return -# This should work for mac but doesn't -#	env.AppendUnique(FRAMEWORKPATH=[os.path.join(env['QTDIR'],'lib')]) -#	env.AppendUnique(FRAMEWORKS=['QtCore','QtGui','QtOpenGL', 'AGL']) -  def exists(env):  	return _detect(env) | 
 Swift
 Swift