75 lines
3.1 KiB
Python
75 lines
3.1 KiB
Python
# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
|
|
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
|
#
|
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
|
|
|
from spack import *
|
|
|
|
|
|
class LibjpegTurbo(Package):
|
|
"""libjpeg-turbo is a fork of the original IJG libjpeg which uses SIMD to
|
|
accelerate baseline JPEG compression and decompression. libjpeg is a
|
|
library that implements JPEG image encoding, decoding and
|
|
transcoding."""
|
|
# https://github.com/libjpeg-turbo/libjpeg-turbo/blob/master/BUILDING.md
|
|
homepage = "https://libjpeg-turbo.org/"
|
|
url = "https://github.com/libjpeg-turbo/libjpeg-turbo/archive/2.0.3.tar.gz"
|
|
|
|
version('2.0.3', sha256='a69598bf079463b34d45ca7268462a18b6507fdaa62bb1dfd212f02041499b5d')
|
|
version('2.0.2', sha256='b45255bd476c19c7c6b198c07c0487e8b8536373b82f2b38346b32b4fa7bb942')
|
|
version('1.5.90', sha256='cb948ade92561d8626fd7866a4a7ba3b952f9759ea3dd642927bc687470f60b7')
|
|
version('1.5.3', sha256='1a17020f859cb12711175a67eab5c71fc1904e04b587046218e36106e07eabde')
|
|
version('1.5.0', sha256='232280e1c9c3e6a1de95fe99be2f7f9c0362ee08f3e3e48d50ee83b9a2ed955b')
|
|
version('1.3.1', sha256='5008aeeac303ea9159a0ec3ccff295434f4e63b05aed4a684c9964d497304524')
|
|
|
|
provides('jpeg')
|
|
|
|
# Can use either of these. But in the current version of the package
|
|
# only nasm is used. In order to use yasm an environmental variable
|
|
# NASM must be set.
|
|
# TODO: Implement the selection between two supported assemblers.
|
|
# depends_on('yasm', type='build')
|
|
depends_on('nasm', type='build')
|
|
depends_on('autoconf', type='build', when='@1.3.1:1.5.3')
|
|
depends_on('automake', type='build', when='@1.3.1:1.5.3')
|
|
depends_on('libtool', type='build', when='@1.3.1:1.5.3')
|
|
depends_on('cmake', type='build', when='@1.5.90:')
|
|
|
|
@property
|
|
def libs(self):
|
|
return find_libraries('libjpeg*', root=self.prefix, recursive=True)
|
|
|
|
def flag_handler(self, name, flags):
|
|
if self.spec.satisfies('@1.5.90:'):
|
|
return (None, None, flags)
|
|
else:
|
|
# compiler flags for earlier version are injected into the
|
|
# spack compiler wrapper
|
|
return (flags, None, None)
|
|
|
|
def flags_to_build_system_args(self, flags):
|
|
# This only handles cflags, other flags are discarded
|
|
cmake_flag_args = []
|
|
if 'cflags' in flags and flags['cflags']:
|
|
cmake_flag_args.append('-DCMAKE_C_FLAGS={0}'.format(
|
|
' '.join(flags['cflags'])))
|
|
self.cmake_flag_args = cmake_flag_args
|
|
|
|
@when('@1.3.1:1.5.3')
|
|
def install(self, spec, prefix):
|
|
autoreconf('-ifv')
|
|
configure('--prefix=%s' % prefix)
|
|
make()
|
|
make('install')
|
|
|
|
@when('@1.5.90:')
|
|
def install(self, spec, prefix):
|
|
cmake_args = ['-GUnix Makefiles']
|
|
if hasattr(self, 'cmake_flag_args'):
|
|
cmake_args.extend(self.cmake_flag_args)
|
|
cmake_args.extend(std_cmake_args)
|
|
with working_dir('spack-build', create=True):
|
|
cmake('..', *cmake_args)
|
|
make()
|
|
make('install')
|