
- [x] add `concretize.lp`, `spack.yaml`, etc. to licensed files - [x] update all licensed files to say 2013-2021 using `spack license update-copyright-year` - [x] appease mypy with some additions to package.py that needed for oneapi.py
36 lines
1.4 KiB
Python
36 lines
1.4 KiB
Python
# Copyright 2013-2021 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 Libffi(AutotoolsPackage, SourcewarePackage):
|
|
"""The libffi library provides a portable, high level programming
|
|
interface to various calling conventions. This allows a programmer
|
|
to call any function specified by a call interface description at
|
|
run time."""
|
|
homepage = "https://sourceware.org/libffi/"
|
|
sourceware_mirror_path = "libffi/libffi-3.2.1.tar.gz"
|
|
|
|
version('3.3', sha256='72fba7922703ddfa7a028d513ac15a85c8d54c8d67f55fa5a4802885dc652056')
|
|
version('3.2.1', sha256='d06ebb8e1d9a22d19e38d63fdb83954253f39bedc5d46232a05645685722ca37')
|
|
|
|
patch('clang-powerpc-3.2.1.patch', when='@3.2.1%clang platform=linux')
|
|
# ref.: https://github.com/libffi/libffi/pull/561
|
|
patch('powerpc-3.3.patch', when='@3.3')
|
|
|
|
@property
|
|
def headers(self):
|
|
# The headers are probably in self.prefix.lib but we search everywhere
|
|
return find_headers('ffi', self.prefix, recursive=True)
|
|
|
|
def configure_args(self):
|
|
args = []
|
|
if self.spec.version >= Version('3.3'):
|
|
# Spack adds its own target flags, so tell libffi not to
|
|
# second-guess us
|
|
args.append('--without-gcc-arch')
|
|
return args
|