Skip to content

emsdk: recipe maintenance and latest version #27213

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 14 commits into
base: master
Choose a base branch
from

Conversation

croes
Copy link

@croes croes commented Apr 11, 2025

Summary

Changes to recipe: emsdk

Motivation

Add new version for emsdk

Details

Full explanation of changes in the following comment: #27213 (comment)

Closes #26778
Closes #26509
Closes #14350
Closes #26067


@CLAassistant
Copy link

CLAassistant commented Apr 11, 2025

CLA assistant check
All committers have signed the CLA.

@skhaz
Copy link
Contributor

skhaz commented Apr 29, 2025

Any change by this get merged?

@AbrilRBS
Copy link
Member

We'll be looking into the proposed approach to have emdsdk fetch its node version by itself - this would solve some issues we've seen with transitive dependency conflicts in some rare scenarios such as #26067 (cc @jjcasmar)

@perseoGI
Copy link
Contributor

perseoGI commented Jun 4, 2025

Greetings @croes,
The idea of removing the nodejs dependency from this recipe looks good to me.
emsdk already vendorizes plenty of dependencies, and it is better to delegate to the emscripten team which node version to use.
Also, didn't make much sense to have only one of the enormous number of dependencies vendorized and not the rest.

In my latest commit, I've:

  • Removed old test_v1_package and conan v1 specific code
  • Fix some linter issues
  • Removed numerous outdated versions that were no longer in use in CCI. There were 35 versions! I've limited it to 6
  • Added latest release 4.0.9
  • Added node binaries path to the bindirs in cpp_info. This will avoid any breaking change with previous recipe revisions, as any user depending only on emsdk will still have node, npm, npx (and corepack) available on their conanbuild environment -> this detail is crucial. And not only to avoid breaking changes, but because it is correct to add it as emsdk is a SDK which packages all the tools needed for cross-compiling and running JS/asm.js/WASM applications.

Motivation of adding both 4.0.6 and 4.0.9: version 4.0.6 was the latest version after an important breaking change was introduced in 4.0.7, see https://github.com/emscripten-core/emscripten/blob/main/ChangeLog.md#407---041525.

This PR will add both the latest version of emsdk and the latest version before the breaking change.

Important: Version 3.1.50 has not been removed as it is currently being used in CCI by libqasm.


EDIT

  • Replaced version 4.0.9 for 4.0.10.
  • Added cross compilation capabilities by defining EMSDK_ARCH
  • Removed old versions which didn't detect the EMSDK_ARCH environment
  • Fixed test_package to run as a standard requirement and not as a tool_requirement due to C3I capabilities
  • Marked this package with upload_policy = "skip". Conan Center Index won't store emsdk binaries as this recipe only packages a python script which will download pre compiled binaries from emscripten cloud.

@croes
Copy link
Author

croes commented Jun 4, 2025

@perseoGI Thank you for taking the time to not just consider removing the node dependency, but also taking it to the next level! The great explainer was the cherry on the cake 🍰

@perseoGI
Copy link
Contributor

perseoGI commented Jun 5, 2025

Thank you @croes,
I've been researching WASM recently, and we will hopefully add Emscripten documentation and some examples to the Conan documentation.
As you seem familiar with Emscripten, would you mind checking our current WIP PRs?
conan-io/docs#4115
Any feedback from Emscriptem users will be appreciated! 🐸

perseoGI added 2 commits June 6, 2025 13:37
Adapted test_package to support cross compilation
Added EMSDK_ARCH on VirtualBuildEnv to install proper binaries
Added latest version 4.0.10
@perseoGI perseoGI changed the title emsdk: add version 4.0.6 emsdk: recipe maintenance and latest version Jun 10, 2025
@fpelliccioni
Copy link
Contributor

@AbrilRBS @jcar87 guys, could you review this PR? please 🙏

@perseoGI
Copy link
Contributor

Greetings @fpelliccioni,

This PR is probably not going to be merged in CCI.
We have created a new repository, conan-toolchains.
Our plan is to move the toolchains in CCI to this new repository, and we have started with this one.

Check out the opened PR conan-io/conan-toolchains#4
We expect merging this PR as soon as possible!

Thank you for your patience and happy coding 🐸

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
7 participants