summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/py-pyside/package.py
diff options
context:
space:
mode:
Diffstat (limited to 'var/spack/repos/builtin/packages/py-pyside/package.py')
-rw-r--r--var/spack/repos/builtin/packages/py-pyside/package.py45
1 files changed, 45 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/py-pyside/package.py b/var/spack/repos/builtin/packages/py-pyside/package.py
new file mode 100644
index 0000000000..ffa433e18e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pyside/package.py
@@ -0,0 +1,45 @@
+from spack import *
+import os
+
+class PyPyside(Package):
+ """Python bindings for Qt."""
+ homepage = "https://pypi.python.org/pypi/pyside"
+ url = "https://pypi.python.org/packages/source/P/PySide/PySide-1.2.2.tar.gz"
+
+ version('1.2.2', 'c45bc400c8a86d6b35f34c29e379e44d')
+
+ # TODO: make build dependency
+ # depends_on("cmake")
+
+ extends('python')
+ depends_on('py-setuptools')
+ depends_on('qt@:4')
+
+ def patch(self):
+ """Undo PySide RPATH handling and add Spack RPATH."""
+ # Figure out the special RPATH
+ pypkg = self.spec['python'].package
+ rpath = self.rpath
+ rpath.append(os.path.join(self.prefix, pypkg.site_packages_dir, 'PySide'))
+
+ # Add Spack's standard CMake args to the sub-builds.
+ # They're called BY setup.py so we have to patch it.
+ filter_file(
+ r'OPTION_CMAKE,',
+ r'OPTION_CMAKE, ' + (
+ '"-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=FALSE", '
+ '"-DCMAKE_INSTALL_RPATH=%s",' % ':'.join(rpath)),
+ 'setup.py')
+
+ # PySide tries to patch ELF files to remove RPATHs
+ # Disable this and go with the one we set.
+ filter_file(
+ r'^\s*rpath_cmd\(pyside_path, srcpath\)',
+ r'#rpath_cmd(pyside_path, srcpath)',
+ 'pyside_postinstall.py')
+
+
+ def install(self, spec, prefix):
+ python('setup.py', 'install',
+ '--prefix=%s' % prefix,
+ '--jobs=%s' % make_jobs)