summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorTodd Gamblin <tgamblin@llnl.gov>2015-01-19 14:06:45 -0800
committerTodd Gamblin <tgamblin@llnl.gov>2015-01-19 14:07:09 -0800
commitb7dacb427d2d9e80778b6c0eec05e0cc64d60859 (patch)
treee415dfb27295e1a48836c3cd0b98db67cde28607 /var
parent0211adbdb6010b403495644aab619ba8a9bed31e (diff)
downloadspack-b7dacb427d2d9e80778b6c0eec05e0cc64d60859.tar.gz
spack-b7dacb427d2d9e80778b6c0eec05e0cc64d60859.tar.bz2
spack-b7dacb427d2d9e80778b6c0eec05e0cc64d60859.tar.xz
spack-b7dacb427d2d9e80778b6c0eec05e0cc64d60859.zip
Qt5 & VTK builds. VTK works with Qt 4 and 5.
Diffstat (limited to 'var')
-rw-r--r--var/spack/packages/qt/package.py76
-rw-r--r--var/spack/packages/vtk/package.py40
2 files changed, 101 insertions, 15 deletions
diff --git a/var/spack/packages/qt/package.py b/var/spack/packages/qt/package.py
index 01f9de7f3c..4f82a9d9d6 100644
--- a/var/spack/packages/qt/package.py
+++ b/var/spack/packages/qt/package.py
@@ -3,7 +3,16 @@ from spack import *
class Qt(Package):
"""Qt is a comprehensive cross-platform C++ application framework."""
homepage = "http://qt.io"
+ list_url = 'http://download.qt-project.org/official_releases/qt/'
+ list_depth = 2
+ version('5.4.0', 'e8654e4b37dd98039ba20da7a53877e6',
+ url='http://download.qt-project.org/official_releases/qt/5.4/5.4.0/single/qt-everywhere-opensource-src-5.4.0.tar.gz')
+ version('5.3.2', 'febb001129927a70174467ecb508a682',
+ url='http://download.qt.io/archive/qt/5.3/5.3.2/single/qt-everywhere-opensource-src-5.3.2.tar.gz')
+
+ version('5.2.1', 'a78408c887c04c34ce615da690e0b4c8',
+ url='http://download.qt.io/archive/qt/5.2/5.2.1/single/qt-everywhere-opensource-src-5.2.1.tar.gz')
version('4.8.6', '2edbe4d6c2eff33ef91732602f3518eb',
url="http://download.qt-project.org/official_releases/qt/4.8/4.8.6/qt-everywhere-opensource-src-4.8.6.tar.gz")
@@ -20,25 +29,62 @@ class Qt(Package):
depends_on("libmng")
depends_on("jpeg")
+ depends_on("gperf") # Needed to build Qt with webkit.
+
def patch(self):
+ if self.spec.satisfies('@4'):
+ qmake_conf = 'mkspecs/common/g++-base.conf'
+ elif self.spec.satisfies('@5'):
+ qmake_conf = 'qtbase/mkspecs/common/g++-base.conf'
+ else:
+ return
+
# Fix qmake compilers in the default mkspec
- qmake_conf = 'mkspecs/common/g++-base.conf'
- filter_file(r'^QMAKE_CC *=.*$', 'QMAKE_CC = cc', qmake_conf)
- filter_file(r'^QMAKE_CXX *=.*$', 'QMAKE_CXX = c++', qmake_conf)
+ filter_file(r'^QMAKE_COMPILER *=.*$', 'QMAKE_COMPILER = cc', qmake_conf)
+ filter_file(r'^QMAKE_CC *=.*$', 'QMAKE_CC = cc', qmake_conf)
+ filter_file(r'^QMAKE_CXX *=.*$', 'QMAKE_CXX = c++', qmake_conf)
- def install(self, spec, prefix):
- configure('-v',
- '-confirm-license',
- '-opensource',
- '-prefix', prefix,
- '-openssl-linked',
- '-dbus-linked',
- '-fast',
- '-optimized-qmake',
- '-no-pch',
- '-no-phonon',
+ @property
+ def common_config_args(self):
+ return [
+ '-prefix', self.prefix,
+ '-v',
+ '-opensource',
+ "-release",
+ '-shared',
+ '-confirm-license',
+ '-openssl-linked',
+ '-dbus-linked',
+ '-optimized-qmake',
+ '-no-openvg',
+ '-no-pch',
+ # For now, disable all the database drivers
+ "-no-sql-db2", "-no-sql-ibase", "-no-sql-mysql", "-no-sql-oci", "-no-sql-odbc",
+ "-no-sql-psql", "-no-sql-sqlite", "-no-sql-sqlite2", "-no-sql-tds",
+ # NIS is deprecated in more recent glibc
+ "-no-nis"]
+
+
+ @when('@4')
+ def configure(self):
+ configure('-no-phonon',
'-no-phonon-backend',
- '-no-openvg')
+ '-fast',
+ *self.common_config_args)
+
+
+ @when('@5')
+ def configure(self):
+ configure('-no-eglfs',
+ '-no-directfb',
+ '-qt-xcb',
+ # If someone wants to get a webkit build working, be my guest!
+ '-skip', 'qtwebkit',
+ *self.common_config_args)
+
+
+ def install(self, spec, prefix):
+ self.configure()
make()
make("install")
diff --git a/var/spack/packages/vtk/package.py b/var/spack/packages/vtk/package.py
new file mode 100644
index 0000000000..4a27a8fedb
--- /dev/null
+++ b/var/spack/packages/vtk/package.py
@@ -0,0 +1,40 @@
+from spack import *
+
+class Vtk(Package):
+ """The Visualization Toolkit (VTK) is an open-source, freely
+ available software system for 3D computer graphics, image
+ processing and visualization. """
+ homepage = "http://www.vtk.org"
+ url = "http://www.vtk.org/files/release/6.1/VTK-6.1.0.tar.gz"
+
+ version('6.1.0', '25e4dfb3bad778722dcaec80cd5dab7d')
+
+ depends_on("qt")
+
+ def install(self, spec, prefix):
+ with working_dir('spack-build', create=True):
+ cmake_args = [
+ "..",
+ "-DBUILD_SHARED_LIBS=ON",
+ # Disable wrappers for other languages.
+ "-DVTK_WRAP_PYTHON=OFF",
+ "-DVTK_WRAP_JAVA=OFF",
+ "-DVTK_WRAP_TCL=OFF"]
+ cmake_args.extend(std_cmake_args)
+
+ # Enable Qt support here.
+ cmake_args.extend([
+ "-DQT_QMAKE_EXECUTABLE:PATH=%s/qmake" % spec['qt'].prefix.bin,
+ "-DVTK_Group_Qt:BOOL=ON",
+ # Ignore webkit because it's hard to build w/Qt
+ "-DVTK_Group_Qt=OFF",
+ "-DModule_vtkGUISupportQt:BOOL=ON",
+ "-DModule_vtkGUISupportQtOpenGL:BOOL=ON"
+ ])
+
+ if spec['qt'].satisfies('@5'):
+ cmake_args.append("-DVTK_QT_VERSION:STRING=5")
+
+ cmake(*cmake_args)
+ make()
+ make("install")