Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,7 @@ dependencies = [
('expecttest', '0.1.5'),
('networkx', '3.1'),
('sympy', '1.12'),
('Z3', '4.12.2', '-Python-%(pyver)s'),
('Z3', '4.12.2'),
]

use_pip = True
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,7 @@ dependencies = [
('expecttest', '0.1.5'),
('networkx', '3.1'),
('sympy', '1.12'),
('Z3', '4.12.2', '-Python-%(pyver)s'),
('Z3', '4.12.2',),
]

use_pip = True
Expand Down

This file was deleted.

38 changes: 27 additions & 11 deletions easybuild/easyconfigs/z/Z3/Z3-4.12.2-GCCcore-12.3.0.eb
Original file line number Diff line number Diff line change
@@ -1,35 +1,51 @@
easyblock = 'CMakeMake'
easyblock = 'PythonBundle'
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the reason this is a Python* Bundle* not a PythonPackage ? It only has a (single) Pythonpackage, doesn't it?

Maybe we can change/fix that in a followup. It just sticks out here.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Flamefire because then z3-solver is shown as an extension of the Z3 module, in case users search specifically for that name


name = 'Z3'
version = '4.12.2'

homepage = 'https://github.com/Z3Prover/z3'
description = """
Z3 is a theorem prover from Microsoft Research.
description = """Z3 is a theorem prover from Microsoft Research with support for bitvectors,
booleans, arrays, floating point numbers, strings, and other data types. This
module includes z3-solver, the Python interface of Z3.
"""

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

source_urls = ['https://github.com/Z3Prover/z3/archive/']
sources = [SOURCELOWER_TAR_GZ]
checksums = [
{'z3-4.12.2.tar.gz': '9f58f3710bd2094085951a75791550f547903d75fe7e2fcb373c5f03fc761b8f'},
]

builddependencies = [
('CMake', '3.26.3'),
('binutils', '2.40'),
]

dependencies = [
('Python', '3.11.3'),
('GMP', '6.2.1'),
]

configopts = '-DZ3_USE_LIB_GMP=ON -DZ3_LINK_TIME_OPTIMIZATION=ON '
use_pip = True

_fix_parallelism = """sed -i 's/str(multiprocessing.cpu_count())/"%(parallel)s"/' setup.py && """
_enable_gmp = """sed -i "s/Z3_USE_LIB_GMP.*/Z3_USE_LIB_GMP' : True,/" setup.py && """

exts_list = [
('z3-solver', version + '.0', {
'modulename': 'z3',
'checksums': ['65ab47a0a8ef0bfb80db0670775beb11b32c3c0ae4b35943e44121f4af7ef411'],
'preinstallopts': _fix_parallelism + _enable_gmp,
}),
]

# make Z3 headers and libraries accessible in their usual location
local_z3_site_path = "lib/python%(pyshortver)s/site-packages/%(namelower)s"
postinstallcmds = [
'ln -s %s/include "%%(installdir)s/include"' % local_z3_site_path,
'cd "%%(installdir)s"; for lib in %s/lib/*; do ln -s ../$lib lib/$(basename $lib); done' % local_z3_site_path
]

sanity_pip_check = True

sanity_check_paths = {
'files': ['bin/z3', 'include/z3_api.h', 'lib/libz3.%s' % SHLIB_EXT],
'dirs': [],
'dirs': ['include', 'lib/python%(pyshortver)s/site-packages'],
}

moduleclass = 'tools'