I created a partial revert to keep EMSCRIPTEN_ROOT in the config for now: https://github.com/kripken/emscripten/pull/7411 On Tue, Oct 30, 2018 at 10:09 AM Sam Clegg <s...@google.com> wrote: > > 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.