Commit Graph

14 Commits

Author SHA1 Message Date
Sam Clegg
a562ff7bda Use a wrapper script for running emsdk.py (#292)
This change moves the python code for emsdk into a file ending in .py.
This script is then run via emsdk.bat on windows or emsdk (a shell
script) on non-windows.

This avoid the #!/bin/sh at the top of the python script and the "exec"
hack on the first line that re-runs it under python.  Hopefully this
preserves the intent of #273 without jumping through so many hoops.
2019-08-27 14:02:50 -07:00
Sam Clegg
596bdc5ea4 Fix file permissions when extracting zip files (#325)
This means that `./emsdk` works on UNIX system after emsdk self-updates
from a zip file.  Without this one would need to run `python ./emsdk`
which seems to be why the tests were doing it this way.
2019-08-26 23:06:56 -07:00
Alon Zakai
6a4c0f981d Properly clean up downloaded zips (#322)
We got this wrong because we were not using get_download_target, so we were trying to delete the wrong file.

Also add a test.

Fixes #320
2019-08-20 12:26:44 -07:00
Eric Kilmer
4a0f6a264e Support ninja build tool (#261)
The user can choose which CMake generator to use by passing the --generator option, e.g. --generator=Ninja or --generator="Unix Makefiles" to emsdk.

Default on *nix systems is Unix Makefiles
2019-07-15 17:10:31 -07:00
Thomas Lively
35cd9268f0 Back up overwritten configuration files (#295) 2019-07-03 16:11:00 -07:00
Alon Zakai
d33f7a2900 Extra testing for library building (#291)
Verify the latest things we've started to ship pre-built (libc, struct_info, optimizer) are in fact not built on the user's machine.
2019-06-26 13:13:48 -07:00
Alon Zakai
58aad76461 fix old tests (#283)
The tests for older versions had some copy-paste stuff, that meant we didn't fully test activating them.
2019-06-26 12:45:51 -07:00
Alon Zakai
3e6d8b395f Use prebuilt cache contents (#282)
See WebAssembly/waterfall#542

The builds now contain lib/wasm-obj/ or lib/asmjs/ which have some cache contents. This places those in the cache so the user doesn't need to build them on first run, which for libc at least can be quite slow.

The mechanism here is to run emcc a first time in the emsdk. That clears the cache (since the emsdk just updated the .emscripten file). We can then safely place the files in the cache.

Note that FROZEN_CACHE is not used, since we do want to leave the user the option to build other things to the cache - we'll never ship all possible system and ports builds in the emsdk downloads, probably.

This contains a test, which passes on tot-upstream. The last tagged release doesn't have this yet.
2019-06-25 12:41:28 -07:00
Alon Zakai
dffb280b35 Use check_output in test.py (#280) 2019-06-17 17:11:36 -07:00
Alon Zakai
87285f5e8f 1.38.36 ; Check if all downloads exist for the latest version (#278)
This verifies all builders successfully uploaded builds for a new version that we tag here.

This prevents a problem like happend on 1.38.35, where the mac and windows bots "skipped" the hash that we tagged - they built the one before, and I guess were too slow, so they skipped to the next commit after it? Which is expected I guess, but surprises me a little. Anyhow, with this fix we should avoid such problems in the future.

Tags 1.38.36 to verify things work and get people a working version.

Also check some other basic things: check the version built reports the right one in emcc -v, and that multiple emsdk updates still work.
2019-06-15 12:00:54 -07:00
Alon Zakai
c0e1167aad fix ./emsdk update of a *non*-git install (#271)
The non-git case was not well documented and not tested, and it was broken since we switched the build infrastructure.

In the git case, an update is to do a git pull. In the non-git case, it downloads a zip and unpacks it. The old build infra apparently had builds created for this; instead, I made it download it directly from github. Perhaps we should consider creating builds for this as well eventually?

Also add a test for this, so we never break it again.
2019-06-10 16:38:54 -07:00
Alon Zakai
169a3ac27c Error on downloading a 64-bit package on a non-64-bit OS (#265)
Also fix the can_be_installed which was always broken it seems - it returns True for success or a string for error, but didn't check if the output is True.

Includes a test, which hacks up emsdk to make it think it's on 32-bit, and verifies the error and message.
2019-06-06 09:04:05 -07:00
Alon Zakai
fef3dacae0 support sdk-tag-X.Y.Z-64bit (we supported it without -tag-, but that did work before) (#267) 2019-06-05 14:31:44 -07:00
Alon Zakai
1d3522678c Refactor test code into python (#264)
Keep the basic workflow test (checking what a user would do to get started) in bash, but otherwise it's more convenient for most tests to be in python.
2019-06-04 16:01:25 -07:00