I bet this is because running "python" in a cygwin shell runs a Windows
python installation where the platform.system() call returns "Windows", so
the emsdk python scripts think that they are running in a Windows
environment.
Trying to install python in the cygwin environment doesn't seem to setup a
"python" link for me, instead the exe is called python3.8.exe. Calling that
returns "CYGWIN_NT-6.1-7601" in the platform.system() call, which is very
different from the "usual" return values "Darwin", "Linux" and "Windows",
so some cygwin-special hacks for the platform detection might be need in
any case.
Not sure if that's worth it to be honest (but I can't speak for the
emscripten team of course). FWIW I've been using the emscripten SDK in a
"native" Windows environment just fine, there have been various small
Windows-specific problems popping up in the past, but that's a few years
back. From your description it sounds like emscripten is not the main
reason you are running cygwin or mingw on Windows though.
On Wednesday, 30 September 2020 11:03:28 UTC+2, Arthur Norman wrote:
>
>
> I see from a year back that the core team do not have time to check
> installation on all possible setups, specifically cygwin and myss2, and
> that for Windows testing they maybe look to WSL. My main work has used
> Cygwin fo rmany years and having WSL activated risks confusion and conflict
> for me, so I do not see it as a good option - and even more so if I wanted
> to include emscripten stuff in my main project.
> When I try a fresh install on cygwin (or mysys2) I get a failure
>
> Traceback (most recent call last):
> File "./emsdk.py", line 3055, in <module>
> sys.exit(main())
> File "./emsdk.py", line 2799, in main
> load_sdk_manifest()
> File "./emsdk.py", line 2338, in load_sdk_manifest
> add_sdk(sdk)
> File "./emsdk.py", line 1972, in add_sdk
> raise Exception('Duplicate sdk ' + str(sdk) + '! Existing:\n{' + ',
> '.join("%s: %s" % item for item in vars(find_sdk(str(sdk))).items()) + '},
> New:\n{' + ', '.join("%s: %s" % item for item in vars(sdk).items()) + '}')
> Exception: Duplicate sdk sdk-upstream-master-64bit! Existing:
> {version: upstream-master, bitness: 64, uses: ['llvm-git-master-64bit',
> 'node-12.18.1-64bit', 'python-3.7.4-pywin32-64bit',
> 'emscripten-master-64bit', 'binaryen-master-64bit'], os: win, id: sdk,
> name: sdk-upstream-master-64bit, is_old: False, is_sdk: True}, New:
> {version: upstream-master, bitness: 64, uses: ['llvm-git-master-64bit',
> 'node-12.18.1-64bit', 'emscripten-master-64bit', 'binaryen-master-64bit'],
> os: linux, id: sdk, name: sdk-upstream-master-64bit, is_old: False, is_sdk:
> True}
>
> which looks as if the script is confused as between Windows and Linux (and
> we can all se that that is reasonable!).
>
> So my questions
> Is there experience or expectation that if I get past installation that
> emscripten will work under cygwin?
>
> If not then I should avoid wating my time. But if this ia liable to be
> fairly shallow I can investigate further and hope to report back with any
> patch or fix I find. So either is there somebody with a solution already or
> will following up on this be a good use of my time or a rabbit-hole of
> unlimited depth?
>
> Arthur
>
>
--
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 [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/emscripten-discuss/d62711df-6766-4184-a286-3e0b351077eeo%40googlegroups.com.