Add 'pic' variant to netcdf packages (#9605)
This commit is contained in:
		 Alberto Chiusole
					Alberto Chiusole
				
			
				
					committed by
					
						 Peter Scheibel
						Peter Scheibel
					
				
			
			
				
	
			
			
			 Peter Scheibel
						Peter Scheibel
					
				
			
						parent
						
							91302f89e4
						
					
				
				
					commit
					c7c3fab744
				
			| @@ -8,12 +8,18 @@ | |||||||
|  |  | ||||||
| class NetcdfCxx4(AutotoolsPackage): | class NetcdfCxx4(AutotoolsPackage): | ||||||
|     """C++ interface for NetCDF4""" |     """C++ interface for NetCDF4""" | ||||||
|  |  | ||||||
|     homepage = "http://www.unidata.ucar.edu/software/netcdf" |     homepage = "http://www.unidata.ucar.edu/software/netcdf" | ||||||
|     url      = "https://www.github.com/unidata/netcdf-cxx4/tarball/v4.3.0" |     url      = "https://www.github.com/unidata/netcdf-cxx4/tarball/v4.3.0" | ||||||
|  |  | ||||||
|     version('4.3.0', '0dde8b9763eecdafbd69d076e687337e') |     version('4.3.0', '0dde8b9763eecdafbd69d076e687337e') | ||||||
|     version('4.2.1', 'd019853802092cf686254aaba165fc81') |     version('4.2.1', 'd019853802092cf686254aaba165fc81') | ||||||
|  |  | ||||||
|  |     # Usually the configure automatically inserts the pic flags, but we can | ||||||
|  |     # force its usage with this variant. | ||||||
|  |     variant('pic', default=True, | ||||||
|  |             description='Produce position-independent code (for shared libs)') | ||||||
|  |  | ||||||
|     depends_on('netcdf') |     depends_on('netcdf') | ||||||
|  |  | ||||||
|     depends_on('automake', type='build') |     depends_on('automake', type='build') | ||||||
| @@ -22,8 +28,13 @@ class NetcdfCxx4(AutotoolsPackage): | |||||||
|  |  | ||||||
|     force_autoreconf = True |     force_autoreconf = True | ||||||
|  |  | ||||||
|     def configure_args(self): |     def flag_handler(self, name, flags): | ||||||
|         return ['CPPFLAGS=-I' + self.spec['netcdf'].prefix.include] |         if name == 'cflags' and '+pic' in self.spec: | ||||||
|  |             flags.append(self.compiler.pic_flag) | ||||||
|  |         elif name == 'cppflags': | ||||||
|  |             flags.append('-I' + self.spec['netcdf'].prefix.include) | ||||||
|  |  | ||||||
|  |         return (None, None, flags) | ||||||
|  |  | ||||||
|     @property |     @property | ||||||
|     def libs(self): |     def libs(self): | ||||||
|   | |||||||
| @@ -15,14 +15,22 @@ class NetcdfFortran(AutotoolsPackage): | |||||||
|     version('4.4.4', 'e855c789cd72e1b8bc1354366bf6ac72') |     version('4.4.4', 'e855c789cd72e1b8bc1354366bf6ac72') | ||||||
|     version('4.4.3', 'bfd4ae23a34635b273d3eb0d91cbde9e') |     version('4.4.3', 'bfd4ae23a34635b273d3eb0d91cbde9e') | ||||||
|  |  | ||||||
|  |     variant('pic', default=True, | ||||||
|  |             description='Produce position-independent code (for shared libs)') | ||||||
|  |  | ||||||
|     depends_on('netcdf') |     depends_on('netcdf') | ||||||
|  |  | ||||||
|     # The default libtool.m4 is too old to handle NAG compiler properly: |     # The default libtool.m4 is too old to handle NAG compiler properly: | ||||||
|     # https://github.com/Unidata/netcdf-fortran/issues/94 |     # https://github.com/Unidata/netcdf-fortran/issues/94 | ||||||
|     patch('nag.patch', when='@:4.4.4%nag') |     patch('nag.patch', when='@:4.4.4%nag') | ||||||
|  |  | ||||||
|     def configure_args(self): |     def flag_handler(self, name, flags): | ||||||
|         return ['CPPFLAGS=-I' + self.spec['netcdf'].prefix.include] |         if name in ['cflags', 'fflags'] and '+pic' in self.spec: | ||||||
|  |             flags.append(self.compiler.pic_flag) | ||||||
|  |         elif name == 'cppflags': | ||||||
|  |             flags.append('-I' + self.spec['netcdf'].prefix.include) | ||||||
|  |  | ||||||
|  |         return (None, None, flags) | ||||||
|  |  | ||||||
|     @property |     @property | ||||||
|     def libs(self): |     def libs(self): | ||||||
|   | |||||||
| @@ -24,9 +24,9 @@ class Netcdf(AutotoolsPackage): | |||||||
|     homepage = "http://www.unidata.ucar.edu/software/netcdf" |     homepage = "http://www.unidata.ucar.edu/software/netcdf" | ||||||
|     url      = "http://www.gfd-dennou.org/arch/netcdf/unidata-mirror/netcdf-4.3.3.tar.gz" |     url      = "http://www.gfd-dennou.org/arch/netcdf/unidata-mirror/netcdf-4.3.3.tar.gz" | ||||||
|  |  | ||||||
|  |     version('4.6.1', 'ee81c593efc8a6229d9bcb350b6d7849') | ||||||
|     # Version 4.4.1.1 is having problems in tests |     # Version 4.4.1.1 is having problems in tests | ||||||
|     #    https://github.com/Unidata/netcdf-c/issues/343 |     #    https://github.com/Unidata/netcdf-c/issues/343 | ||||||
|     version('4.6.1', 'ee81c593efc8a6229d9bcb350b6d7849') |  | ||||||
|     version('4.4.1.1', '503a2d6b6035d116ed53b1d80c811bda') |     version('4.4.1.1', '503a2d6b6035d116ed53b1d80c811bda') | ||||||
|     # netcdf@4.4.1 can crash on you (in real life and in tests).  See: |     # netcdf@4.4.1 can crash on you (in real life and in tests).  See: | ||||||
|     #    https://github.com/Unidata/netcdf-c/issues/282 |     #    https://github.com/Unidata/netcdf-c/issues/282 | ||||||
| @@ -40,6 +40,8 @@ class Netcdf(AutotoolsPackage): | |||||||
|     variant('parallel-netcdf', default=False, |     variant('parallel-netcdf', default=False, | ||||||
|             description='Enable parallel I/O for classic files') |             description='Enable parallel I/O for classic files') | ||||||
|     variant('hdf4', default=False, description='Enable HDF4 support') |     variant('hdf4', default=False, description='Enable HDF4 support') | ||||||
|  |     variant('pic', default=True, | ||||||
|  |             description='Produce position-independent code (for shared libs)') | ||||||
|     variant('shared', default=True, description='Enable shared library') |     variant('shared', default=True, description='Enable shared library') | ||||||
|     variant('dap', default=False, description='Enable DAP support') |     variant('dap', default=False, description='Enable DAP support') | ||||||
|  |  | ||||||
| @@ -155,7 +157,7 @@ def configure_args(self): | |||||||
|  |  | ||||||
|         config_args += self.enable_or_disable('shared') |         config_args += self.enable_or_disable('shared') | ||||||
|  |  | ||||||
|         if '~shared' in self.spec: |         if '~shared' in self.spec or '+pic' in self.spec: | ||||||
|             # We don't have shared libraries but we still want it to be |             # We don't have shared libraries but we still want it to be | ||||||
|             # possible to use this library in shared builds |             # possible to use this library in shared builds | ||||||
|             cflags.append(self.compiler.pic_flag) |             cflags.append(self.compiler.pic_flag) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user