zstd package: use make instead of CMake (#25610)

zstd doesn't use -pthread for the static lib anymore, so gcc should be fine
This commit is contained in:
Harmen Stoppels 2021-08-26 17:30:30 +02:00 committed by GitHub
parent 270cbf08e3
commit e602c40d09
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 29 deletions

View File

@ -129,10 +129,7 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage):
depends_on('isl@0.15:', when='@10:')
depends_on('zlib', when='@6:')
# GCC only tries to link with -lzstd but it requires
# -pthread too when linking against libzstd.a, so
# disable multithreading by default
depends_on('zstd~multithread', when='@10:')
depends_on('zstd', when='@10:')
depends_on('diffutils', type='build')
depends_on('iconv', when='platform=darwin')
depends_on('gnat', when='languages=ada')

View File

@ -6,7 +6,7 @@
from spack import *
class Zstd(CMakePackage):
class Zstd(MakefilePackage):
"""Zstandard, or zstd as short version, is a fast lossless compression
algorithm, targeting real-time compression scenarios at zlib-level and
better compression ratios."""
@ -15,8 +15,6 @@ class Zstd(CMakePackage):
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')
@ -33,28 +31,18 @@ class Zstd(CMakePackage):
version('1.3.0', sha256='0fdba643b438b7cbce700dcc0e7b3e3da6d829088c63757a5984930e2f70b348')
version('1.1.2', sha256='980b8febb0118e22f6ed70d23b5b3e600995dbf7489c1f6d6122c1411cdda8d8')
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')
variant('multithread', default=True, description='Build with pthread support')
variant('programs', default=False, description='Build executables')
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='+programs')
depends_on('lzma', when='+programs')
depends_on('lz4', when='+programs')
depends_on('zlib', when='+zlib')
depends_on('lzma', when='+lzma')
depends_on('lz4', when='+lz4')
def build(self, spec, prefix):
make('-C', 'lib')
if spec.variants['programs'].value:
make('-C', 'programs')
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'),
self.define_from_variant('ZSTD_MULTITHREAD_SUPPORT', 'multithread')
]
def install(self, spec, prefix):
make('-C', 'lib', 'install', 'PREFIX={0}'.format(prefix))
if spec.variants['programs'].value:
make('-C', 'programs', 'install', 'PREFIX={0}'.format(prefix))