diff options
Diffstat (limited to 'var')
-rw-r--r-- | var/spack/repos/builtin/packages/zstd/package.py | 70 |
1 files changed, 33 insertions, 37 deletions
diff --git a/var/spack/repos/builtin/packages/zstd/package.py b/var/spack/repos/builtin/packages/zstd/package.py index 8911931cbf..9a5d519faf 100644 --- a/var/spack/repos/builtin/packages/zstd/package.py +++ b/var/spack/repos/builtin/packages/zstd/package.py @@ -6,14 +6,23 @@ from spack import * -class Zstd(MakefilePackage): +class Zstd(CMakePackage): """Zstandard, or zstd as short version, is a fast lossless compression algorithm, targeting real-time compression scenarios at zlib-level and better compression ratios.""" homepage = "http://facebook.github.io/zstd/" url = "https://github.com/facebook/zstd/archive/v1.4.3.tar.gz" + git = "https://github.com/facebook/zstd.git" + root_cmakelists_dir = 'build/cmake' + + maintainers = ['haampie'] + + version('develop', branch='dev') + version('1.4.9', sha256='acf714d98e3db7b876e5b540cbf6dee298f60eb3c0723104f6d3f065cd60d6a8') + version('1.4.8', sha256='f176f0626cb797022fbf257c3c644d71c1c747bb74c32201f9203654da35e9fa') + version('1.4.7', sha256='085500c8d0b9c83afbc1dc0d8b4889336ad019eba930c5d6a9c6c86c20c769c8') version('1.4.5', sha256='734d1f565c42f691f8420c8d06783ad818060fc390dee43ae0a89f86d0a4f8c2') version('1.4.4', sha256='a364f5162c7d1a455cc915e8e3cf5f4bd8b75d09bc0f53965b0c9ca1383c52c8') version('1.4.3', sha256='5eda3502ecc285c3c92ee0cc8cd002234dee39d539b3f692997a0e80de1d33de') @@ -23,39 +32,26 @@ class Zstd(MakefilePackage): version('1.3.0', sha256='0fdba643b438b7cbce700dcc0e7b3e3da6d829088c63757a5984930e2f70b348') version('1.1.2', sha256='980b8febb0118e22f6ed70d23b5b3e600995dbf7489c1f6d6122c1411cdda8d8') - variant('pic', default=True, description='Build position independent code') - - depends_on('zlib') - - def setup_build_environment(self, env): - if '+pic' in self.spec: - env.append_flags('CFLAGS', self.compiler.cc_pic_flag) - - def build(self, spec, prefix): - make('PREFIX={0}'.format(prefix)) - - def install(self, spec, prefix): - make('install', 'PREFIX={0}'.format(prefix)) - - def patch(self): - # Remove flags not understood by the NVIDIA compilers - if self.spec.satisfies('%nvhpc'): - filter_file('-fvisibility=hidden', '', 'lib/Makefile') - filter_file('-Wc++-compat', '', 'lib/Makefile', string=True) - filter_file('-Wcast-align', '', 'lib/Makefile') - filter_file('-Wcast-qual', '', 'lib/Makefile') - filter_file('-Wdeclaration-after-statement', '', 'lib/Makefile') - filter_file('-Wextra', '', 'lib/Makefile') - filter_file('-Wfloat-equal', '', 'lib/Makefile') - filter_file('-Wformat=2', '', 'lib/Makefile') - filter_file('-Winit-self', '', 'lib/Makefile') - filter_file('-Wmissing-prototypes', '', 'lib/Makefile') - filter_file('-Wpointer-arith', '', 'lib/Makefile') - filter_file('-Wredundant-decls', '', 'lib/Makefile') - filter_file('-Wshadow', '', 'lib/Makefile') - filter_file('-Wstrict-aliasing=1', '', 'lib/Makefile') - filter_file('-Wstrict-prototypes', '', 'lib/Makefile') - filter_file('-Wswitch-enum', '', 'lib/Makefile') - filter_file('-Wundef', '', 'lib/Makefile') - filter_file('-Wvla', '', 'lib/Makefile') - filter_file('-Wwrite-strings', '', 'lib/Makefile') + variant('shared', default=True, description='Build shared libraries') + variant('static', default=True, description='Build static libraries') + variant('programs', default=True, description='Build executables') + variant('legacy', default=False, description='Enable legacy support') + variant('zlib', default=False, description='Build programs with zlib support') + variant('lzma', default=False, description='Build programs with lzma support') + variant('lz4', default=False, description='Build programs with zlib support') + + conflicts('+zlib', when='~programs', msg="zlib requires programs to be built") + conflicts('+lzma', when='~programs', msg="lzma requires programs to be built") + conflicts('+lz4', when='~programs', msg="lz4 requires programs to be built") + + depends_on('zlib', when='+zlib') + depends_on('lzma', when='+lzma') + depends_on('lz4', when='+lz4') + + def cmake_args(self): + return [ + self.define_from_variant('ZSTD_BUILD_PROGRAMS', 'programs'), + self.define_from_variant('ZSTD_BUILD_STATIC', 'static'), + self.define_from_variant('ZSTD_BUILD_SHARED', 'shared'), + self.define_from_variant('ZSTD_LEGACY_SUPPORT', 'legacy') + ] |