z3: update package to use CMake build system (#24337)
The Z3 solver provides a Z3Config.cmake file when built using the CMake build system. This submission changes the package build system to inherit the CMakePackage type. In addition to changing the build system, this submission: - Adds the GMP variant - Removes v4.4.0 and v4.4.1 as CMake was implemented starting with v4.5.0
This commit is contained in:
parent
5692c15e3a
commit
d31d339bf6
@ -7,7 +7,7 @@
|
|||||||
from spack import *
|
from spack import *
|
||||||
|
|
||||||
|
|
||||||
class Z3(MakefilePackage):
|
class Z3(CMakePackage):
|
||||||
"""Z3 is a theorem prover from Microsoft Research.
|
"""Z3 is a theorem prover from Microsoft Research.
|
||||||
It is licensed under the MIT license."""
|
It is licensed under the MIT license."""
|
||||||
|
|
||||||
@ -18,37 +18,26 @@ class Z3(MakefilePackage):
|
|||||||
version('4.8.8', sha256='6962facdcdea287c5eeb1583debe33ee23043144d0e5308344e6a8ee4503bcff')
|
version('4.8.8', sha256='6962facdcdea287c5eeb1583debe33ee23043144d0e5308344e6a8ee4503bcff')
|
||||||
version('4.8.7', sha256='8c1c49a1eccf5d8b952dadadba3552b0eac67482b8a29eaad62aa7343a0732c3')
|
version('4.8.7', sha256='8c1c49a1eccf5d8b952dadadba3552b0eac67482b8a29eaad62aa7343a0732c3')
|
||||||
version('4.5.0', sha256='aeae1d239c5e06ac183be7dd853775b84698db1265cb2258e5918a28372d4a0c')
|
version('4.5.0', sha256='aeae1d239c5e06ac183be7dd853775b84698db1265cb2258e5918a28372d4a0c')
|
||||||
version('4.4.1', sha256='50967cca12c5c6e1612d0ccf8b6ebf5f99840a783d6cf5216336a2b59c37c0ce')
|
|
||||||
version('4.4.0', sha256='65b72f9eb0af50949e504b47080fb3fc95f11c435633041d9a534473f3142cba')
|
|
||||||
|
|
||||||
phases = ['bootstrap', 'build', 'install']
|
|
||||||
|
|
||||||
variant('python', default=True, description='Enable python binding')
|
variant('python', default=True, description='Enable python binding')
|
||||||
depends_on('python', type=('build', 'run'))
|
depends_on('python', type='build', when='~python')
|
||||||
|
depends_on('python', type=('build', 'run'), when='+python')
|
||||||
depends_on('py-setuptools', type=('run'), when='+python')
|
depends_on('py-setuptools', type=('run'), when='+python')
|
||||||
extends('python', when='+python')
|
extends('python', when='+python')
|
||||||
|
|
||||||
|
variant('gmp', default=False, description='GNU multiple precision library support')
|
||||||
|
depends_on('cmake@3.4:', type='build')
|
||||||
|
depends_on('gmp', when='+gmp', type=('build', 'link'))
|
||||||
|
|
||||||
# Referenced: https://github.com/Z3Prover/z3/issues/1016
|
# Referenced: https://github.com/Z3Prover/z3/issues/1016
|
||||||
patch('fix_1016_1.patch', when='@:4.4.1')
|
|
||||||
patch('fix_1016_2.patch', when='@4.5.0')
|
patch('fix_1016_2.patch', when='@4.5.0')
|
||||||
|
|
||||||
build_directory = 'build'
|
build_directory = 'build'
|
||||||
|
|
||||||
def configure_args(self):
|
def cmake_args(self):
|
||||||
spec = self.spec
|
args = [
|
||||||
|
self.define_from_variant('Z3_USE_LIB_GMP', 'gmp'),
|
||||||
args = []
|
self.define_from_variant('Z3_BUILD_PYTHON_BINDINGS', 'python'),
|
||||||
|
self.define_from_variant('Z3_INSTALL_PYTHON_BINDINGS', 'python')
|
||||||
if spec.satisfies('+python'):
|
]
|
||||||
args.append('--python')
|
|
||||||
args.append(
|
|
||||||
'--pypkgdir=%s' % join_path(
|
|
||||||
prefix.lib,
|
|
||||||
'python%s' % spec['python'].version.up_to(2),
|
|
||||||
'site-packages'))
|
|
||||||
|
|
||||||
return args
|
return args
|
||||||
|
|
||||||
def bootstrap(self, spec, prefix):
|
|
||||||
options = ['--prefix={0}'.format(prefix)] + self.configure_args()
|
|
||||||
spec['python'].command('scripts/mk_make.py', *options)
|
|
||||||
|
Loading…
Reference in New Issue
Block a user