# IT4Innovations
# LK 2022

easyblock = 'EB_Qt'

name = 'Qt5'
version = '5.15.2'

homepage = 'https://qt.io/'
description = "Qt is a comprehensive cross-platform C++ application framework."

toolchain = {'name': 'GCCcore', 'version': '11.2.0'}
# disabling use of -ftree-vectorize is required to avoid compilation failures on some systems (e.g. Intel Skylake X)
toolchainopts = {'vectorize': False}

source_urls = [
    'https://download.qt.io/official_releases/qt/%(version_major_minor)s/%(version)s/single/',
    'https://download.qt.io/archive/qt/%(version_major_minor)s/%(version)s/single/',
    'https://download.qt.io/new_archive/qt/%(version_major_minor)s/%(version)s/single/',
]
sources = ['qt-everywhere-src-%(version)s.tar.xz']
patches = [
    'Qt5-5.13.1_fix-avx2.patch',
    'Qt5-5.13.1_fix-qmake-libdir.patch',
    'Qt5-5.14.1_fix-OF-Gentoo.patch',
    'Qt5-5.15.2_fix-gcc11.patch',
]
checksums = [
    '3a530d1b243b5dec00bc54937455471aaa3e56849d2593edb8ded07228202240',  # qt-everywhere-src-5.15.2.tar.xz
    '6f46005f056bf9e6ff3e5d012a874d18ee03b33e685941f2979c970be91a9dbc',  # Qt5-5.13.1_fix-avx2.patch
    '511ca9c0599ceb1989f73d8ceea9199c041512d3a26ee8c5fd870ead2c10cb63',  # Qt5-5.13.1_fix-qmake-libdir.patch
    '0b9defb7ce75314d85bebe07e143db7f7de316fec64c17cbd13f7eec5d2d1afa',  # Qt5-5.14.1_fix-OF-Gentoo.patch
    '6606e2434aacaac49545be733bf012f1d489393bf8bd5573691c171ab8bc0976',  # Qt5-5.15.2_fix-gcc11.patch
]

builddependencies = [
    ('binutils', '2.37'),
    ('pkg-config', '0.29.2'),
    # deps for QtWebEngine
    ('Bison', '3.7.6'),
    ('flex', '2.6.4'),
    ('gperf', '3.1'),
    ('Ninja', '1.10.2'),
    # Qt5WebEngine has build dependency on Python 2
    ('Python', '2.7.18', '-bare'),
    ('re2c', '2.2'),
]

dependencies = [
    ('double-conversion', '3.1.5'),
    ('GLib', '2.69.1'),
    ('PCRE2', '10.37'),
    ('libpng', '1.6.37'),
    ('HarfBuzz', '2.8.2'),
    ('graphite2', '1.3.14'),
    # deps for QtWebEngine
    ('X11', '20210802'),
    ('fontconfig', '2.13.94'),
    ('DBus', '1.13.18'),
    ('libevent', '2.1.12'),
    ('libGLU', '9.0.2'),
    ('libjpeg-turbo', '2.0.6'),
    ('NSS', '3.69'),
    ('snappy', '1.1.9'),
    ('JasPer', '2.0.33'),
    ('bzip2', '1.0.8'),
    ('OpenSSL', '1.1', '', True),
    ('ICU', '69.1'),
    ('Kerberos', '1.20', '', True),
]

# qtgamepad needs recent kernel/libevdev (fails on RHEL 6.x)
# qtwayland fails to build on (some) Centos 7 systems
configopts = '-skip qtgamepad  -skip qtwayland'

# make sure QtWebEngine component is being built & installed
check_qtwebengine = True

moduleclass = 'devel'
