Add patch to build qt 4 with GCC 6

This commit is contained in:
Adam J. Stewart 2016-08-09 16:13:57 -05:00
parent ddf1879bed
commit 59ce0c7514
2 changed files with 28 additions and 15 deletions

View File

@ -31,13 +31,14 @@ class PyPyside(Package):
homepage = "https://pypi.python.org/pypi/pyside" homepage = "https://pypi.python.org/pypi/pyside"
url = "https://pypi.python.org/packages/source/P/PySide/PySide-1.2.2.tar.gz" url = "https://pypi.python.org/packages/source/P/PySide/PySide-1.2.2.tar.gz"
version('1.2.4', '3cb7174c13bd45e3e8f77638926cb8c0')
version('1.2.2', 'c45bc400c8a86d6b35f34c29e379e44d') version('1.2.2', 'c45bc400c8a86d6b35f34c29e379e44d')
depends_on('cmake', type='build') depends_on('cmake', type='build')
extends('python') extends('python')
depends_on('py-setuptools', type='build') depends_on('py-setuptools', type='build')
depends_on('qt@:4') depends_on('qt@4.6:4.999')
def patch(self): def patch(self):
"""Undo PySide RPATH handling and add Spack RPATH.""" """Undo PySide RPATH handling and add Spack RPATH."""

View File

@ -114,22 +114,34 @@ def setup_environment(self, spack_env, env):
def setup_dependent_environment(self, spack_env, run_env, dspec): def setup_dependent_environment(self, spack_env, run_env, dspec):
spack_env.set('QTDIR', self.prefix) spack_env.set('QTDIR', self.prefix)
@when('@4')
def patch(self): def patch(self):
if self.spec.satisfies('@4'):
qmake_conf = 'mkspecs/common/g++-base.conf'
qmake_unix_conf = 'mkspecs/common/g++-unix.conf'
elif self.spec.satisfies('@5'):
qmake_conf = 'qtbase/mkspecs/common/g++-base.conf'
qmake_unix_conf = 'qtbase/mkspecs/common/g++-unix.conf'
else:
return
# Fix qmake compilers in the default mkspec # Fix qmake compilers in the default mkspec
filter_file('^QMAKE_COMPILER.*', 'QMAKE_COMPILER = cc', qmake_conf) filter_file('^QMAKE_CC .*', 'QMAKE_CC = cc',
filter_file('^QMAKE_CC.*', 'QMAKE_CC = cc', qmake_conf) 'mkspecs/common/g++-base.conf')
filter_file('^QMAKE_CXX.*', 'QMAKE_CXX = c++', qmake_conf) filter_file('^QMAKE_CXX .*', 'QMAKE_CXX = c++',
filter_file('^QMAKE_LFLAGS_NOUNDEF.*', 'mkspecs/common/g++-base.conf')
'QMAKE_LFLAGS_NOUNDEF =', qmake_unix_conf)
# Necessary to build with GCC 6 and other modern compilers
# http://stackoverflow.com/questions/10354371/
filter_file('(^QMAKE_CXXFLAGS .*)', r'\1 -std=gnu++98',
'mkspecs/common/gcc-base.conf')
filter_file('^QMAKE_LFLAGS_NOUNDEF .*', 'QMAKE_LFLAGS_NOUNDEF = ',
'mkspecs/common/g++-unix.conf')
@when('@5:')
def patch(self):
# Fix qmake compilers in the default mkspec
filter_file('^QMAKE_COMPILER .*', 'QMAKE_COMPILER = cc',
'qtbase/mkspecs/common/g++-base.conf')
filter_file('^QMAKE_CC .*', 'QMAKE_CC = cc',
'qtbase/mkspecs/common/g++-base.conf')
filter_file('^QMAKE_CXX .*', 'QMAKE_CXX = c++',
'qtbase/mkspecs/common/g++-base.conf')
filter_file('^QMAKE_LFLAGS_NOUNDEF .*', 'QMAKE_LFLAGS_NOUNDEF = ',
'qtbase/mkspecs/common/g++-unix.conf')
@property @property
def common_config_args(self): def common_config_args(self):