Add SIPPackage base class (#12157)
This commit is contained in:
@@ -16,6 +16,6 @@ class PyGuidata(PythonPackage):
|
||||
version('1.7.5', '915188c02ad3c89951ee260db65d84a7')
|
||||
|
||||
depends_on('py-setuptools', type='build')
|
||||
depends_on('py-pyqt@4:', type=('build', 'run'))
|
||||
depends_on('py-pyqt4', type=('build', 'run'))
|
||||
depends_on('py-spyder@2.0:2.9.9', type=('build', 'run'))
|
||||
depends_on('py-h5py', type=('build', 'run'))
|
||||
|
@@ -28,5 +28,5 @@ class PyPymol(PythonPackage):
|
||||
depends_on('freetype')
|
||||
depends_on('libxml2')
|
||||
depends_on('msgpack-c')
|
||||
depends_on('py-pyqt', type=('build', 'run'))
|
||||
depends_on('py-pyqt4', type=('build', 'run'))
|
||||
depends_on('freeglut')
|
||||
|
@@ -1,30 +0,0 @@
|
||||
# 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 PyPyqt(Package):
|
||||
"""PyQt is a set of Python v2 and v3 bindings for Digia's Qt
|
||||
application framework and runs on all platforms supported by Qt
|
||||
including Windows, MacOS/X and Linux."""
|
||||
homepage = "http://www.riverbankcomputing.com/software/pyqt/intro"
|
||||
url = "http://sourceforge.net/projects/pyqt/files/PyQt4/PyQt-4.11.3/PyQt-x11-gpl-4.11.3.tar.gz"
|
||||
|
||||
version('4.11.3', '997c3e443165a89a559e0d96b061bf70')
|
||||
|
||||
extends('python')
|
||||
depends_on('py-sip', type=('build', 'run'))
|
||||
|
||||
# TODO: allow qt5 when conditional deps are supported.
|
||||
# TODO: Fix version matching so that @4 works like @:4
|
||||
depends_on('qt@:4+phonon+dbus')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
python('configure.py',
|
||||
'--confirm-license',
|
||||
'--destdir=%s' % site_packages_dir)
|
||||
make()
|
||||
make('install')
|
31
var/spack/repos/builtin/packages/py-pyqt4/package.py
Normal file
31
var/spack/repos/builtin/packages/py-pyqt4/package.py
Normal file
@@ -0,0 +1,31 @@
|
||||
# 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 PyPyqt4(SIPPackage):
|
||||
"""PyQt is a set of Python v2 and v3 bindings for The Qt Company's Qt
|
||||
application framework and runs on all platforms supported by Qt including
|
||||
Windows, OS X, Linux, iOS and Android. PyQt4 supports Qt v4 and will build
|
||||
against Qt v5."""
|
||||
|
||||
homepage = "https://www.riverbankcomputing.com/software/pyqt/intro"
|
||||
url = "http://sourceforge.net/projects/pyqt/files/PyQt4/PyQt-4.12.3/PyQt4_gpl_x11-4.12.3.tar.gz"
|
||||
import_modules = ['PyQt4']
|
||||
|
||||
version('4.12.3', sha256='a00f5abef240a7b5852b7924fa5fdf5174569525dc076cd368a566619e56d472')
|
||||
version('4.11.3', '997c3e443165a89a559e0d96b061bf70',
|
||||
url='http://sourceforge.net/projects/pyqt/files/PyQt4/PyQt-4.11.3/PyQt-x11-gpl-4.11.3.tar.gz')
|
||||
|
||||
# Supposedly can also be built with Qt 5 compatibility layer
|
||||
depends_on('qt@:4+phonon+dbus')
|
||||
|
||||
# https://www.riverbankcomputing.com/static/Docs/PyQt4/installation.html
|
||||
def configure_file(self):
|
||||
return 'configure-ng.py'
|
||||
|
||||
def configure_args(self):
|
||||
return ['--pyuic4-interpreter', self.spec['python'].command.path]
|
28
var/spack/repos/builtin/packages/py-pyqt5/package.py
Normal file
28
var/spack/repos/builtin/packages/py-pyqt5/package.py
Normal file
@@ -0,0 +1,28 @@
|
||||
# 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 PyPyqt5(SIPPackage):
|
||||
"""PyQt is a set of Python v2 and v3 bindings for The Qt Company's Qt
|
||||
application framework and runs on all platforms supported by Qt including
|
||||
Windows, OS X, Linux, iOS and Android. PyQt5 supports Qt v5."""
|
||||
|
||||
homepage = "https://www.riverbankcomputing.com/software/pyqt/intro"
|
||||
url = "https://www.riverbankcomputing.com/static/Downloads/PyQt5/5.13.0/PyQt5_gpl-5.13.0.tar.gz"
|
||||
list_url = "https://www.riverbankcomputing.com/software/pyqt/download5"
|
||||
import_modules = ['PyQt5']
|
||||
|
||||
version('5.13.0', sha256='0cdbffe5135926527b61cc3692dd301cd0328dd87eeaf1313e610787c46faff9')
|
||||
|
||||
# Without opengl support, I got the following error:
|
||||
# sip: QOpenGLFramebufferObject is undefined
|
||||
depends_on('qt@5:+opengl')
|
||||
depends_on('python@2.6:', type=('build', 'run'))
|
||||
|
||||
# https://www.riverbankcomputing.com/static/Docs/PyQt5/installation.html
|
||||
def configure_args(self):
|
||||
return ['--pyuic5-interpreter', self.spec['python'].command.path]
|
@@ -19,5 +19,5 @@ class PyPythonqwt(PythonPackage):
|
||||
depends_on('py-setuptools', type='build')
|
||||
depends_on('py-numpy@1.3:', type=('build', 'run'))
|
||||
depends_on('py-sip', type=('build', 'run'))
|
||||
depends_on('py-pyqt@4:', type=('build', 'run'))
|
||||
depends_on('py-pyqt4', type=('build', 'run'))
|
||||
depends_on('py-sphinx@1.1:', type=('build', 'run'), when='+docs')
|
||||
|
@@ -15,4 +15,4 @@ class PyQtpy(PythonPackage):
|
||||
version('1.2.1', 'e2f783fb7f8e502815237bd8d30c6d11')
|
||||
|
||||
depends_on('py-setuptools', type='build')
|
||||
depends_on('py-pyqt@4:', type=('build', 'run'))
|
||||
depends_on('py-pyqt4', type=('build', 'run'))
|
||||
|
@@ -4,26 +4,45 @@
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
|
||||
from spack import *
|
||||
import os
|
||||
|
||||
|
||||
class PySip(Package):
|
||||
"""SIP is a tool that makes it very easy to create Python bindings for C
|
||||
and C++ libraries."""
|
||||
homepage = "http://www.riverbankcomputing.com/software/sip/intro"
|
||||
url = "http://sourceforge.net/projects/pyqt/files/sip/sip-4.16.5/sip-4.16.5.tar.gz"
|
||||
|
||||
homepage = "https://www.riverbankcomputing.com/software/sip/intro"
|
||||
url = "https://www.riverbankcomputing.com/static/Downloads/sip/4.19.18/sip-4.19.18.tar.gz"
|
||||
list_url = "https://www.riverbankcomputing.com/software/sip/download"
|
||||
hg = "https://www.riverbankcomputing.com/hg/sip"
|
||||
|
||||
version('develop', hg=hg) # wasn't actually able to clone this
|
||||
version('4.19.18', sha256='c0bd863800ed9b15dcad477c4017cdb73fa805c25908b0240564add74d697e1e')
|
||||
version('4.19.13', sha256='e353a7056599bf5fbd5d3ff9842a6ab2ea3cf4e0304a0f925ec5862907c0d15e')
|
||||
version('4.16.7', '32abc003980599d33ffd789734de4c36')
|
||||
version('4.16.5', '6d01ea966a53e4c7ae5c5e48c40e49e5')
|
||||
|
||||
extends('python')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
# https://www.riverbankcomputing.com/static/Docs/sip/installation.html
|
||||
phases = ['configure', 'build', 'install']
|
||||
|
||||
depends_on('flex', type='build', when='@develop')
|
||||
depends_on('bison', type='build', when='@develop')
|
||||
|
||||
@run_before('configure')
|
||||
def prepare(self):
|
||||
if self.spec.satisfies('@develop'):
|
||||
python('build.py', 'prepare')
|
||||
|
||||
def configure(self, spec, prefix):
|
||||
python('configure.py',
|
||||
'--destdir=%s' % site_packages_dir,
|
||||
'--bindir=%s' % spec.prefix.bin,
|
||||
'--incdir=%s' % python_include_dir,
|
||||
'--sipdir=%s' % os.path.join(spec.prefix.share, 'sip'))
|
||||
'--bindir={0}'.format(prefix.bin),
|
||||
'--destdir={0}'.format(site_packages_dir),
|
||||
'--incdir={0}'.format(python_include_dir),
|
||||
'--sipdir={0}'.format(prefix.share.sip))
|
||||
|
||||
def build(self, spec, prefix):
|
||||
make()
|
||||
|
||||
def install(self, spec, prefix):
|
||||
make('install')
|
||||
|
@@ -36,7 +36,7 @@ class PySpyder(PythonPackage):
|
||||
depends_on('py-psutil', type=('build', 'run'))
|
||||
depends_on('py-qtawesome@0.4.1:', type=('build', 'run'))
|
||||
depends_on('py-qtpy@1.1.0:', type=('build', 'run'))
|
||||
# technically this is a transitive dependency in order for py-pyqt
|
||||
# technically this is a transitive dependency in order for py-pyqt4
|
||||
# to pick up webkit, but this is the easier solution (see #9207)
|
||||
depends_on('qt+webkit', type=('build', 'run'))
|
||||
depends_on('py-pickleshare', type=('build', 'run'))
|
||||
|
@@ -16,6 +16,6 @@ class PyTuiview(PythonPackage):
|
||||
|
||||
version('1.1.7', '4b3b38a820cc239c8ab4a181ac5d4c30')
|
||||
|
||||
depends_on("py-pyqt", type=('build', 'run'))
|
||||
depends_on("py-pyqt4", type=('build', 'run'))
|
||||
depends_on("py-numpy", type=('build', 'run'))
|
||||
depends_on("gdal")
|
||||
|
Reference in New Issue
Block a user