From 9bc5b0cad526f6a2f8757b5f94b8e92a6a3bceae Mon Sep 17 00:00:00 2001 From: Harmen Stoppels Date: Mon, 11 Apr 2022 09:33:15 +0200 Subject: gmp,mpc,mpfr: libs=static,shared variant (#29996) --- var/spack/repos/builtin/packages/gmp/package.py | 11 ++++------- var/spack/repos/builtin/packages/mpc/package.py | 7 ++++++- var/spack/repos/builtin/packages/mpfr/package.py | 11 ++++------- 3 files changed, 14 insertions(+), 15 deletions(-) diff --git a/var/spack/repos/builtin/packages/gmp/package.py b/var/spack/repos/builtin/packages/gmp/package.py index c5f8c2881b..e20489f55f 100644 --- a/var/spack/repos/builtin/packages/gmp/package.py +++ b/var/spack/repos/builtin/packages/gmp/package.py @@ -28,10 +28,8 @@ class Gmp(AutotoolsPackage, GNUMirrorPackage): depends_on('libtool', type='build') depends_on('m4', type='build') - variant('static', default=False, description='Build static library') - variant('shared', default=True, description='Build shared library') - - conflicts('~shared', when='~static', msg='Please select at least one of +static or +shared') + variant('libs', default='shared,static', values=('shared', 'static'), + multi=True, description='Build shared libs, static libs or both') # gmp's configure script seems to be broken; it sometimes misdetects # shared library support. Regenerating it fixes the issue. @@ -49,8 +47,7 @@ class Gmp(AutotoolsPackage, GNUMirrorPackage): def configure_args(self): args = ['--enable-cxx'] - args.extend(self.enable_or_disable('static')) - args.extend(self.enable_or_disable('shared')) - if self.spec.satisfies('+static'): + args += self.enable_or_disable('libs') + if 'libs=static' in self.spec: args.append('--with-pic') return args diff --git a/var/spack/repos/builtin/packages/mpc/package.py b/var/spack/repos/builtin/packages/mpc/package.py index 41eac55fd2..277b1653f6 100644 --- a/var/spack/repos/builtin/packages/mpc/package.py +++ b/var/spack/repos/builtin/packages/mpc/package.py @@ -20,6 +20,9 @@ class Mpc(AutotoolsPackage, GNUMirrorPackage): version('1.0.3', sha256='617decc6ea09889fb08ede330917a00b16809b8db88c29c31bfbb49cbf88ecc3') version('1.0.2', sha256='b561f54d8a479cee3bc891ee52735f18ff86712ba30f036f8b8537bae380c488') + variant('libs', default='shared,static', values=('shared', 'static'), + multi=True, description='Build shared libs, static libs or both') + # Could also be built against mpir instead depends_on('gmp@4.3.2:') depends_on('gmp@5.0.0:', when='@1.1.0:') @@ -29,7 +32,9 @@ class Mpc(AutotoolsPackage, GNUMirrorPackage): def configure_args(self): spec = self.spec - return [ + args = [ '--with-mpfr={0}'.format(spec['mpfr'].prefix), '--with-gmp={0}'.format(spec['gmp'].prefix) ] + args += self.enable_or_disable('libs') + return args diff --git a/var/spack/repos/builtin/packages/mpfr/package.py b/var/spack/repos/builtin/packages/mpfr/package.py index 2d62836da8..7b1b4259f8 100644 --- a/var/spack/repos/builtin/packages/mpfr/package.py +++ b/var/spack/repos/builtin/packages/mpfr/package.py @@ -34,10 +34,8 @@ class Mpfr(AutotoolsPackage, GNUMirrorPackage): depends_on('autoconf-archive', when='@4.0.2:', type='build') depends_on('texinfo', when='@4.1.0', type='build') - variant('static', default=False, description='Build static library') - variant('shared', default=True, description='Build shared library') - - conflicts('~static', when='~shared', msg='Please select at least one of +static or +shared') + variant('libs', default='shared,static', values=('shared', 'static'), + multi=True, description='Build shared libs, static libs or both') force_autoreconf = True @@ -68,8 +66,7 @@ class Mpfr(AutotoolsPackage, GNUMirrorPackage): args = [ '--with-gmp=' + self.spec['gmp'].prefix, ] - args.extend(self.enable_or_disable('static')) - args.extend(self.enable_or_disable('shared')) - if self.spec.satisfies('+static'): + args += self.enable_or_disable('libs') + if 'libs=static' in self.spec: args.append('--with-pic') return args -- cgit v1.2.3-70-g09d2