On 02/05/2020 18:35, Mike Kelsey wrote:
Thanks to both Kenneth and Ake for their suggestions! I'll investigate
both, but I think I have a couple of questions first.
Ake_Sandgren wrote:
it might be possible to specify it using a dependency like this,
('CDMS', EXTERNAL_MODULE),
in the dependeies list, or if you need a specific version,
('CDMS/xx.yy', EXTERNAL_MODULE)
Not sure though since I haven't tried this and it's original target is
for the Cray compilers.
The external module would need a few easybuild variables set.
See
https://easybuild.readthedocs.io/en/latest/Using_external_modules.html?highlight=external%20module
This looks like a great solution. The module is only for one group within
the HPRC cluster. I don't want to have to ask the HPRC admins to add our
internal stuff site-wide. The documentation is slightly ambiguous, at least
to me:
Since EasyBuild v4.1.0, you can use so-called glob patterns to specify a
list of paths to --external-modules-metadata, using wildcard characters
like * and ?.
Does "list of paths" also mean I could do
export EASYBUILD_EXTERNAL_MODULES_METADATA=/path/one:/path/two:/path/three
? That would let me pick up the site-wide stuff (for Matlab) as well as our
group definition as you suggest.
Yes, but it's comma-separated, so this will work as expected:
export
EASYBUILD_EXTERNAL_MODULES_METADATA='/path1/*.cfg,/path2/justone.cfg,/path3/*.cfg'
You only need the single quotes here to avoid that your shell interprets
the '*', they should be passed literally to EasyBuild.
Kenneth Hoste writes:
[...]
You can certainly do it via a post_module_hook (see
https://easybuild.readthedocs.io/en/latest/Hooks.html), where you can
interfere with the generated module file.
Is there an example of a "module hook" anywhere in the repository? GitHub's
search was entirely unhelpful?
Hmm, not really, but maybe the stuff in
https://github.com/easybuilders/easybuild-framework/blob/develop/contrib/hooks/
is helpful?
regards,
Kenneth
-- Mike Kelsey