Different values of environment variables during build time and run time, eg. JAVA_HOME and PATH

Loïc Minier loic.minier at ubuntu.com
Tue Oct 11 10:25:48 UTC 2016


Hi,

The go plugin might be a good starting place to see how to achieve this; it
uses its own _run() using a custom build environment rather than relying on
the defaults.

So in the ant plugin, change calls to self.run() with calls to self._run
and define _run with your overloaded environment.

Cheers,
- Loïc

On Tue, Oct 11, 2016 at 11:38 AM, Jian LUO <jian.luo.cn at gmail.com> wrote:

> Hi,
>
> Thanks for the explanation. That's exactly what comes first in my mind.
> I've tried to customize the ant / jdk plugin by overriding the env method.
> The doc string of BasePlugin.env reads "return a list with the execution
> environment for building". However the result env applies both to build
> time and to the generated wrapper nonetheless. How can i override runtime
> only env in the plugin?
>
> Jian
>
> On Oct 11, 2016 09:53, "Didier Roche" <didrocks at ubuntu.com> wrote:
>
> Le 10/10/2016 à 23:49, Jian LUO a écrit :
>
> Hi,
>
> I don't think it counts as cross compiling since Java (at least in my
> case) is cross platform. Just wanted to compile Java with one JDK and run
> with another.
>
>
> Hey,
>
> I'm adding Sergio to the conversation, but I think the easiest path is to
> create a custom plugin, inheriting from the base java one, which is
> outputting a wrapper scripts with different JAVA env variables.
> That way, you keep the current building behavior (build with java on the
> machine), but output a script which will point to an armhf java path for
> instance and download the correct version and packages version for all
> those.
> Cross-compilation-like may be needed as Manik suggested as you will need
> to pull some packages which are architectures specific.
>
> On how to create a custom plugin, here is some documentation:
> http://snapcraft.io/docs/build-snaps/plugins and the playpen has some
> example: https://github.com/ubuntu/snappy-playpen/blob/master/idea/
> parts/plugins/x-antIntellij.py
> I'll let Sergio adding more info as needed :)
>
> Cheers,
> Didier
>
>
>
> Jian
>
> On Oct 10, 2016 20:05, "Manik Taneja" <manik at canonical.com> wrote:
>
>>
>>
>> On Mon, Oct 10, 2016 at 6:33 AM, Jian LUO <jian.luo.cn at gmail.com> wrote:
>>
>>> Hi List,
>>>
>>> Is there any formal way in snapcraft  to set environment variables
>>> separately for build time and run time? The use case I'm facing is building
>>> a Java snap on amd64 host for armhf target.
>>>
>> Snapcraft does not support cross-compilation. Consider building natively
>> on armhf, or using this as reference-
>>
>> https://github.com/snapcore/snapd/blob/master/docs/cross-build.md
>>
>> and let us know if you see any issues.
>>
>> /Manik
>>
>
>
>
>
> --
> Snapcraft mailing list
> Snapcraft at lists.snapcraft.io
> Modify settings or unsubscribe at: https://lists.ubuntu.com/mailm
> an/listinfo/snapcraft
>
>
>
> --
> Snapcraft mailing list
> Snapcraft at lists.snapcraft.io
> Modify settings or unsubscribe at: https://lists.ubuntu.com/
> mailman/listinfo/snapcraft
>
>


-- 
- Loïc
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ubuntu.com/archives/snapcraft/attachments/20161011/81039816/attachment.html>


More information about the Snapcraft mailing list