On 08/01/2018 14:09, Mikael Öhman wrote:
Alans answer is probably the best, but `BAR_BIN`: '`which bar`' might work as an alternativ to the Tcl specific hack (untested).
This won't work: `which bar` has no meaning in a module file (which is not a shell script).
K.
On Mon, Jan 8, 2018 at 2:01 PM, Alan O'Cais <[email protected] <mailto:[email protected]>> wrote:Hi Caspar, You can use modextravars = { 'BAR_BIN': '%(installdir)s/bin'} in the Bar easyconfig. If Bar is a dep of Foo, then when Foo is loaded Bar will be too and the value will be set. If you /only /want this to be set if Foo is loaded then that is custom behaviour and you will need to write a custom easyblock for the wrapper software (I don't see another way around it). Kind regards, Alan On 8 January 2018 at 13:17, Caspar van Leeuwen <[email protected] <mailto:[email protected]>> wrote: I'm sorry, maybe I should have clarified: Foo requires BAR_BIN to be present /at runtime/, so yes, I really do want it to be set in the module file of Foo. Foo provides a (GUI) wrapper for Bar, but it needs to know the location of the Bar binary. Rather than searching the path - as other programs might have done -, Foo uses the BAR_BIN environment variable to locate and call Bar (in fact, the installation instructions for Foo list that you have to set BAR_BIN). Regards, Caspar ------------------------------------------------------------------------ *From: *"Alan O'Cais" <[email protected] <mailto:[email protected]>> *To: *"easybuild" <[email protected] <mailto:[email protected]>> *Sent: *Monday, 8 January, 2018 12:38:32 *Subject: *Re: [easybuild] Use of EBROOT of a dependency as modextravar I think you are misunderstanding the scope of modextravars, it is there to set additional variables in the resultant module file from the installation (it is not relevant to the install process of the software, only the final module file that is written). The modextravars should be set in the Bar easyconfig if you wish to leverage it in Foo? Otherwise you just use something like preconfigopts = 'BAR_BIN=$EBROOTBAR/bin ' in the Foo easyconfig. On 8 January 2018 at 12:29, Caspar van Leeuwen <[email protected] <mailto:[email protected]>> wrote: Dear EasyBuilders, Question: I have a Package Foo that provides a wrapper for a software package Bar. Thus, in the EasyConfig for Foo, I list Bar as a dependency. Now, Foo requires an environment variable BAR_BIN to be set that points to the Bar binary. Thus, what I would like to do in the Foo EasyConfig is something like: modextravars = {‘BAR_BIN’: ‘$EBROOTBAR/bin’} This doesn’t work: I get an error (something like ‘no variable EBROOTBAR’). I presume the reason is that in the modextravars step for 'Foo', the 'Bar' module isn’t actually loaded - thus EBROOTBAR is not set. I could use $root (which points to the FOO root, and //does exist when modextravars is executed) and peal off the …/Foo/(version)-(toolchain), then add .../Bar/(version)-(toolchain), but this feels like a very dirty solution. Does anyone know of an elegant way to achieve this? And just to check: is it correct that the dependencies are not loaded when modextravars is executed? Best regards, Caspar van Leeuwen-- Dr. Alan O'CaisE-CAM Software Manager Juelich Supercomputing Centre Forschungszentrum Juelich GmbH 52425 Juelich, Germany Phone: +49 2461 61 5213 <tel:02461%20615213> Fax: +49 2461 61 6656 <tel:02461%20616656> E-mail: [email protected] <mailto:[email protected]> WWW: http://www.fz-juelich.de/ias/jsc/EN <http://www.fz-juelich.de/ias/jsc/EN> ------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------ Forschungszentrum Juelich GmbH 52425 Juelich Sitz der Gesellschaft: Juelich Eingetragen im Handelsregister des Amtsgerichts Dueren Nr. HR B 3498 Vorsitzender des Aufsichtsrats: MinDir Dr. Karl Eugen Huthmacher Geschaeftsfuehrung: Prof. Dr.-Ing. Wolfgang Marquardt (Vorsitzender), Karsten Beneke (stellv. Vorsitzender), Prof. Dr.-Ing. Harald Bolt, Prof. Dr. Sebastian M. Schmidt ------------------------------------------------------------------------------------------------ -------------------------------------------------------------------------------------------------- Dr. Alan O'CaisE-CAM Software Manager Juelich Supercomputing Centre Forschungszentrum Juelich GmbH 52425 Juelich, Germany Phone: +49 2461 61 5213 <tel:+49%202461%20615213> Fax: +49 2461 61 6656 <tel:+49%202461%20616656> E-mail: [email protected] <mailto:[email protected]> WWW: http://www.fz-juelich.de/ias/jsc/EN <http://www.fz-juelich.de/ias/jsc/EN>

