Add module variables for NCEPLIBS (#27162)
Use setup_run_environment to search for libraries and set env variables for module generation. Libraries are installed with CMAKE_INSTALL_LIBDIR, which can be lib or lib64 depending on the machine, which makes it impossible to hardcode through modules.yaml.
This commit is contained in:
parent
55e853c160
commit
ce9ae3c70d
@ -21,3 +21,25 @@ class Bufr(CMakePackage):
|
||||
'jbathegit']
|
||||
|
||||
version('11.5.0', sha256='d154839e29ef1fe82e58cf20232e9f8a4f0610f0e8b6a394b7ca052e58f97f43')
|
||||
|
||||
def _setup_bufr_environment(self, env, suffix):
|
||||
libname = 'libufr_{0}'.format(suffix)
|
||||
lib = find_libraries(libname, root=self.prefix,
|
||||
shared=False, recursive=True)
|
||||
lib_envname = 'BUFR_LIB{0}'.format(suffix)
|
||||
inc_envname = 'BUFR_INC{0}'.format(suffix)
|
||||
include_dir = 'include_{0}'.format(suffix)
|
||||
|
||||
env.set(lib_envname, lib[0])
|
||||
env.set(inc_envname, include_dir)
|
||||
|
||||
# Bufr has _DA (dynamic allocation) libs in versions <= 11.5.0
|
||||
if self.spec.satisfies('@:11.5.0'):
|
||||
da_lib = find_libraries(libname + "_DA", root=self.prefix,
|
||||
shared=False, recursive=True)
|
||||
env.set(lib_envname + '_DA', da_lib[0])
|
||||
env.set(inc_envname + '_DA', include_dir)
|
||||
|
||||
def setup_run_environment(self, env):
|
||||
for suffix in ('4', '8', 'd'):
|
||||
self._setup_bufr_environment(env, suffix)
|
||||
|
@ -23,3 +23,10 @@ class G2(CMakePackage):
|
||||
|
||||
depends_on('jasper')
|
||||
depends_on('libpng')
|
||||
|
||||
def setup_run_environment(self, env):
|
||||
for suffix in ('4', 'd'):
|
||||
lib = find_libraries('libg2_' + suffix, root=self.prefix,
|
||||
shared=False, recursive=True)
|
||||
env.set('G2_LIB' + suffix, lib[0])
|
||||
env.set('G2_INC' + suffix, join_path(self.prefix, 'include_' + suffix))
|
||||
|
@ -26,3 +26,8 @@ class G2c(CMakePackage):
|
||||
depends_on('libpng', when='+png')
|
||||
depends_on('jasper', when='+jasper')
|
||||
depends_on('openjpeg', when='+openjpeg')
|
||||
|
||||
def setup_run_environment(self, env):
|
||||
lib = find_libraries('libg2c', root=self.prefix, shared=False, recursive=True)
|
||||
env.set('G2C_LIB', lib[0])
|
||||
env.set('G2C_INC', join_path(self.prefix, 'include'))
|
||||
|
@ -18,3 +18,10 @@ class Gfsio(CMakePackage):
|
||||
maintainers = ['t-brown', 'kgerheiser', 'Hang-Lei-NOAA', 'edwardhartnett']
|
||||
|
||||
version('1.4.1', sha256='eab106302f520600decc4f9665d7c6a55e7b4901fab6d9ef40f29702b89b69b1')
|
||||
|
||||
def setup_run_environment(self, env):
|
||||
lib = find_libraries('libgfsio', root=self.prefix, shared=False, recursive=True)
|
||||
# Only one library version, but still need to set _4 to make NCO happy
|
||||
for suffix in ('4', ''):
|
||||
env.set('GFSIO_LIB' + suffix, lib[0])
|
||||
env.set('GFSIO_INC' + suffix, join_path(self.prefix, 'include'))
|
||||
|
@ -19,3 +19,10 @@ class Ip(CMakePackage):
|
||||
version('3.3.3', sha256='d5a569ca7c8225a3ade64ef5cd68f3319bcd11f6f86eb3dba901d93842eb3633')
|
||||
|
||||
depends_on('sp')
|
||||
|
||||
def setup_run_environment(self, env):
|
||||
for suffix in ('4', '8', 'd'):
|
||||
lib = find_libraries('libip_4', root=self.prefix,
|
||||
shared=False, recursive=True)
|
||||
env.set('IP_LIB' + suffix, lib[0])
|
||||
env.set('IP_INC' + suffix, join_path(self.prefix, 'include_' + suffix))
|
||||
|
@ -22,3 +22,10 @@ class Ip2(CMakePackage):
|
||||
version('1.1.2', sha256='73c6beec8fd463ec7ccba3633d8c5d53d385c43d507367efde918c2db0af42ab')
|
||||
|
||||
depends_on('sp')
|
||||
|
||||
def setup_run_environment(self, env):
|
||||
for suffix in ('4', '8', 'd'):
|
||||
lib = find_libraries('libip2_' + suffix, root=self.prefix,
|
||||
shared=False, recursive=True)
|
||||
env.set('IP2_LIB' + suffix, lib[0])
|
||||
env.set('IP2_INC' + suffix, join_path(self.prefix, 'include_' + suffix))
|
||||
|
@ -18,3 +18,12 @@ class Landsfcutil(CMakePackage):
|
||||
maintainers = ['edwardhartnett', 'kgerheiser', 'Hang-Lei-NOAA']
|
||||
|
||||
version('2.4.1', sha256='831c5005a480eabe9a8542b4deec838c2650f6966863ea2711cc0cc5db51ca14')
|
||||
|
||||
def setup_run_environment(self, env):
|
||||
for suffix in ('4', 'd'):
|
||||
lib = find_libraries('liblandsfcutil_' + suffix, root=self.prefix,
|
||||
shared=False, recursive=True)
|
||||
|
||||
env.set('LANDSFCUTIL_LIB' + suffix, lib[0])
|
||||
env.set('LANDSFCUTIL_INC' + suffix,
|
||||
join_path(self.prefix, 'include_' + suffix))
|
||||
|
@ -21,3 +21,9 @@ class Ncio(CMakePackage):
|
||||
|
||||
depends_on('mpi')
|
||||
depends_on('netcdf-fortran')
|
||||
|
||||
def setup_run_environment(self, env):
|
||||
lib = find_libraries('libncio', root=self.prefix, shared=False, recursive=True)
|
||||
env.set('NCIO_LIB', lib[0])
|
||||
env.set('NCIO_INC', join_path(self.prefix, 'include'))
|
||||
env.set('NCIO_LIBDIR', lib[0])
|
||||
|
@ -18,3 +18,10 @@ class Sfcio(CMakePackage):
|
||||
maintainers = ['t-brown', 'kgerheiser', 'Hang-Lei-NOAA', 'edwardhartnett']
|
||||
|
||||
version('1.4.1', sha256='d9f900cf18ec1a839b4128c069b1336317ffc682086283443354896746b89c59')
|
||||
|
||||
def setup_run_environment(self, env):
|
||||
lib = find_libraries('libsfcio', root=self.prefix, shared=False, recursive=True)
|
||||
# Only one library version, but still need to set _4 to make NCO happy
|
||||
for suffix in ('4', ''):
|
||||
env.set('SFCIO_LIB' + suffix, lib[0])
|
||||
env.set('SFCIO_INC' + suffix, join_path(self.prefix, 'include'))
|
||||
|
@ -18,3 +18,10 @@ class Sigio(CMakePackage):
|
||||
maintainers = ['t-brown', 'kgerheiser', 'Hang-Lei-NOAA', 'edwardhartnett']
|
||||
|
||||
version('2.3.2', sha256='333f3cf3a97f97103cbafcafc2ad89b24faa55b1332a98adc1637855e8a5b613')
|
||||
|
||||
def setup_run_environment(self, env):
|
||||
lib = find_libraries('libsigio', root=self.prefix, shared=False, recursive=True)
|
||||
# Only one library version, but still need to set _4 to make NCO happy
|
||||
for suffix in ('4', ''):
|
||||
env.set('SIGIO_LIB' + suffix, lib[0])
|
||||
env.set('SIGIO_INC' + suffix, join_path(self.prefix, 'include'))
|
||||
|
@ -17,3 +17,10 @@ class Sp(CMakePackage):
|
||||
maintainers = ['t-brown', 'kgerheiser', 'edwardhartnett', 'Hang-Lei-NOAA']
|
||||
|
||||
version('2.3.3', sha256='c0d465209e599de3c0193e65671e290e9f422f659f1da928505489a3edeab99f')
|
||||
|
||||
def setup_run_environment(self, env):
|
||||
for suffix in ('4', '8', 'd'):
|
||||
lib = find_libraries('libsp_' + suffix, root=self.prefix,
|
||||
shared=False, recursive=True)
|
||||
env.set('SP_LIB' + suffix, lib[0])
|
||||
env.set('SP_INC' + suffix, 'include_' + suffix)
|
||||
|
@ -28,3 +28,10 @@ class W3emc(CMakePackage):
|
||||
depends_on('nemsio', when='@2.7.3')
|
||||
depends_on('sigio', when='@2.7.3')
|
||||
depends_on('netcdf-fortran', when='@2.7.3')
|
||||
|
||||
def setup_run_environment(self, env):
|
||||
for suffix in ('4', '8', 'd'):
|
||||
lib = find_libraries('libw3emc_' + suffix, root=self.prefix,
|
||||
shared=False, recursive=True)
|
||||
env.set('W3EMC_LIB' + suffix, lib[0])
|
||||
env.set('W3EMC_INC' + suffix, join_path(self.prefix, 'include_' + suffix))
|
||||
|
Loading…
Reference in New Issue
Block a user