Skip to content
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
easyblock = 'PythonBundle'

name = 'PyQt-builder'
version = '1.16.4'

homepage = 'http://www.example.com'
description = """PyQt-builder is the PEP 517 compliant build system for PyQt and projects that
extend PyQt. It extends the SIP build system and uses Qt’s qmake to perform the
actual compilation and installation of extension modules.
"""

toolchain = {'name': 'GCCcore', 'version': '13.2.0'}

builddependencies = [('binutils', '2.40')]
dependencies = [
('Python', '3.11.5'),
('SIP', '6.8.6'),
]

exts_list = [
(name, version, {
'modulename': 'pyqtbuild',
'sources': ['pyqt_builder-%(version)s.tar.gz'],
'checksums': ['4515e41ae379be2e54f88a89ecf47cd6e4cac43e862c4abfde18389c2666afdf'],
}),
]

use_pip = True
sanity_pip_check = True

sanity_check_paths = {
'files': [],
'dirs': ['lib/python%(pyshortver)s/'],
}

moduleclass = 'lang'
113 changes: 113 additions & 0 deletions easybuild/easyconfigs/p/PyQt5/PyQt5-5.15.11-GCCcore-13.2.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
# update 5.15.11, sip6
easyblock = 'PythonBundle'

name = 'PyQt5'
version = '5.15.11'

homepage = 'https://www.riverbankcomputing.com/software/pyqt'
description = """PyQt5 is a set of Python bindings for v5 of the Qt application framework from The Qt Company.
This bundle includes PyQtWebEngine, a set of Python bindings for The Qt Company’s Qt WebEngine framework."""

toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
toolchainopts = {'cstd': 'c++11'}

builddependencies = [
('binutils', '2.40'),
('PyQt-builder', '1.16.4'),
]
dependencies = [
('Python', '3.11.5'),
('Qt5', '5.15.13'),
]
local_sipdir = '%(installdir)s/share/sip'

local_pylibdir = '%(installdir)s/lib/python%(pyshortver)s/site-packages'

local_setup_env = "export PATH=%(installdir)s/bin:$PATH && "
local_setup_env += "export PYTHONPATH=%s:$PYTHONPATH && " % local_pylibdir


local_sip_configopts_common = [
"--no-make",
"--jobs %(parallel)s",
"--qmake-setting 'QMAKE_CXXFLAGS+=$$(CFLAGS)'",
"--qmake-setting 'QMAKE_CFLAGS+=$$(CFLAGS)'",
"--qmake-setting 'QMAKE_LFLAGS+=$$(LDFLAGS)'",
"--api-dir %(installdir)s/qsci",
"--scripts-dir %(installdir)s/bin",
"--target-dir %s" % local_pylibdir,
]

local_pyqt5_configopts = [
"--confirm-license",
"--no-designer-plugin",
"--no-qml-plugin",
] + local_sip_configopts_common

local_pyqtwebengine_configopts = local_sip_configopts_common
default_easyblock = 'PythonPackage'

components = [
('%s_sip' % name, '12.15.0', {
'source_urls': [PYPI_SOURCE],
'sources': [SOURCE_TAR_GZ],
'start_dir': '%(name)s-%(version)s',
'use_pip': True,
'checksums': ['d23fdfcf363b5cedd9d39f8a9c5710e7d52804f5b08a58e91c638b36eafcb702'],
}),
(name, version, {
'source_urls': [PYPI_SOURCE],
'sources': [SOURCE_TAR_GZ],
'easyblock': 'ConfigureMake',
'configure_cmd': 'sip-build',
'start_dir': '%(name)s-%(version)s',
'configure_without_installdir': True,
'preconfigopts': local_setup_env,
'configopts': ' '.join(local_pyqt5_configopts),
'prebuildopts': local_setup_env + "cd build && ",
'preinstallopts': "cd build && ",
'checksums': ['fda45743ebb4a27b4b1a51c6d8ef455c4c1b5d610c90d2934c7802b5c1557c52'],
}),
('PyQtWebEngine', '5.15.7', {
'source_urls': [PYPI_SOURCE],
'sources': [SOURCE_TAR_GZ],
'easyblock': 'ConfigureMake',
'configure_cmd': 'sip-build',
'start_dir': '%(name)s-%(version)s',
'configure_without_installdir': True,
'preconfigopts': local_setup_env,
'configopts': ' '.join(local_pyqtwebengine_configopts),
'prebuildopts': local_setup_env + "cd build && ",
'preinstallopts': "cd build && ",
'checksums': ['f121ac6e4a2f96ac289619bcfc37f64e68362f24a346553f5d6c42efa4228a4d'],
})
]

postinstallcmds = [
'mkdir %(installdir)s/share',
'ln -s --relative %s/%%(name)s/bindings %s' % (local_pylibdir, local_sipdir)
]

sanity_check_paths = {
'files': ['bin/%s' % x for x in [
'pyrcc5', 'pyuic5', 'pylupdate5']],
'dirs': ['lib/python%(pyshortver)s/site-packages', 'qsci'],
}

use_pip = True

sanity_pip_check = True

sanity_check_commands = [
"python -c 'import %(name)s.QtCore'",
"python -c 'import %(name)s.QtWebEngineWidgets'",
"pyuic5 --help",
"pylupdate5 -version 2>&1 | grep 'pylupdate5 v%(version)s'",
"pyrcc5 -version 2>&1 | grep 'pyrcc5 v%(version)s'",
]

modextrapaths = {
'QT_INSTALL_DATA': 'qsci',
}

moduleclass = 'vis'
40 changes: 40 additions & 0 deletions easybuild/easyconfigs/s/SIP/SIP-6.8.6-GCCcore-13.2.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
# update 6.8.3
easyblock = 'PythonPackage'

name = 'SIP'
version = '6.8.6'

homepage = 'http://www.riverbankcomputing.com/software/sip/'
description = """SIP is a tool that makes it very easy to create Python bindings for C and C++ libraries."""

toolchain = {'name': 'GCCcore', 'version': '13.2.0'}

sources = [SOURCELOWER_TAR_GZ]
checksums = ['7fc959e48e6ec5d5af8bd026f69f5e24d08b3cb8abb342176f5ab8030cc07d7a']

builddependencies = [
('binutils', '2.40'),
]
dependencies = [
('Python', '3.11.5'),
('Python-bundle-PyPI', '2023.10'),
('PLY', '3.11'),
]

download_dep_fail = True
use_pip = True

local_tools = ['build', 'distinfo', 'install', 'module', 'sdist', 'wheel']
sanity_check_paths = {
'files': ['bin/sip-%s' % x for x in local_tools],
'dirs': ['lib/python%(pyshortver)s/site-packages/sipbuild'],
}

sanity_pip_check = True

sanity_check_commands = ['sip-%s --help' % x for x in local_tools]

options = {'modulename': 'sipbuild'}

moduleclass = 'lang'