On Tue, Oct 30, 2018 at 2:16 AM Jukka Jylänki <juj...@gmail.com> wrote:
>
> > Imagine you run `emcc` and if
> parses the config file and finds EMSCRIPTEN_ROOT pointing to different
> version of emscripten.
>
> I would recommend not removing EMSCRIPTEN_ROOT, but rather issuing a
> warning if this scenario is met (if we don't already?). It would be a
> good way to validate that the other fields in the .emscripten file are
> likely valid or invalid too.

This was my first instinct too, and I initially landed that but had to
revert it due to difficulty comparing and normalizing paths on windows
(8.3 path names I think).  See
https://github.com/kripken/emscripten/pull/6863.

> The --em-config cmdline param and EM_CONFIG env. vars are ways to
> point to a custom .emscripten file, that allow locating
> EMSCRIPTEN_ROOT on a per-invocation or per-environment basis. Emsdk
> uses that in its --embedded mode to allow one to have multiple
> separate terminal windows with different Emscripten versions active.

--em-config and EM_CONFIG continue to work as before.  However I think
maybe there is some confusion here about how they work.   Setting the
config file does not and cannot change the emscripten directory as far
as I can tell.   This is because parsing of the config file done in
`tools/shared.py` and the emscripten root is obviously already
determined before this file is loaded.  Maybe i'm wrong or maybe this
was different in the past?

Part of the motivation for this change to avoid such confusion.

I'm a big fan of supporting multiple emscripten versions and multiple
config files and I don't think this change makes it harder.   My
understanding of the --embedded mode is that it allows the config file
to be located alongside the each different emscripten version.  I
don't think this change effects that behaviour does it?

I think the only use case for EMSCRIPTEN_ROOT in the config file is
for tools such as scons, make (and Godot above) in the case when emcc
is not in the PATH.   In that sense this is a config setting not for
emscripten itself but for consumers of emscripten.  emscripten itself
should not be reading it.  For the other tools we decided that
EMSCRIPTEN_ROOT in the environment was an acceptable solution for
those that don't want to use PATH.  I'm not sure if that is acceptable
for Gotot too?  It sounds like maybe it won't work for them so I might
have to revert this change after all.


> ma 29. lokak. 2018 klo 23.58 Leon Krause (l...@leonkrause.com) kirjoitti:
> >
> > Godot Engine reads EMSCRIPTEN_ROOT from the file specified by EM_CONFIG or
> > ~/.emscripten. Since emcc is not usually available in PATH, if 
> > EMSCRIPTEN_ROOT
> > is removed, it will no longer be possible to locate it automatically. The 
> > user
> > has to either manually add emcc to PATH, or source the environment
> > initialization script every time before they build.
> >
> > As is, if `emsdk install` and `emsdk activate` have run once, just one 
> > command
> > (invoking SCons) is enough to build Godot. Additional steps mean we'll have 
> > more
> > users having issues with their builds.
> >
> > Most users building Godot with Emscripten don't know or care about working 
> > with
> > multiple Emscripten installations. In that sense, using multiple Emscripten
> > installations is a valid, but rare use case.
> >
> >
> > On Wednesday, October 10, 2018 at 2:41:26 AM UTC+2, Sam Clegg wrote:
> >>
> >> TLDR: There is a field in called EMSCRIPTEN_ROOT in the config file
> >> which in theory can be used by external tools to find the "active"
> >> emscripten.   I'm proposing to remove it.
> >>
> >> ---
> >>
> >> Maintaining this field has a cost and it can get out of sync with the
> >> emscripten you are actually using.    Imagine you run `emcc` and if
> >> parses the config file and finds EMSCRIPTEN_ROOT pointing to different
> >> version of emscripten.
> >>
> >> The two current users of EMSCRIPTEN_ROOT that I know of are the scons 
> >> support:
> >> https://github.com/kripken/emscripten/blob/incoming/tools/scons/site_scons/site_tools/emscripten/emscripten.py
> >> And ammo.js: https://github.com/kripken/ammo.js/blob/master/make.py#L17
> >>
> >> In both of these cases a better solution would be either:
> >> 1) looks for `emcc` in the $PATH
> >> 2) check for EMSCRIPTEN_ROOT in the environment.
> >>
> >> Parsing the config file is also a rather brittle solution, and
> >> prevents us from iterating on the config file format and how its
> >> parses.  It also uses python's `eval` which is nasty.
> >>
> >> Any objections to following this path?
> >
> > --
> > You received this message because you are subscribed to the Google Groups 
> > "emscripten-discuss" group.
> > To unsubscribe from this group and stop receiving emails from it, send an 
> > email to emscripten-discuss+unsubscr...@googlegroups.com.
> > For more options, visit https://groups.google.com/d/optout.
>
> --
> You received this message because you are subscribed to the Google Groups 
> "emscripten-discuss" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to emscripten-discuss+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"emscripten-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to emscripten-discuss+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to