summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorNeil Flood <neilflood@fastmail.fm>2019-01-15 12:39:34 +1000
committerAdam J. Stewart <ajstewart426@gmail.com>2019-01-14 20:39:34 -0600
commit49dedb2443c3518013e69bdbb360e493d84c6faf (patch)
treeee45cae62426a9ee8782ec1b9291646722bd7a38 /var
parent04d4b0763601f360981a900986cb8d0482f499e6 (diff)
downloadspack-49dedb2443c3518013e69bdbb360e493d84c6faf.tar.gz
spack-49dedb2443c3518013e69bdbb360e493d84c6faf.tar.bz2
spack-49dedb2443c3518013e69bdbb360e493d84c6faf.tar.xz
spack-49dedb2443c3518013e69bdbb360e493d84c6faf.zip
vigra: new package (#10337)
* vigra: new package * Better constraints and types on some depends_on. Use site_packages_dir variable for Python install dir. Explicit switch-offs where available. Change some local variables to suit style checks. * Take care of lines too long * Explicit WITH_HDF5=ON
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/vigra/package.py91
1 files changed, 91 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/vigra/package.py b/var/spack/repos/builtin/packages/vigra/package.py
new file mode 100644
index 0000000000..9746f2adbb
--- /dev/null
+++ b/var/spack/repos/builtin/packages/vigra/package.py
@@ -0,0 +1,91 @@
+# 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 Vigra(CMakePackage):
+ """VIGRA stands for "Vision with Generic Algorithms". It's an image
+ processing and analysis library that puts its main emphasis on
+ customizable algorithms and data structures"""
+
+ homepage = "https://ukoethe.github.io/vigra/"
+ url = "https://github.com/ukoethe/vigra/releases/download/Version-1-11-1/vigra-1.11.1-src.tar.gz"
+
+ version('1.11.1', sha256='a5564e1083f6af6a885431c1ee718bad77d11f117198b277557f8558fa461aaf')
+
+ variant('png', default=False, description='Include support for PNG images')
+ variant('jpeg', default=False, description='Include support for JPEG images')
+ variant('tiff', default=False, description='Include support for TIFF images')
+ variant('exr', default=False, description='Include support for EXR images')
+ variant('hdf5', default=False, description='Include support for HDF5 files')
+ variant('fftw', default=False, description='Include support for Fourier Transforms')
+ variant('python', default=False, description='Generate Python bindings and doc')
+ variant('cxxdoc', default=False, description='Generate C++ documentation')
+
+ depends_on('libtiff', when='+tiff')
+ depends_on('libpng', when='+png')
+ depends_on('libjpeg', when='+jpeg')
+ depends_on('hdf5', when='+hdf5')
+ depends_on('fftw', when='+fftw')
+ depends_on('openexr', when='+exr')
+ depends_on('py-numpy', type=('build', 'run'), when='+python')
+ depends_on('boost+python+numpy', when='+python')
+ depends_on('py-sphinx', type='build', when='+python')
+ depends_on('doxygen', type='build', when='+cxxdoc')
+ depends_on('python', type='build', when='+cxxdoc')
+ depends_on('py-nose', type=('build', 'test'), when='+python')
+
+ extends('python', when='+python')
+
+ def cmake_args(self):
+ args = []
+ spec = self.spec
+
+ if '+tiff' in spec:
+ args.extend([
+ '-DTIFF_LIBRARY={0}'.format(spec['libtiff'].libs),
+ '-DTIFF_INCLUDE_DIR={0}'.format(
+ spec['libtiff'].prefix.include),
+ ])
+ if '+hdf5' in spec:
+ args.extend([
+ '-DWITH_HDF5=ON',
+ '-DHDF5_CORE_LIBRARY={0}'.format(
+ spec['hdf5'].libs.libraries[0]),
+ '-DHDF5_INCLUDE_DIR={0}'.format(spec['hdf5'].prefix.include),
+ '-DHDF5_Z_LIBRARY={0}'.format(spec['zlib'].libs.libraries[0])
+ ])
+ else:
+ args.append('-DWITH_HDF5=OFF')
+ if '+python' in spec:
+ py_vers_str = spec['python'].version.up_to(2)
+ py_vers_str_nodot = py_vers_str.joined
+ boost_python_lib = '{0}/libboost_python{1}.so'.format(
+ spec['boost'].prefix.lib, py_vers_str_nodot)
+ args.extend([
+ '-DBoost_DIR={0}'.format(spec['boost'].prefix),
+ '-DBoost_INCLUDE_DIR={0}'.format(spec['boost'].prefix.include),
+ '-DBoost_PYTHON_LIBRARY={0}'.format(boost_python_lib),
+ '-DVIGRANUMPY_INSTALL_DIR={0}'.format(site_packages_dir)
+ ])
+ if '+fftw' in spec:
+ args.extend([
+ '-DFFTW3_LIBRARY={0}'.format(spec['fftw'].libs),
+ '-DFFTW3_INCLUDE_DIR={0}'.format(spec['fftw'].prefix.include)
+ ])
+ if '+png' in spec:
+ args.extend([
+ '-DPNG_LIBRARY_RELEASE={0}'.format(spec['libpng'].libs),
+ '-DPNG_INCLUDE_DIR={0}'.format(spec['libpng'].prefix.include)
+ ])
+ if '+exr' in spec:
+ args.append('-DWITH_OPENEXR=ON')
+ else:
+ args.append('-DWITH_OPENEXR=OFF')
+ if '+cxxdoc' in spec:
+ args.append('-DDOXYGEN_EXECUTABLE={0}'.format(
+ spec['doxygen'].command))
+ return args