Skip to content

Added Emscripten examples #184

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 13 commits into
base: main
Choose a base branch
from
Open

Added Emscripten examples #184

wants to merge 13 commits into from

Conversation

perseoGI
Copy link
Contributor

@perseoGI perseoGI commented Jun 2, 2025

No description provided.

Copy link
Member

@memsharded memsharded left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is looking good so far.

There are some typos, most don't matter, but the bindigs in the path, better fix it.

tools.build:sharedlinkflags=['-sALLOW_MEMORY_GROWTH=1']

# Set Ninja as default generator as it is faster and will sove issues on Windows
tools.cmake.cmaketoolchain:generator=Ninja
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the default generator for emcc? Unix/MinGW Makefiles?

@@ -0,0 +1,39 @@
# Note: this profile uses emsdk package from Conan Center Index
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Call this profile emcc_base or something like that?

deps.generate()

tc = CMakeToolchain(self)
tc.extra_exelinkflags.append(
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same as above, either a validate() or the flags go to the profile?

memsharded added a commit to conan-io/conan that referenced this pull request Jun 12, 2025
… + emcc) (#18432)

Changelog: Feature: Added first class citizen emscripten support (new
wasm64 architecture + emcc)
Docs: conan-io/docs#4115
Examples2: conan-io/examples2#184

This PR adds updated support to `wasm` (32 bits) and `asm.js` and
introduces new architecture `wasm64`.
@perseoGI perseoGI changed the title Added WASM examples Added Emscripten examples Jun 12, 2025
Comment on lines 21 to 24
# - name: Update ROS signing key (per ROS migration guide)
# run: |
# sudo rm /usr/share/keyrings/ros2-latest-archive-keyring.gpg
# sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros2-latest-archive-keyring.gpg
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isn't this necessary any more? Why is this commented?

run: |
sudo rm /usr/share/keyrings/ros2-latest-archive-keyring.gpg
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros2-latest-archive-keyring.gpg
# - name: Update ROS signing key (per ROS migration guide)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this was already fixed in main branch, could you sync your branch?

import os
from test.examples_tools import run

run('conan config install https://github.com/perseoGI/conan-toolchains.git -sf conan_config --args "-b pgi/new/emsdk"')
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is exactly being config-installed from your fork of the conan-toolchains? Does that repo contain configuration too? Sounds not possible for the examples repo, this should be more straightforward.

# https://github.com/emscripten-core/emscripten/blob/main/ChangeLog.md#407---041525
tc.extra_exelinkflags.append(
"-sEXPORTED_FUNCTIONS=['_malloc','_free'] \
-sEXPORTED_RUNTIME_METHODS=['ccall','cwrap','getValue','setValue','HEAPF32'] \
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am still a bit surprised of seeing these flags in recipes by default. Shouldn't flags belong to user toolchains somehow and not Conan? Where does users that use Emscripten put these flags if not using Conan?

import platform
from test.examples_tools import chdir, run

run('conan config install https://github.com/perseoGI/conan-toolchains.git -sf conan_config --args "-b pgi/new/emsdk"')
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same as above. @czoido to discuss

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

Successfully merging this pull request may close these issues.

3 participants