diff options
-rw-r--r-- | var/spack/repos/builtin/packages/jasper/package.py | 91 |
1 files changed, 77 insertions, 14 deletions
diff --git a/var/spack/repos/builtin/packages/jasper/package.py b/var/spack/repos/builtin/packages/jasper/package.py index 2ae1234903..3e4bbeb8a5 100644 --- a/var/spack/repos/builtin/packages/jasper/package.py +++ b/var/spack/repos/builtin/packages/jasper/package.py @@ -25,34 +25,97 @@ from spack import * -class Jasper(AutotoolsPackage): +class Jasper(Package): """Library for manipulating JPEG-2000 images""" homepage = "https://www.ece.uvic.ca/~frodo/jasper/" - url = "https://www.ece.uvic.ca/~frodo/jasper/software/jasper-1.900.1.zip" + url = "https://www.ece.uvic.ca/~frodo/jasper/software/jasper-2.0.14.tar.gz" + list_url = homepage - version('1.900.1', 'a342b2b4495b3e1394e161eb5d85d754') + version('2.0.14', '23561b51da8eb5d0dc85b91eff3d9a7f', + url="https://www.ece.uvic.ca/~frodo/jasper/software/jasper-2.0.14.tar.gz") + version('1.900.1', 'a342b2b4495b3e1394e161eb5d85d754', + url="https://www.ece.uvic.ca/~frodo/jasper/software/jasper-1.900.1.zip") - variant('shared', default=True, - description='Builds shared versions of the libraries') - variant('debug', default=False, - description='Builds debug versions of the libraries') + variant('jpeg', default=True, description='Enable the use of the JPEG library') + variant('opengl', default=False, description='Enable the use of the OpenGL and GLUT libraries') + variant('shared', default=True, description='Enable the building of shared libraries') + variant('build_type', default='Release', description='CMake build type', values=('Debug', 'Release')) - depends_on('jpeg') + depends_on('cmake@2.8.11:', type='build', when='@2:') + depends_on('jpeg', when='+jpeg') + depends_on('gl', when='+opengl') - # Fixes a bug (still in upstream as of v.1.900.1) where an assertion fails - # when certain JPEG-2000 files with an alpha channel are processed - # see: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=469786 - patch('fix_alpha_channel_assert_fail.patch') + # Fixes a bug where an assertion fails when certain JPEG-2000 + # files with an alpha channel are processed. + # See: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=469786 + patch('fix_alpha_channel_assert_fail.patch', when='@1.900.1') + + def cmake_args(self): + spec = self.spec + args = std_cmake_args + args.append('-DJAS_ENABLE_DOC=false') + + if '+jpeg' in spec: + args.append('-DJAS_ENABLE_LIBJPEG=true') + else: + args.append('-DJAS_ENABLE_LIBJPEG=false') + + if '+opengl' in spec: + args.append('-DJAS_ENABLE_OPENGL=true') + else: + args.append('-DJAS_ENABLE_OPENGL=false') + + if '+shared' in spec: + args.append('-DJAS_ENABLE_SHARED=true') + else: + args.append('-DJAS_ENABLE_SHARED=false') + + return args def configure_args(self): spec = self.spec - args = ['--mandir={0}'.format(spec.prefix.man)] + args = [ + '--prefix={0}'.format(self.prefix) + ] + + if '+jpeg' in spec: + args.append('--enable-libjpeg') + else: + args.append('--disable-libjpeg') + + if '+opengl' in spec: + args.append('--enable-opengl') + else: + args.append('--disable-opengl') if '+shared' in spec: args.append('--enable-shared') + else: + args.append('--disable-shared') - if '+debug' not in spec: + if 'build_type=Debug' in spec: + args.append('--enable-debug') + else: args.append('--disable-debug') return args + + @when('@2:') + def install(self, spec, prefix): + with working_dir('spack-build', create=True): + cmake('..', *self.cmake_args()) + make() + if self.run_tests: + make('test') + make('install') + + @when('@:1') + def install(self, spec, prefix): + configure(*self.configure_args()) + make() + if self.run_tests: + make('check') + make('install') + if self.run_tests: + make('installcheck') |