Skip to content

Conversation

@Nekto89
Copy link
Contributor

@Nekto89 Nekto89 commented Nov 10, 2025

  • use compiler=emcc for Emscripten that is available since Conan 2.18.0
  • detect compiler.threads (posix and wasm_workers)
  • detect wasm64

@Nekto89
Copy link
Contributor Author

Nekto89 commented Nov 10, 2025

docker run --rm -v C:\dev\cmake-conan:/usr/src/cmake-conan -v C:\dev\test_emscripten_cmake:/usr/src/logs -it emscripten/emsdk:4.0.19 /bin/bash
export PATH=/usr/local/bin:$PATH
apt-get remove cmake
wget -qO- "https://github.com/Kitware/CMake/releases/download/v3.31.6/cmake-3.31.6-linux-x86_64.tar.gz" | tar --strip-components=1 -xz -C /usr/local
pip3 install conan==2.22.1
conan profile detect
emcmake cmake -B ~/bld -S /usr/src/cmake-conan/example -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS="-pthread" -DCMAKE_CXX_FLAGS="-pthread" -DCMAKE_EXE_LINKER_FLAGS="-pthread" -DCMAKE_TOOLCHAIN_FILE=/emsdk/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake -DCMAKE_PROJECT_TOP_LEVEL_INCLUDES=../conan_provider.cmake > /usr/src/logs/log.txt 2>&1
rm -rf ~/bld
emcmake cmake -B ~/bld -S /usr/src/cmake-conan/example -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS="-pthread -sMEMORY64=1" -DCMAKE_CXX_FLAGS="-pthread -sMEMORY64=1" -DCMAKE_EXE_LINKER_FLAGS="-pthread -sMEMORY64=1" -DCMAKE_TOOLCHAIN_FILE=/emsdk/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake -DCMAKE_PROJECT_TOP_LEVEL_INCLUDES=../conan_provider.cmake > /usr/src/logs/log64.txt 2>&1

log.txt
log64.txt

@Nekto89
Copy link
Contributor Author

Nekto89 commented Nov 10, 2025

docker run --rm -v C:\dev\cmake-conan:/usr/src/cmake-conan -v C:\dev\test_emscripten_cmake:/usr/src/logs -it emscripten/emsdk:4.0.19 /bin/bash
export PATH=/usr/local/bin:$PATH
apt-get remove cmake
wget -qO- "https://github.com/Kitware/CMake/releases/download/v3.31.6/cmake-3.31.6-linux-x86_64.tar.gz" | tar --strip-components=1 -xz -C /usr/local
pip3 install conan==2.22.1
conan profile detect
emcmake cmake -B ~/bld -S /usr/src/cmake-conan/example -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS="-pthread" -DCMAKE_CXX_FLAGS="-pthread" -DCMAKE_EXE_LINKER_FLAGS="-pthread" -DCMAKE_TOOLCHAIN_FILE=/emsdk/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake -DCMAKE_PROJECT_TOP_LEVEL_INCLUDES=../conan_provider.cmake > /usr/src/logs/log.txt 2>&1
rm -rf ~/bld
emcmake cmake -B ~/bld -S /usr/src/cmake-conan/example -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS="-pthread -sMEMORY64=1" -DCMAKE_CXX_FLAGS="-pthread -sMEMORY64=1" -DCMAKE_EXE_LINKER_FLAGS="-pthread -sMEMORY64=1" -DCMAKE_TOOLCHAIN_FILE=/emsdk/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake -DCMAKE_PROJECT_TOP_LEVEL_INCLUDES=../conan_provider.cmake > /usr/src/logs/log64.txt 2>&1

log.txt log64.txt

conan provider doesn't add CMAKE_TOOLCHAIN_FILE but at least it now properly detects compiler=emcc, compiler.threads=posix and arch=wasm64

@memsharded
Copy link
Member

conan provider doesn't add CMAKE_TOOLCHAIN_FILE but at least it now properly detects compiler=emcc, compiler.threads=posix and arch=wasm64

There is a PR open here #712 for this

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.

2 participants