From 70bb1f1707b5f6ce8a0c79a2cf51a8f27b9dc67f Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Wed, 24 Aug 2016 14:39:05 -0500 Subject: Reduce number of variants, just use system or no-system libs --- var/spack/repos/builtin/packages/cmake/package.py | 43 ++++++++---------- .../repos/builtin/packages/libarchive/package.py | 51 +++++----------------- 2 files changed, 30 insertions(+), 64 deletions(-) (limited to 'var') diff --git a/var/spack/repos/builtin/packages/cmake/package.py b/var/spack/repos/builtin/packages/cmake/package.py index 4e2c37993c..19b9b45d17 100644 --- a/var/spack/repos/builtin/packages/cmake/package.py +++ b/var/spack/repos/builtin/packages/cmake/package.py @@ -42,25 +42,19 @@ class Cmake(Package): version('3.0.2', 'db4c687a31444a929d2fdc36c4dfb95f') version('2.8.10.2', '097278785da7182ec0aea8769d06860c') - variant('curl', default=True, description='Build external curl library') - variant('expat', default=True, description='Build external expat library') - # variant('jsoncpp', default=True, description='Build external jsoncpp library') # NOQA: ignore=E501 - variant('zlib', default=True, description='Build external zlib library') - variant('bzip2', default=True, description='Build external bzip2 library') - variant('xz', default=True, description='Build external lzma library') - variant('archive', default=True, description='Build external archive library') + variant('ownlibs', default=False, description='Use CMake-provided third-party libraries') variant('qt', default=False, description='Enables the build of cmake-gui') variant('doc', default=False, description='Enables the generation of html and man page documentation') variant('openssl', default=True, description="Enables CMake's OpenSSL features") variant('ncurses', default=True, description='Enables the build of the ncurses gui') - depends_on('curl', when='+curl') - depends_on('expat', when='+expat') - # depends_on('jsoncpp', when='+jsoncpp') # circular dependency - depends_on('zlib', when='+zlib') - depends_on('bzip2', when='+bzip2') - depends_on('xz', when='+xz') - depends_on('libarchive', when='+archive') + depends_on('curl', when='~ownlibs') + depends_on('expat', when='~ownlibs') + # depends_on('jsoncpp', when='~ownlibs') # circular dependency + depends_on('zlib', when='~ownlibs') + depends_on('bzip2', when='~ownlibs') + depends_on('xz', when='~ownlibs') + depends_on('libarchive', when='~ownlibs') depends_on('qt', when='+qt') depends_on('python@2.7.11:', when='+doc', type='build') depends_on('py-sphinx', when='+doc', type='build') @@ -92,22 +86,21 @@ class Cmake(Package): # Consistency check self.validate(spec) - def variant_to_bool(variant): - return 'system' if variant in spec else 'no-system' - - # configure, build, install: options = [ '--prefix={0}'.format(prefix), '--parallel={0}'.format(make_jobs), - '--{0}-curl'.format(variant_to_bool('+curl')), - '--{0}-expat'.format(variant_to_bool('+expat')), - '--{0}-jsoncpp'.format(variant_to_bool('+jsoncpp')), - '--{0}-zlib'.format(variant_to_bool('+zlib')), - '--{0}-bzip2'.format(variant_to_bool('+bzip2')), - '--{0}-liblzma'.format(variant_to_bool('+xz')), - '--{0}-libarchive'.format(variant_to_bool('+archive')) + # jsoncpp requires CMake to build + # use CMake-provided library to avoid circular dependency + '--no-system-jsoncpp' ] + if '+ownlibs' in spec: + # Build and link to the CMake-provided third-party libraries + options.append('--no-system-libs') + else: + # Build and link to the Spack-installed third-party libraries + options.append('--system-libs') + if '+qt' in spec: options.append('--qt-gui') else: diff --git a/var/spack/repos/builtin/packages/libarchive/package.py b/var/spack/repos/builtin/packages/libarchive/package.py index 387af47b26..6278563875 100644 --- a/var/spack/repos/builtin/packages/libarchive/package.py +++ b/var/spack/repos/builtin/packages/libarchive/package.py @@ -28,6 +28,7 @@ from spack import * class Libarchive(Package): """libarchive: C library and command-line tools for reading and writing tar, cpio, zip, ISO, and other archive formats.""" + homepage = "http://www.libarchive.org" url = "http://www.libarchive.org/downloads/libarchive-3.1.2.tar.gz" @@ -36,47 +37,19 @@ class Libarchive(Package): version('3.1.1', '1f3d883daf7161a0065e42a15bbf168f') version('3.1.0', '095a287bb1fd687ab50c85955692bf3a') - variant('zlib', default=True, description='Build support for gzip through zlib') - variant('bzip2', default=True, description='Build support for bzip2 through bz2lib') - variant('lzma', default=True, description='Build support for lzma through lzmadec') - variant('lz4', default=True, description='Build support for lz4 through liblz4') - variant('xz', default=True, description='Build support for xz through lzma') - variant('lzo', default=True, description='Build support for lzop through liblzo2') - variant('nettle', default=True, description='Build with crypto support from Nettle') - variant('openssl', default=True, description='Build support for mtree and xar hashes through openssl') - variant('libxml2', default=True, description='Build support for xar through libxml2') - variant('expat', default=True, description='Build support for xar through expat') - - depends_on('zlib', when='+zlib') - depends_on('bzip2', when='+bzip2') - depends_on('lzma', when='+lzma') - depends_on('lz4', when='+lz4') - depends_on('xz', when='+xz') - depends_on('lzo', when='+lzo') - depends_on('nettle', when='+nettle') - depends_on('openssl', when='+openssl') - depends_on('libxml2', when='+libxml2') - depends_on('expat', when='+expat') + depends_on('zlib') + depends_on('bzip2') + depends_on('lzma') + depends_on('lz4') + depends_on('xz') + depends_on('lzo') + depends_on('nettle') + depends_on('openssl') + depends_on('libxml2') + depends_on('expat') def install(self, spec, prefix): - def variant_to_bool(variant): - return 'with' if variant in spec else 'without' - - config_args = [ - '--prefix={0}'.format(prefix), - '--{0}-zlib'.format(variant_to_bool('+zlib')), - '--{0}-bz2lib'.format(variant_to_bool('+bzip2')), - '--{0}-lzmadec'.format(variant_to_bool('+lzma')), - '--{0}-lz4'.format(variant_to_bool('+lz4')), - '--{0}-lzma'.format(variant_to_bool('+xz')), - '--{0}-lzo2'.format(variant_to_bool('+lzo')), - '--{0}-nettle'.format(variant_to_bool('+nettle')), - '--{0}-openssl'.format(variant_to_bool('+openssl')), - '--{0}-xml2'.format(variant_to_bool('+libxml2')), - '--{0}-expat'.format(variant_to_bool('+expat')) - ] - - configure(*config_args) + configure('--prefix={0}'.format(prefix)) make() # make('check') # cannot build test suite with Intel compilers -- cgit v1.2.3-60-g2f50