Граф коммитов

175 Коммитов

Автор SHA1 Сообщение Дата
Radek Doulik 4ae710c1fb Merge tag '3.1.34' 2023-03-27 19:37:25 +02:00
Radek Doulik d6ecc1bcf2 Merge pull request #307 from radekdoulik/pr-emscripten-bump-3-1-30-net8
Bump emscripten to 3.1.30
2023-03-10 11:53:07 +01:00
Radek Doulik ac3b38c12b Revert "Merge pull request #307 from radekdoulik/pr-emscripten-bump-3-1-30-net8"
This reverts commit 2552272b2e, reversing
changes made to b1090ea03d.
2023-03-09 22:22:59 +01:00
Radek Doulik 679202e8f8 Bump emscripten to 3.1.30 (2nd try) (#298)
* Revert "Revert "Bump emscripten to 3.1.30 (#282)" (#291)"

This reverts commit a117e262c0.

* Also update clang version in the wrapper
2023-03-09 15:34:31 +01:00
Sam Clegg c04b1bbb3a
Only add node/bin to user's PATH if one is not already found (#1189)
If the user already has a version of node in their PATH don't clobber
it.  This doesn't effect emscripten since the version of node we use
there is controlled via the config file, not via PATH.

Part of fix for #705.
2023-03-03 07:37:33 -08:00
Larry Ewing 212a8f867d
Revert "Bump emscripten to 3.1.30 (preview3)" 2023-03-01 07:48:18 -06:00
Radek Doulik bf7f60571a Bump emscripten to 3.1.30 (2nd try) (#298)
* Revert "Revert "Bump emscripten to 3.1.30 (#282)" (#291)"

This reverts commit a117e262c0.

* Also update clang version in the wrapper
2023-02-28 20:40:14 +01:00
Radek Doulik bf69464a06
Revert "Bump emscripten to 3.1.30 (2nd try) (#298)" (#299)
This reverts commit 9c29816837.
2023-02-22 18:47:04 +00:00
Radek Doulik 9c29816837
Bump emscripten to 3.1.30 (2nd try) (#298)
* Revert "Revert "Bump emscripten to 3.1.30 (#282)" (#291)"

This reverts commit a117e262c0.

* Also update clang version in the wrapper
2023-02-22 11:12:25 -06:00
Radek Bartoň 90b4a16f05
Remove unused build_target_platform parameter from make_build (#1187) 2023-02-16 09:49:40 -08:00
Radek Bartoň 7bcf1449c0
Add Windows Arm64 support for compiling from source (#1186) 2023-02-15 13:10:41 -08:00
Ankit Jain a117e262c0
Revert "Bump emscripten to 3.1.30 (#282)" (#291)
This reverts commit f55ecf5518.
2023-02-08 13:00:40 -05:00
Radek Doulik f55ecf5518
Bump emscripten to 3.1.30 (#282)
* [bazel] Set CLOSURE_COMPILER to workaround RBE+symlinks issue (#1037)

* [bazel] Set CLOSURE_COMPILER to workaround RBE+symlinks issue

* space

* specify node_js

* 3.1.10 (#1046)

* Optimize sandbox performance (#1045)

* Optimize sandbox performance

Link just the files needed to compile, link, or archive, rather than the entire directory tree. This drastically improves build times on macOS, where the sandbox is known to be slow (https://github.com/bazelbuild/bazel/issues/8230).

* Linux wants clang to link

* all_files not needed?

* Linux wants llc

* And llvm-ar

* Templated build_file_content

* include node modules glob with linker files. also some minor formatting fixes. (#1052)

* Using bazelisk on macOS CI (#1049)

* Explicit outputs for wasm_cc_binary (#1047)

* Explicit outputs for wasm_cc_binary

* Backwards compatibility

* data_runfiles restore

* restore test_bazel.sh

* Using wrong path on accident

* two separate rules for legacy support

* Added name attribute to wasm_cc_binary rule

* 3.1.11 (#1053)

* 3.1.12 (#1054)

* 3.1.13 (#1055)

* [bazel] Add additional files necessary for building with closure and on RBE (#1057)

* 3.1.14 (#1061)

* 3.1.15 (#1066)

* Pin `latest` to a specific version for arm64-linux (#1065)

Fixes: #1040

* 3.1.16 (#1071)

* 3.1.17 (#1076)

* Exclude msys from path fix function. (#1078)

Fixes: #911

* 3.1.18 (#1081)

* 3.1.18

* Update LLVM include path in Bazel files

* Version 3.1.18-2 (#1083)

3.1.18 had a bad release binary on ARM64 Mac so push an updated version of the release.

* 3.1.19 (#1090)

* Add EMSDK_QUIET to make emsdk_env less chatting (#1091)

Without this the recommended way to silence emsdk_env was to pipe its
stderr to /dev/null.. but then you also loose potentially useful error
message.

Fixes: #946

* 3.1.20 (#1095)

* Add double-quotes to allow spaces in path (#1097)

* 3.1.21 (#1101)

* Update latest-arm64-linux to 3.1.21 (#1102)

* Update XCode version on CircleCI (#1103)

12.2 is being deprecated

* 3.1.22 (#1107)

* 3.1.23 (#1111)

* Avoid exporting EM_CONFIG for modern SDK versions (#1110)

Newer versions of emscipten, starting all the way back in 1.39.13, can
automatically locate the `.emscripten` config file that emsdk creates so
there is no need for the explicit EM_CONFIG environment variable.  Its
redundant and adds unnessary noisce/complexity.

Really, adding emcc to the PATH is all the is needed these days.

One nice thing about this change is that it allows folks to run
whichever emcc they want to and have it just work, even if they have
configured emsdk.   Without this change, if I activate emsdk and I run
`some/other/emcc` then emsdk's `EM_CONFIG` will still be present and
override the configuration embedded in `some/other/emcc`.

e.g. in the same shell, with emsdk activated, I can run both these
commands and have them both just work as expected.

```
$ emcc --version
$ /path/to/my/emcc --version
```

* Use x64 version for Windows on Arm (#1115)

* 3.1.24 (#1122)

* 3.1.25 (#1130)

* [bazel] Switch to platforms-based toolchain resolution (#1036)

* remove "name" attribute from bazel rules (#1131)

* 3.1.26 (#1134)

* Update remote_docker version in CircleCI config (#1117)

20.10.17 is the current default.

* docker image: Change base to Ubuntu 22.04 LTS (jammy) (#1135)

Done to upgrade from CMake 3.16.3 to 3.22.1. CMake 3.21 or newer is needed to build the Qt 6.4.1 sources with emscripten.

Also update to libidn12 to resolve an "Unable to locate package libidn11" error.

* 3.1.27 (#1139)

* Use constants for fixed paths. NFC (#1140)

* Add standalone_wasm feature to bazel emscripten_toolchain (#1145)

* 3.1.28 (#1149)

* Upgrade to rules_nodejs 5.8.0 (#1150)

Fixes https://github.com/emscripten-core/emsdk/issues/1020

* 3.1.29 (#1160)

* Pin Windows CI to Bazel 5.4.0 (#1163)

* Remove reference to fastcomp-latest. NFC (#1164)

fastcomp can only be install using explicit versions names so this name
doesn't work.

* Remove fastcomp SDK and fastcomp build rules. NFC (#1165)

Folks that want to work with fastcomp will now need to use an older
checkout of emsdk.

* 3.1.30 (#1167)

* Bump emscripten to 3.1.30

* Bump clang version

* Do not include test directory

* Update eng/emsdk.proj

Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>

---------

Co-authored-by: Kevin Lubick <kjlubick@users.noreply.github.com>
Co-authored-by: Sam Clegg <sbc@chromium.org>
Co-authored-by: John Firebaugh <john.firebaugh@gmail.com>
Co-authored-by: walkingeyerobot <mitch@thefoley.net>
Co-authored-by: Ezekiel Warren <zaucy@users.noreply.github.com>
Co-authored-by: Heejin Ahn <aheejin@gmail.com>
Co-authored-by: Tim Ebbeke <Tim06TR@gmail.com>
Co-authored-by: Derek Schuff <dschuff@chromium.org>
Co-authored-by: Joel Van Eenwyk <joel.vaneenwyk@gmail.com>
Co-authored-by: Pierrick Bouvier <101587250+pbo-linaro@users.noreply.github.com>
Co-authored-by: Trevor Hickey <TrevorJamesHickey@gmail.com>
Co-authored-by: Fredrik Orderud <forderud@users.noreply.github.com>
Co-authored-by: Robbert van Ginkel <570934+robbertvanginkel@users.noreply.github.com>
Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
2023-02-07 13:06:50 -06:00
Sam Clegg 6305e91dee
Improve ordering in `emsdk list` (#1180)
We have an existing `version_key` helper function for sorting versions.

It also does a better job, producing output like:

```
All recent (non-legacy) installable versions are:
         3.1.31
         3.1.31-asserts
         3.1.30
         3.1.30-asserts
         3.1.29
         3.1.29-asserts
```

Rather than:

```
All recent (non-legacy) installable versions are:
         3.1.31
         3.1.30
         3.1.29
         3.1.28
         3.1.27
```

(with -assert versions listed after 3.1.0)
2023-01-30 15:46:18 -08:00
juj c678733d9e
Remove support for building with Visual Studio 2017. Since Jan 29, 2022, upstream LLVM has required VS2019 or VS2022 to build. So it has not been possible to build emsdk from source with VS2017 for a year. 058c5dfc78 (#1178) 2023-01-30 17:46:04 +02:00
juj 592b7b74e4
Fix args ordering in LLVM build from previous commit (#1179) 2023-01-28 15:58:49 +02:00
juj fa5f5f374f
Add support for Visual Studio 2022 (#1177)
* Add support for Visual Studio 2022 and migrate to using cmake --build when building on Windows. Leverage the VS2019 MSBuild 'Multi-ToolTask' feature CL_MPCount to saturate project builds properly to 100% CPU usage so building LLVM builds different cpp files in parallel. Clean up some code duplication around Visual Studio support.

* flake

* Work around Linux bot not having 'cmake --build . -j' flag.
2023-01-28 13:08:17 +02:00
Sam Clegg ae2664b48f
Remove uneeded str. NFC (#1170)
These function already returns a string.
2023-01-13 20:14:55 -08:00
Sam Clegg 1eaaa4c5b4
Remove `-upstream` component of SDK names (#1166)
This name existed to distinguish the SDK from fastcomp, but as of #1165,
we no longer support fastcomp.
2023-01-13 20:11:55 -08:00
Sam Clegg f3bb209b86
Remove fastcomp SDK and fastcomp build rules. NFC (#1165)
Folks that want to work with fastcomp will now need to use an older
checkout of emsdk.
2023-01-09 04:53:13 -08:00
Sam Clegg 58904e9b74
Remove reference to fastcomp-latest. NFC (#1164)
fastcomp can only be install using explicit versions names so this name
doesn't work.
2023-01-05 09:17:17 -08:00
Sam Clegg 32fba7b7c4
Use constants for fixed paths. NFC (#1140) 2022-11-30 16:32:26 -08:00
Pierrick Bouvier 35358657b4
Use x64 version for Windows on Arm (#1115) 2022-10-08 17:17:19 -07:00
Sam Clegg 3d87d5ea81
Avoid exporting EM_CONFIG for modern SDK versions (#1110)
Newer versions of emscipten, starting all the way back in 1.39.13, can
automatically locate the `.emscripten` config file that emsdk creates so
there is no need for the explicit EM_CONFIG environment variable.  Its
redundant and adds unnessary noisce/complexity.

Really, adding emcc to the PATH is all the is needed these days.

One nice thing about this change is that it allows folks to run
whichever emcc they want to and have it just work, even if they have
configured emsdk.   Without this change, if I activate emsdk and I run
`some/other/emcc` then emsdk's `EM_CONFIG` will still be present and
override the configuration embedded in `some/other/emcc`.

e.g. in the same shell, with emsdk activated, I can run both these
commands and have them both just work as expected.

```
$ emcc --version
$ /path/to/my/emcc --version
```
2022-10-06 14:13:13 -07:00
Sam Clegg e456ebdd52
Add EMSDK_QUIET to make emsdk_env less chatting (#1091)
Without this the recommended way to silence emsdk_env was to pipe its
stderr to /dev/null.. but then you also loose potentially useful error
message.

Fixes: #946
2022-08-19 12:13:03 -07:00
Tim Ebbeke 5ad3ff05a7
Exclude msys from path fix function. (#1078)
Fixes: #911
2022-07-23 21:31:41 -07:00
Sam Clegg b0a51b36ee
Pin `latest` to a specific version for arm64-linux (#1065)
Fixes: #1040
2022-07-01 15:26:24 -07:00
juj 7978a62f2b
Pass -DENABLE_WERROR=0 when building Binaryen (#1028)
* Pass -DENABLE_WERROR=0 when building Binaryen

We are experiencing an issue at our Unity CI with building Binaryen: https://github.com/WebAssembly/binaryen/issues/4588

It seems that for end users, disabling -Werror is a good general measure to enable wider chance of success to build. Emsdk installations are unlikely to be used by Binaryen developers to iterate on Binaryen development, so it is not necessary there?

* Flake
2022-04-13 19:48:00 +03:00
juj c2147f3b87
Enable building LLVM with about-to-be deprecated toolchains (#1029)
* Enable building LLVM with about-to-be deprecated toolchains for best chance of succeeding with the build.

* Shorten line length

* Adjust to 80 columns
2022-04-13 19:44:14 +03:00
juj 7d5e3f3e45
Git clone desired target branch directly (#1030)
When doing a git clone of a branch, instead of doing a general git clone that first would check out the default (main/master) branch and then later doing a checkout to switch to the target branch, instead specify the `--branch` option to the clone command line to immediately clone and checkout the desired final branch.

This helps first checkout runtime performance on CIs, especially when using shallow clones (GIT_CLONE_SHALLOW option).

Also this sidesteps a really odd git clone issue we are currently seeing in our CI, where it is unable to `checkout` the googletest submodule in binaryen, but would fail saying "path not found".
2022-04-13 19:34:37 +03:00
juj 051d745e16
Fix native Closure Compiler to work. (#995)
* Fix native Closure Compiler to work. Reverts my earlier PR #803 which was a great mistake, as it caused Emscripten to silently fall back to Java version of the Closure Compiler. After this PR, Closure Compiler will work on user platforms that do not have Java installed. Also forcibly remove Java version of Closure Compiler on systems where installing the native version succeeds, in order to save on code size.

* Add note to bug

* Improve google-closure-compiler-java uninstall.

* Read Closure version from Emscripten repository

* Skip native google-closure-compiler install when it is not present in the emscripten branch in package.json

* Print error
2022-04-13 16:44:59 +03:00
juj 9498542d95
Cache git executable search into a variable. (#1021)
* Cache git executable search into a variable. This helps reduce noise in the verbose debug logging output messages when EMSDK_VERBOSE=1 is enabled.

* Flake

* Mark cached_git_executable global
2022-04-12 16:08:02 -07:00
百地 希留耶 714d434b1a
Set environment for powershell on all platforms (#1017) 2022-03-28 08:41:40 -07:00
Sam Clegg dd10e14bce
Followup from #1013 (#1015) 2022-03-24 16:19:49 -07:00
Sam Clegg 1b1f5f24df
Remove unused codepath for single-file tools. NFC (#1013)
We don't have any tools that are just one file, and indeed we
assume these days that tools install to their own directory.
2022-03-24 15:29:40 -07:00
Sam Clegg 2a68987f5e
Remove non-ascii char from emsdk.py. NFC (#1014)
This was introduced by mistake in #996 and causes Emsdk.test_no_32bit to fail.
2022-03-23 16:26:39 -07:00
juj 497595e830
Fix macOS build (#996)
* Fix macOS build. See https://github.com/WebAssembly/binaryen/issues/4299

* Update comment
2022-03-23 09:32:54 +02:00
Sam Clegg 637777bd62
Minor python code cleanup (#1008)
Regarding the change to `content_exists`, we only support tools that
are directories full of files, there is no such thing as a tool that
is just a single file and not a directory.
2022-03-22 16:52:43 -07:00
Sam Clegg 3e7e0ab8c3
Add prebuilt binaries of 3.1.7 for linux/arm64 (#1011) 2022-03-22 16:02:05 -07:00
Sam Clegg 433a2d1bc0
Remove some unused functions. NFC (#1007) 2022-03-18 19:12:58 +00:00
Sam Clegg 858f73d260
Consistent use of os.getenv. NFC (#1006)
Is slightly less typing than os.environ.get().

Followup to #1004.
2022-03-18 18:26:57 +00:00
Sam Clegg bfcfad3a99
Remove unsed 'windows_install_path' (#1005) 2022-03-18 14:23:22 -04:00
Sam Clegg 82301254f7
Use second argument to `os.getenv` to simplify code. NFC (#1004) 2022-03-18 11:03:05 -07:00
Sam Clegg 7a09f8cc1c
Add mechanism to override OS (for testing purposes) (#993)
Similar to `EMSDK_ARCH` which I added in #935.
2022-02-25 09:42:12 -08:00
Sam Clegg fd08e9ad24
Error (don't just warn) on unknown architecture (#935)
Also, add tests for unknown architecture and wrong bitness and
add a mechanism (`EMSDK_ARCH`) to override the architecture assumed
by emsdk.
2022-02-25 00:44:14 -05:00
Sam Clegg 0f0ea34526
Add `git submodule update` when doing a git checkout (#974)
This is required to build binaryen since
https://github.com/WebAssembly/binaryen/pull/4466
2022-01-20 17:25:43 -05:00
Sam Clegg 447aa44d78
Remove `download_even_if_exists` argument to download_and_unzip (#964)
These days this argument really means `install_even_if_directory_exists`
(at least since #9300.

However by the time we call `download_and_unzip` we have already checked
that `is_installed()` is false so we know we want to install for sure.
If the installation directory already existed and contained the correct
contents we would never get as far as `download_and_unzip`.
2022-01-10 12:49:51 -08:00
Sam Clegg 82ad00499a
Remove unused argument. NFC (#952)
The usage of this argument was removed in #838.
2022-01-05 06:00:44 -08:00
Greg Buchholz 060b48f0c6
Correct typo in "emsdk help" message. (#959)
When invoking "emsdk help", there is a typo/grammatical error in the second to last paragraph.
See also:

    https://github.com/emscripten-core/emsdk/issues/957
2021-12-26 15:26:51 -08:00
Sam Clegg 4764bfa848
Add test and remove unused args (#951)
Followup to #930: Add a tests, and remove newly-unused arguments
to unzip and untargz.
2021-12-22 16:21:07 -08:00