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 <
caspar.vanleeu...@surfsara.nl> 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" <a.oc...@fz-juelich.de>
> *To: *"easybuild" <easybuild@lists.ugent.be>
> *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 <
> caspar.vanleeu...@surfsara.nl> 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'Cais
> E-CAM Software Manager
> Juelich Supercomputing Centre
> Forschungszentrum Juelich GmbH
> 52425 Juelich, Germany
>
> Phone: +49 2461 61 5213 <02461%20615213>
> Fax: +49 2461 61 6656 <02461%20616656>
> E-mail: a.oc...@fz-juelich.de
> WWW:    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'Cais
E-CAM Software Manager
Juelich Supercomputing Centre
Forschungszentrum Juelich GmbH
52425 Juelich, Germany

Phone: +49 2461 61 5213
Fax: +49 2461 61 6656
E-mail: a.oc...@fz-juelich.de
WWW:    http://www.fz-juelich.de/ias/jsc/EN

Reply via email to