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 <a.oc...@fz-juelich.de <mailto:a.oc...@fz-juelich.de>> 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
    <caspar.vanleeu...@surfsara.nl
    <mailto: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
        <mailto:a.oc...@fz-juelich.de>>
        *To: *"easybuild" <easybuild@lists.ugent.be
        <mailto: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
        <mailto: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 <tel:02461%20615213>
        Fax: +49 2461 61 6656 <tel:02461%20616656>
        E-mail: a.oc...@fz-juelich.de <mailto:a.oc...@fz-juelich.de>
        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'Cais
    E-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: a.oc...@fz-juelich.de <mailto:a.oc...@fz-juelich.de>
    WWW: http://www.fz-juelich.de/ias/jsc/EN
    <http://www.fz-juelich.de/ias/jsc/EN>



Reply via email to