Fix silex build (#15172)

* Mark silo+silex as requiring QT4

* Add missing readline dependency to silo

* Fix silo QT4 usage and verify silex works on mac

```
-- darwin-mojave-x86_64 / clang@11.0.0-apple --------------------
7gdcud4 silo@4.10.2+fortran~mpi patches=7b5a1dc2a0e358e667088d77e7caa780967fa8ea60be89c44986605df9990abe +pic+shared+silex
pk3wbwd     hdf5@1.10.6~cxx~debug~fortran+hl~mpi+pic+shared+szip~threadsafe
slsy6ko         libszip@2.1.1
xj36ejk         zlib@1.2.11+optimize+pic+shared
u4662xx     libx11@1.6.4
3lpe6j3     qt@4.8.7~dbus~examples~framework freetype=none ~gtk~opengl patches=03f9893882c63a9a9617d9ecab9caf80661c96df13f596a9b24fc4579490144a,a4f37427b34d88df6a6adc16e1e6c805087d4f3a7c658e1797450b0912fcbf5d,f17e0b5fb1f43bccadf7298533eca57294f4acab11ed83b176c61c441f745c19 ~phonon+shared~sql~ssl~tools~webkit
shdhdbh         glib@2.56.3~libmount patches=c325997b72a205ad1638bb3e3ba0e5b73e3d32ce63b2d0d3282f3e3a2ff4663c tracing=none
msyeqht             gettext@0.20.1+bzip2+curses+git~libunistring+libxml2+tar+xz
ysmjykg                 bzip2@1.0.8+shared
w354vrb                 libxml2@2.9.9~python
jg6ekuh                     libiconv@1.16
b7n722h                     xz@5.2.4
zbgxvxi                 ncurses@6.1~symlinks~termlib
2e6sifw                 tar@1.32
7yg7qah             libffi@3.2.1
zg55iyu             pcre@8.43~jit+multibyte+utf
zqrlxlz             perl@5.30.0+cpanm+shared+threads
un7wzvl             python@3.7.4+bz2+ctypes+dbm~debug+libxml2+lzma~nis~optimizations patches=210df3f28cde02a8135b58cc4168e70ab91dbf9097359d05938f1e2843875e57 +pic+pyexpat+pythoncmd+readline+shared+sqlite3+ssl~tix~tkinter~ucs4+uuid+zlib
l4gxq46                 expat@2.2.9~libbsd
3t4dwsv                 gdbm@1.18.1
h2bjtz2                     readline@8.0
ugvknwc                 openssl@1.1.1d+systemcerts
hsmq6ou                 sqlite@3.30.1~column_metadata+fts~functions~rtree
lpfob23         icu4c@65.1 cxxstd=11
lf66vbr         inputproto@2.3.2
afovyhg         libjpeg-turbo@2.0.3
5dgw556         libmng@2.0.3 build_type=RelWithDebInfo
3z4lw2w             lcms@2.9
flleuyu                 libtiff@4.0.10
67tigfp         libpng@1.6.37
```
This commit is contained in:
Seth R. Johnson 2020-02-23 11:45:19 -05:00 committed by GitHub
parent 629c69d383
commit b927e3799f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -31,14 +31,22 @@ class Silo(AutotoolsPackage):
depends_on('hdf5~mpi', when='~mpi')
depends_on('mpi', when='+mpi')
depends_on('hdf5+mpi', when='+mpi')
depends_on('qt', when='+silex')
depends_on('qt~framework@4.8:4.9', when='+silex')
depends_on('libx11', when='+silex')
depends_on('readline')
depends_on('zlib')
patch('remove-mpiposix.patch', when='@4.8:4.10.2')
def flag_handler(self, name, flags):
if name == 'ldflags' and self.spec['hdf5'].satisfies('~shared'):
flags.append('-ldl')
spec = self.spec
if name == 'ldflags':
if spec['hdf5'].satisfies('~shared'):
flags.append('-ldl')
flags.append(spec['readline'].libs.search_flags)
elif name in ('cflags', 'cxxflags', 'fcflags'):
if '+pic' in spec:
flags.append(self.compiler.pic_flag)
return (flags, None, None)
@when('%clang@9:')
@ -81,13 +89,13 @@ def configure_args(self):
]
if '+silex' in spec:
config_args.append('--with-Qt-dir=%s' % spec['qt'].prefix)
if '+pic' in spec:
config_args += [
'CFLAGS={0}'.format(self.compiler.pic_flag),
'CXXFLAGS={0}'.format(self.compiler.pic_flag),
'FCFLAGS={0}'.format(self.compiler.pic_flag)]
x = spec['libx11']
config_args.extend([
'--with-Qt-dir=' + spec['qt'].prefix,
'--with-Qt-lib=QtGui -lQtCore',
'--x-includes=' + x.prefix.include,
'--x-libraries=' + x.prefix.lib,
])
if '+mpi' in spec:
config_args.append('CC=%s' % spec['mpi'].mpicc)