Add JasPer 2.0.14 (#8207)
* Add JasPer 2.0.14 * Remove no longer necessary patch * Explicitly disable generation of documentation * Re-add support for JasPer 1.900.1, add GDAL patch * Remove GDAL patch
This commit is contained in:
		| @@ -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') | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Adam J. Stewart
					Adam J. Stewart