summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorGlenn Johnson <glenn-johnson@uiowa.edu>2021-11-30 16:14:05 -0600
committerGitHub <noreply@github.com>2021-11-30 15:14:05 -0700
commitbcaa87574d950cf344e7e8c5cdc5adf0603e9b2d (patch)
tree195ec8ad51c1583335ff0818619ecd1f07f1234a /var
parentd57bcc0b852e0c6c080a917ae462b5cf5e1d1cb0 (diff)
downloadspack-bcaa87574d950cf344e7e8c5cdc5adf0603e9b2d.tar.gz
spack-bcaa87574d950cf344e7e8c5cdc5adf0603e9b2d.tar.bz2
spack-bcaa87574d950cf344e7e8c5cdc5adf0603e9b2d.tar.xz
spack-bcaa87574d950cf344e7e8c5cdc5adf0603e9b2d.zip
vtk package: add version 9.1.0; add new dependencies (#27467)
This PR updates the vtk package to use new variable names and adds some dependencies. - add version 9.1.0 - add version 1.4.2 to gl2ps package. This is needed to use gl2ps as a dependency. - new package: utf8cpp, used as a dependency for version 9. - add dependencies when possible - pugixml - libogg - libtheora - utf8cpp - gl2ps - proj - turn off configuring MPI if ~mpi - always use the package-provided FindHDF5.cmake for versions up to 8. Version @9: already does this so does not need a patch. - use new CMake variables for version 9 - remove unused CMake variables depending on version
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/gl2ps/package.py1
-rw-r--r--var/spack/repos/builtin/packages/seacas/package.py2
-rw-r--r--var/spack/repos/builtin/packages/utf8cpp/package.py23
-rw-r--r--var/spack/repos/builtin/packages/vtk/internal_findHDF5.patch16
-rw-r--r--var/spack/repos/builtin/packages/vtk/package.py165
5 files changed, 148 insertions, 59 deletions
diff --git a/var/spack/repos/builtin/packages/gl2ps/package.py b/var/spack/repos/builtin/packages/gl2ps/package.py
index cd8005eb4b..5a5f0f390c 100644
--- a/var/spack/repos/builtin/packages/gl2ps/package.py
+++ b/var/spack/repos/builtin/packages/gl2ps/package.py
@@ -13,6 +13,7 @@ class Gl2ps(CMakePackage):
homepage = "https://www.geuz.org/gl2ps/"
url = "https://geuz.org/gl2ps/src/gl2ps-1.3.9.tgz"
+ version('1.4.2', sha256='8d1c00c1018f96b4b97655482e57dcb0ce42ae2f1d349cd6d4191e7848d9ffe9')
version('1.4.0', sha256='03cb5e6dfcd87183f3b9ba3b22f04cd155096af81e52988cc37d8d8efe6cf1e2')
version('1.3.9', sha256='8a680bff120df8bcd78afac276cdc38041fed617f2721bade01213362bcc3640')
diff --git a/var/spack/repos/builtin/packages/seacas/package.py b/var/spack/repos/builtin/packages/seacas/package.py
index bc2c4d1592..dffdcbfd5f 100644
--- a/var/spack/repos/builtin/packages/seacas/package.py
+++ b/var/spack/repos/builtin/packages/seacas/package.py
@@ -126,6 +126,8 @@ class Seacas(CMakePackage):
'-DTPL_ENABLE_MPI:BOOL=ON',
'-DMPI_BASE_DIR:PATH=%s' % spec['mpi'].prefix,
])
+ else:
+ '-DTPL_ENABLE_MPI:BOOL=OFF'
options.extend([
'-DSEACASProj_ENABLE_TESTS:BOOL=ON',
diff --git a/var/spack/repos/builtin/packages/utf8cpp/package.py b/var/spack/repos/builtin/packages/utf8cpp/package.py
new file mode 100644
index 0000000000..eb05c6ab62
--- /dev/null
+++ b/var/spack/repos/builtin/packages/utf8cpp/package.py
@@ -0,0 +1,23 @@
+# 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 Utf8cpp(Package):
+ """A simple, portable and lightweight generic library for handling UTF-8
+ encoded strings."""
+
+ homepage = "http://utfcpp.sourceforge.net/"
+
+ version('2.3.4', sha256='3373cebb25d88c662a2b960c4d585daf9ae7b396031ecd786e7bb31b15d010ef')
+
+ def url_for_version(self, version):
+ url = "https://sourceforge.net/projects/utfcpp/files/utf8cpp_2x/Release%20{0}/utf8_v{1}.zip"
+ return url.format(version, version.underscored)
+
+ def install(self, spec, prefix):
+ install_tree('doc', prefix.share.doc)
+ install_tree('source', prefix.include)
diff --git a/var/spack/repos/builtin/packages/vtk/internal_findHDF5.patch b/var/spack/repos/builtin/packages/vtk/internal_findHDF5.patch
new file mode 100644
index 0000000000..82775aefbe
--- /dev/null
+++ b/var/spack/repos/builtin/packages/vtk/internal_findHDF5.patch
@@ -0,0 +1,16 @@
+diff -ru a/CMake/FindHDF5.cmake b/CMake/FindHDF5.cmake
+--- a/CMake/FindHDF5.cmake 2019-01-30 11:15:13.000000000 -0600
++++ b/CMake/FindHDF5.cmake 2021-11-15 18:01:39.314264619 -0600
+@@ -3,11 +3,7 @@
+ # (BUG #0014363).
+
+ # include the default FindHDF5.cmake.
+-if(CMAKE_VERSION VERSION_LESS 3.6.1)
+- include(${CMAKE_CURRENT_LIST_DIR}/NewCMake/FindHDF5.cmake)
+-else()
+- include(${CMAKE_ROOT}/Modules/FindHDF5.cmake)
+-endif()
++include(${CMAKE_CURRENT_LIST_DIR}/NewCMake/FindHDF5.cmake)
+
+ if(HDF5_FOUND AND (HDF5_IS_PARALLEL OR HDF5_ENABLE_PARALLEL))
+ include(vtkMPI)
diff --git a/var/spack/repos/builtin/packages/vtk/package.py b/var/spack/repos/builtin/packages/vtk/package.py
index 49de4e28b3..b9ed802806 100644
--- a/var/spack/repos/builtin/packages/vtk/package.py
+++ b/var/spack/repos/builtin/packages/vtk/package.py
@@ -21,6 +21,7 @@ class Vtk(CMakePackage):
maintainers = ['chuckatkins', 'danlipsa']
+ version('9.1.0', sha256='8fed42f4f8f1eb8083107b68eaa9ad71da07110161a3116ad807f43e5ca5ce96')
version('9.0.3', sha256='bc3eb9625b2b8dbfecb6052a2ab091fc91405de4333b0ec68f3323815154ed8a')
version('9.0.1', sha256='1b39a5e191c282861e7af4101eaa8585969a2de05f5646c9199a161213a622c7')
version('9.0.0', sha256='15def4e6f84d72f82386617fe595ec124dda3cbd13ea19a0dcd91583197d8715')
@@ -73,6 +74,9 @@ class Vtk(CMakePackage):
# Broken downstream FindMPI
patch('vtkm-findmpi-downstream.patch', when='@9.0.0')
+ # use internal FindHDF5
+ patch('internal_findHDF5.patch', when='@:8')
+
# The use of the OpenGL2 backend requires at least OpenGL Core Profile
# version 3.2 or higher.
depends_on('gl@3.2:', when='+opengl2')
@@ -115,6 +119,18 @@ class Vtk(CMakePackage):
depends_on('eigen', when='@8.2.0:')
depends_on('double-conversion', when='@8.2.0:')
depends_on('sqlite', when='@8.2.0:')
+ depends_on('pugixml', when='@9:')
+ depends_on('libogg')
+ depends_on('libtheora')
+ depends_on('utf8cpp', when='@9:')
+ depends_on('gl2ps', when='@8.1:')
+ depends_on('gl2ps@1.4.1:', when='@9:')
+ depends_on('proj@4', when='@8.2')
+ depends_on('proj@4:7', when='@9:')
+ depends_on('cgns@4.1.1:+mpi', when='@9.1: +mpi')
+ depends_on('cgns@4.1.1:~mpi', when='@9.1: ~mpi')
+ depends_on('seacas@2021-05-12:+mpi', when='@9.1: +mpi')
+ depends_on('seacas@2021-05-12:~mpi', when='@9.1: ~mpi')
# For finding Fujitsu-MPI wrapper commands
patch('find_fujitsu_mpi.patch', when='@:8.2.0%fj')
@@ -147,38 +163,45 @@ class Vtk(CMakePackage):
# (solves #26314)
'-DCMAKE_INSTALL_LIBDIR:PATH=lib',
- # In general, we disable use of VTK "ThirdParty" libs, preferring
- # spack-built versions whenever possible
- '-DVTK_USE_SYSTEM_LIBRARIES:BOOL=ON',
-
- # However, in a few cases we can't do without them yet
- '-DVTK_USE_SYSTEM_GL2PS:BOOL=OFF',
- '-DVTK_USE_SYSTEM_LIBHARU=OFF',
-
- '-DNETCDF_DIR={0}'.format(spec['netcdf-c'].prefix),
- '-DNETCDF_C_ROOT={0}'.format(spec['netcdf-c'].prefix),
- '-DNETCDF_CXX_ROOT={0}'.format(spec['netcdf-cxx'].prefix),
-
# Allow downstream codes (e.g. VisIt) to override VTK's classes
'-DVTK_ALL_NEW_OBJECT_FACTORY:BOOL=ON',
-
- # Disable wrappers for other languages.
- '-DVTK_WRAP_JAVA=OFF',
- '-DVTK_WRAP_TCL=OFF',
]
- # Some variable names have changed
- if spec.satisfies('@8.2.0:'):
+ # Disable wrappers for other languages.
+ cmake_args.append('-DVTK_WRAP_JAVA=OFF')
+ if spec.satisfies('@:8.1'):
+ cmake_args.append('-DVTK_WRAP_TCL=OFF')
+
+ # In general, we disable use of VTK "ThirdParty" libs, preferring
+ # spack-built versions whenever possible but there are exceptions.
+ if spec.satisfies('@:8'):
cmake_args.extend([
- '-DVTK_USE_SYSTEM_OGG:BOOL=OFF',
- '-DVTK_USE_SYSTEM_THEORA:BOOL=OFF',
- '-DVTK_USE_SYSTEM_LIBPROJ:BOOL=OFF',
- '-DVTK_USE_SYSTEM_PUGIXML:BOOL=OFF',
+ '-DVTK_USE_SYSTEM_LIBRARIES:BOOL=ON',
+ '-DVTK_USE_SYSTEM_LIBHARU=OFF',
])
+ if spec.satisfies('@:8.0'):
+ cmake_args.append('-DVTK_USE_SYSTEM_GL2PS=OFF')
else:
cmake_args.extend([
- '-DVTK_USE_SYSTEM_OGGTHEORA:BOOL=OFF',
+ '-DVTK_USE_EXTERNAL:BOOL=ON',
+ '-DVTK_MODULE_USE_EXTERNAL_VTK_libharu:BOOL=OFF',
+ '-DVTK_MODULE_USE_EXTERNAL_VTK_pegtl:BOOL=OFF',
+ '-DHDF5_ROOT={0}'.format(spec['hdf5'].prefix),
+ ])
+ if spec.satisfies('@9.1:'):
+ cmake_args.extend([
+ '-DVTK_MODULE_USE_EXTERNAL_VTK_exprtk:BOOL=OFF',
+ # uses an unreleased version of fmt
+ '-DVTK_MODULE_USE_EXTERNAL_VTK_fmt:BOOL=OFF',
+ ])
+
+ # Some variable names have changed
+ if spec.satisfies('@8.2.0'):
+ cmake_args.append('-DVTK_USE_SYSTEM_PUGIXML:BOOL=OFF')
+ elif spec.satisfies('@:8.1'):
+ cmake_args.extend([
'-DVTK_USE_SYSTEM_LIBPROJ4:BOOL=OFF',
+ '-DNETCDF_CXX_ROOT={0}'.format(spec['netcdf-cxx'].prefix),
])
if '+mpi' in spec:
@@ -191,17 +214,22 @@ class Vtk(CMakePackage):
cmake_args.extend([
'-DVTK_USE_MPI=ON'
])
+ else:
+ '-DVTK_USE_MPI=OFF'
if '+ffmpeg' in spec:
- cmake_args.extend(['-DModule_vtkIOFFMPEG:BOOL=ON'])
+ if spec.satisfies('@:8'):
+ cmake_args.append('-DModule_vtkIOFFMPEG:BOOL=ON')
+ else:
+ cmake_args.append('-DVTK_MODULE_ENABLE_VTK_IOFFMPEG:STRING=YES')
# Enable/Disable wrappers for Python.
if '+python' in spec:
- cmake_args.extend([
- '-DVTK_WRAP_PYTHON=ON',
- '-DPYTHON_EXECUTABLE={0}'.format(spec['python'].command.path),
- ])
- if '+mpi' in spec:
+ cmake_args.append('-DVTK_WRAP_PYTHON=ON')
+ if spec.satisfies('@:8'):
+ cmake_args.append(
+ '-DPYTHON_EXECUTABLE={0}'.format(spec['python'].command.path))
+ if '+mpi' in spec and spec.satisfies('@:8'):
cmake_args.append('-DVTK_USE_SYSTEM_MPI4PY:BOOL=ON')
if spec.satisfies('@9.0.0: ^python@3:'):
cmake_args.append('-DVTK_PYTHON_VERSION=3')
@@ -218,14 +246,16 @@ class Vtk(CMakePackage):
qt_bin = spec['qt'].prefix.bin
qmake_exe = os.path.join(qt_bin, 'qmake')
- cmake_args.extend([
- # Enable Qt support here.
- '-DVTK_QT_VERSION:STRING={0}'.format(qt_ver),
- '-DQT_QMAKE_EXECUTABLE:PATH={0}'.format(qmake_exe),
- '-DVTK_Group_Qt:BOOL=ON',
- ])
# https://github.com/martijnkoopman/Qt-VTK-viewer/blob/master/doc/Build-VTK.md
- if spec.satisfies('@9.0.0:'):
+ # The content of the above link changes over time with versions.
+ # Older commits have information on VTK-8.
+ if spec.satisfies('@:8'):
+ cmake_args.extend([
+ '-DVTK_QT_VERSION:STRING={0}'.format(qt_ver),
+ '-DQT_QMAKE_EXECUTABLE:PATH={0}'.format(qmake_exe),
+ '-DVTK_Group_Qt:BOOL=ON',
+ ])
+ else:
cmake_args.extend([
'-DVTK_GROUP_ENABLE_Qt:STRING=YES',
'-DVTK_MODULE_ENABLE_VTK_GUISupportQt:STRING=YES',
@@ -235,37 +265,54 @@ class Vtk(CMakePackage):
# VTK to build with qt~webkit versions (see the documentation for
# more info: http://www.vtk.org/Wiki/VTK/Tutorials/QtSetup).
if '~webkit' in spec['qt']:
- cmake_args.extend([
- '-DVTK_Group_Qt:BOOL=OFF',
- '-DModule_vtkGUISupportQt:BOOL=ON',
- '-DModule_vtkGUISupportQtOpenGL:BOOL=ON',
- ])
+ if spec.satisfies('@:8'):
+ cmake_args.extend([
+ '-DVTK_Group_Qt:BOOL=OFF',
+ '-DModule_vtkGUISupportQt:BOOL=ON',
+ '-DModule_vtkGUISupportQtOpenGL:BOOL=ON',
+ ])
+ else:
+ cmake_args.extend([
+ '-DVTK_GROUP_ENABLE_Qt:STRING=NO',
+ '-DVTK_MODULE_ENABLE_VTK_GUISupportQt:STRING=YES',
+ ])
if '+xdmf' in spec:
if spec.satisfies('^cmake@3.12:'):
# This policy exists only for CMake >= 3.12
cmake_args.extend(["-DCMAKE_POLICY_DEFAULT_CMP0074=NEW"])
- cmake_args.extend([
- # Enable XDMF Support here
- "-DModule_vtkIOXdmf2:BOOL=ON",
- "-DModule_vtkIOXdmf3:BOOL=ON",
- "-DBOOST_ROOT={0}".format(spec['boost'].prefix),
- "-DBOOST_LIBRARY_DIR={0}".format(spec['boost'].prefix.lib),
- "-DBOOST_INCLUDE_DIR={0}".format(spec['boost'].prefix.include),
- "-DBOOST_NO_SYSTEM_PATHS:BOOL=ON",
- # This is needed because VTK has multiple FindBoost
- # and they stick to system boost if there's a system boost
- # installed with CMake
- "-DBoost_NO_BOOST_CMAKE:BOOL=ON",
- "-DHDF5_ROOT={0}".format(spec['hdf5'].prefix),
- # The xdmf project does not export any CMake file...
- "-DVTK_USE_SYSTEM_XDMF3:BOOL=OFF",
- "-DVTK_USE_SYSTEM_XDMF2:BOOL=OFF"
- ])
+ if spec.satisfies('@:8'):
+ cmake_args.extend([
+ # Enable XDMF Support here
+ "-DModule_vtkIOXdmf2:BOOL=ON",
+ "-DModule_vtkIOXdmf3:BOOL=ON",
+ "-DBOOST_ROOT={0}".format(spec['boost'].prefix),
+ "-DBOOST_LIBRARY_DIR={0}".format(spec['boost'].prefix.lib),
+ "-DBOOST_INCLUDE_DIR={0}".format(spec['boost'].prefix.include),
+ "-DBOOST_NO_SYSTEM_PATHS:BOOL=ON",
+ # This is needed because VTK has multiple FindBoost
+ # and they stick to system boost if there's a system boost
+ # installed with CMake
+ "-DBoost_NO_BOOST_CMAKE:BOOL=ON",
+ # The xdmf project does not export any CMake file...
+ "-DVTK_USE_SYSTEM_XDMF3:BOOL=OFF",
+ "-DVTK_USE_SYSTEM_XDMF2:BOOL=OFF"
+ ])
+ else:
+ cmake_args.extend([
+ '-DVTK_MODULE_ENABLE_VTK_xdmf2:STRING=YES',
+ '-DVTK_MODULE_ENABLE_VTK_xdmf3:STRING=YES',
+ '-DVTK_MODULE_ENABLE_VTK_IOXdmf2:STRING=YES',
+ '-DVTK_MODULE_ENABLE_VTK_IOXdmf3:STRING=YES',
+ ])
if '+mpi' in spec:
- cmake_args.extend(["-DModule_vtkIOParallelXdmf3:BOOL=ON"])
+ if spec.satisfies('@:8'):
+ cmake_args.append("-DModule_vtkIOParallelXdmf3:BOOL=ON")
+ else:
+ cmake_args.append(
+ '-DVTK_MODULE_ENABLE_VTK_IOParallelXdmf3:STRING=YES')
cmake_args.append('-DVTK_RENDERING_BACKEND:STRING=' + opengl_ver)