
* fix remaining flake8 errors * imports: sort imports everywhere in Spack We enabled import order checking in #23947, but fixing things manually drives people crazy. This used `spack style --fix --all` from #24071 to automatically sort everything in Spack so PR submitters won't have to deal with it. This should go in after #24071, as it assumes we're using `isort`, not `flake8-import-order` to order things. `isort` seems to be more flexible and allows `llnl` mports to be in their own group before `spack` ones, so this seems like a good switch.
112 lines
4.2 KiB
Python
112 lines
4.2 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)
|
|
|
|
|
|
import os
|
|
|
|
from spack import *
|
|
|
|
|
|
class Libpeas(AutotoolsPackage):
|
|
"""libpeas is a gobject-based plugins engine, and is targeted at
|
|
giving every application the chance to assume its own
|
|
extensibility."""
|
|
|
|
homepage = "http://developer.gnome.org/libpeas/stable"
|
|
url = 'https://download.gnome.org/sources/libpeas/1.22/libpeas-1.22.0.tar.xz'
|
|
|
|
version('1.22.0', sha256='5b2fc0f53962b25bca131a5ec0139e6fef8e254481b6e777975f7a1d2702a962')
|
|
|
|
depends_on('m4', type='build')
|
|
depends_on('autoconf', type='build')
|
|
depends_on('automake', type='build')
|
|
depends_on('libtool', type='build')
|
|
depends_on('gettext', type='build')
|
|
depends_on('pkgconfig', type='build')
|
|
depends_on('atk')
|
|
depends_on('intltool@0.40.0:')
|
|
depends_on('xmlto', type='build')
|
|
depends_on('perl', type='build')
|
|
depends_on('perl-xml-parser', type='build')
|
|
depends_on('glib@2.10:')
|
|
depends_on('gobject-introspection')
|
|
depends_on('libffi')
|
|
depends_on('gtkplus')
|
|
depends_on('gdk-pixbuf')
|
|
depends_on('pango')
|
|
depends_on('gnome-common')
|
|
depends_on('py-pygobject@3:', type='build')
|
|
depends_on('python@3:3.7.9', type='build')
|
|
|
|
def url_for_version(self, version):
|
|
url = 'https://download.gnome.org/sources/libpeas/'
|
|
url += '{0}/libpeas-{1}.tar.xz'
|
|
return url.format(version.up_to(2), version)
|
|
|
|
def setup_dependent_build_environment(self, env, dependent_spec):
|
|
env.prepend_path('XDG_DATA_DIRS', self.prefix.share)
|
|
|
|
def setup_dependent_run_environment(self, env, dependent_spec):
|
|
env.prepend_path('XDG_DATA_DIRS', self.prefix.share)
|
|
|
|
def setup_build_environment(self, env):
|
|
# Let
|
|
#
|
|
# python = self.spec['python']
|
|
# prefix = python.prefix
|
|
# pyversion = python.version.up_to(2)
|
|
# python_lib_path = os.path.join(prefix, 'Frameworks',
|
|
# 'Python.framework', 'Versions',
|
|
# pyversion)
|
|
#
|
|
# self.spec['python'].libs.ld_flags returns (on macOS)
|
|
# '-L{0} -lPython'.format(python_lib_path)
|
|
#
|
|
# e.g., for python@3.7.4 on macOS via Homebrew, python_lib_path is
|
|
# /usr/local/opt/python/Frameworks/Python.framework/Versions/3.7
|
|
#
|
|
# This directory is correct for many purposes, but libpeas uses the
|
|
# link flag '-lpython{0}m'.format(pyversion) and does not use an
|
|
# appropriate -L flag to locate this library, so the correct -L flag
|
|
# must be appended to LDFLAGS. Furthermore, this library is not found
|
|
# in python_lib_path. However, pkg-config returns the correct
|
|
# directory, so pkg-config is used to generate the correct paths for
|
|
# LDFLAGS.
|
|
pkg_config = which('pkg-config')
|
|
python_prefix = self.spec['python'].prefix.lib.pkgconfig
|
|
python_pc_file = os.path.join(python_prefix, 'python3.pc')
|
|
python_ldflags = pkg_config('--libs', python_pc_file, output=str)
|
|
|
|
env.append_path('LDFLAGS', python_ldflags)
|
|
env.prepend_path('XDG_DATA_DIRS', self.prefix.share)
|
|
|
|
def setup_run_environment(self, env):
|
|
env.prepend_path('XDG_DATA_DIRS', self.prefix.share)
|
|
|
|
def autoreconf(self, spec, prefix):
|
|
autoreconf_args = ['-ivf']
|
|
aclocal_pkg_list = ['pkgconfig',
|
|
'gettext',
|
|
'intltool',
|
|
'glib',
|
|
'gobject-introspection',
|
|
'gnome-common',
|
|
'gtkplus']
|
|
aclocal_path = os.path.join('share', 'aclocal')
|
|
|
|
for pkg in aclocal_pkg_list:
|
|
autoreconf_args += ['-I',
|
|
os.path.join(spec[pkg].prefix, aclocal_path)]
|
|
|
|
autoreconf = which('autoreconf')
|
|
autoreconf(*autoreconf_args)
|
|
|
|
def configure_args(self):
|
|
args = ['--disable-silent-rules',
|
|
'--enable-gtk',
|
|
'--enable-python3',
|
|
'--disable-python2']
|
|
return args
|