diff --git a/.github/workflows/emscripten.yml b/.github/workflows/emscripten.yml deleted file mode 100644 index c3ce3d4c..00000000 --- a/.github/workflows/emscripten.yml +++ /dev/null @@ -1,570 +0,0 @@ -name: Emscripten -on: - pull_request: - branches: [master] - push: - branches: [master] - release: - types: [published] - schedule: - - cron: '30 20 * * *' # Warning: Timezone dep - 20:00 is 1:00 - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number }} - cancel-in-progress: true - -jobs: - build_cache: - name: ${{ matrix.name }} - runs-on: ${{ matrix.os }} - strategy: - fail-fast: false - matrix: - include: - - name: ubu22-x86-gcc12-clang-repl-19-emscripten - os: ubuntu-22.04 - compiler: gcc-12 - clang-runtime: '19' - cling: Off - llvm_enable_projects: "clang;lld" - llvm_targets_to_build: "WebAssembly" - emsdk_ver: "3.1.73" - - name: ubu22-arm-gcc12-clang-repl-19-emscripten - os: ubuntu-22.04-arm - compiler: gcc-12 - clang-runtime: '19' - cling: Off - llvm_enable_projects: "clang;lld" - llvm_targets_to_build: "WebAssembly" - emsdk_ver: "3.1.73" - - name: osx26-arm-clang-clang-repl-19-emscripten - os: macos-26 - compiler: clang - clang-runtime: '19' - cling: Off - llvm_enable_projects: "clang;lld" - llvm_targets_to_build: "WebAssembly" - emsdk_ver: "3.1.73" - - name: osx15-x86-clang-clang-repl-19-emscripten - os: macos-15-intel - compiler: clang - clang-runtime: '19' - cling: Off - llvm_enable_projects: "clang;lld" - llvm_targets_to_build: "WebAssembly" - emsdk_ver: "3.1.73" - - steps: - - uses: actions/checkout@v4 - with: - repository: compiler-research/CppInterOp - path: ${{ github.workspace }}/CppInterOp - fetch-depth: 0 - - - name: Set up Python - uses: actions/setup-python@v5 - with: - python-version: '3.11' - - - name: Save PR Info on Unix systems - if: ${{ runner.os != 'windows' }} - run: | - mkdir -p ./pr - echo ${{ github.event.number }} > ./pr/NR - echo ${{ github.repository }} > ./pr/REPO - - cling_on=$(echo "${{ matrix.cling }}" | tr '[:lower:]' '[:upper:]') - if [[ "$cling_on" == "ON" ]]; then - export CLING_HASH=$(git ls-remote https://github.com/root-project/cling.git refs/tags/v${{ matrix.cling-version }} | tr '\t' '-') - export LLVM_HASH=$(git ls-remote https://github.com/root-project/llvm-project.git cling-llvm${{ matrix.clang-runtime}} | tr '\t' '-') - else - export CLING_HASH="Repl" - # May need to revert back to both having same llvm_hash, as below cause llvm to be rebuilt everytime commit is made to llvm/llvm-project for release a.x - # which could be quite often for new releases - export LLVM_HASH=$(git ls-remote https://github.com/llvm/llvm-project.git refs/heads/release/${{ matrix.clang-runtime}}.x | tr '\t' '-') - fi - - echo "CLING_HASH=$CLING_HASH" >> $GITHUB_ENV - echo "LLVM_HASH=$LLVM_HASH" >> $GITHUB_ENV - - - name: Save PR Info on Windows systems - if: ${{ runner.os == 'windows' }} - run: | - #can be found - mkdir ./pr - echo "${{ github.event.number }}" > ./pr/NR - echo ${{ github.repository }} > ./pr/REPO - - if ( "${{ matrix.cling }}" -imatch "On" ) - { - $env:CLING_HASH_TEMP = ( git ls-remote https://github.com/root-project/cling.git refs/tags/v${{ matrix.cling-version }} ) - $env:CLING_HASH = $env:CLING_HASH_TEMP -replace "\t","-" - } - else - { - $env:CLING_HASH="Repl" - # May need to revert back to both having same llvm_hash, as below cause llvm to be rebuilt everytime commit is made to llvm/llvm-project for release a.x - # which could be quite often for new releases - $env:LLVM_HASH_TEMP = (git ls-remote https://github.com/llvm/llvm-project.git refs/heads/release/${{ matrix.clang-runtime}}.x ) - $env:LLVM_HASH = $env:LLVM_HASH_TEMP -replace "\t","-" - } - - echo "CLING_HASH=$env:CLING_HASH" - echo "LLVM_HASH=$env:LLVM_HASH" - - echo "CLING_HASH=$env:CLING_HASH" >> $GITHUB_ENV - echo "LLVM_HASH=$env:LLVM_HASH" >> $GITHUB_ENV - - - name: Restore Cache LLVM/Clang runtime build directory (Unix like systems emscripten) - uses: actions/cache/restore@v4 - id: cache - with: - path: | - llvm-project - ${{ matrix.cling=='On' && 'cling' || '' }} - key: ${{ env.CLING_HASH }}-${{ runner.os }}-${{ matrix.os }}-${{ matrix.compiler }}-clang-${{ matrix.clang-runtime }}.x-emscripten - lookup-only: true - - - name: Setup emsdk - if: ${{ runner.os != 'windows' && steps.cache.outputs.cache-hit != 'true' }} - run: | - git clone --depth=1 https://github.com/emscripten-core/emsdk.git - ./emsdk/emsdk install ${{ matrix.emsdk_ver }} - - - name: Setup default Build Type on Windows - if: ${{ runner.os == 'windows' && steps.cache.outputs.cache-hit != 'true' }} - run: | - echo "BUILD_TYPE=Release" >> $env:GITHUB_ENV - echo "CODE_COVERAGE=0" >> $env:GITHUB_ENV - $env:ncpus=$([Environment]::ProcessorCount) - echo "ncpus=$env:ncpus" >> $env:GITHUB_ENV - - - name: Install deps on Windows - if: ${{ runner.os == 'windows' && steps.cache.outputs.cache-hit != 'true' }} - run: | - choco install findutils ninja - $env:PATH="C:\Program Files (x86)\GnuWin32\bin;$env:PATH" - $env:PATH="C:\Program Files (x86)\Ninja\bin;$env:PATH" - - - name: Install deps on MacOS - if: ${{ runner.os == 'macOS' && steps.cache.outputs.cache-hit != 'true' }} - run: | - brew update - export ARCHITECHURE=$(uname -m) - if [[ "$ARCHITECHURE" != "x86_64" ]]; then - brew remove unxip - fi - # workaround for https://github.com/actions/setup-python/issues/577 - for pkg in $(brew list | grep '^python@'); do - brew unlink "$pkg" - brew link --overwrite "$pkg" - done - brew install ninja - - - name: Install deps on Linux - if: ${{ runner.os == 'Linux' && steps.cache.outputs.cache-hit != 'true' }} - run: | - # Install deps - sudo apt-get update - sudo apt-get install ninja-build - sudo apt-get autoremove - sudo apt-get clean - - - name: Build LLVM/Cling on Unix systems if the cache is invalid (emscripten) - if: ${{ runner.os != 'windows' && steps.cache.outputs.cache-hit != 'true' }} - run: | - ${{ github.workspace }}/emsdk/emsdk activate ${{matrix.emsdk_ver}} - source ${{ github.workspace }}/emsdk/emsdk_env.sh - cling_on=$(echo "${{ matrix.cling }}" | tr '[:lower:]' '[:upper:]') - if [[ "${cling_on}" == "ON" ]]; then - git clone https://github.com/root-project/cling.git - cd ./cling - git checkout tags/v${{ matrix.cling-version }} - cd .. - git clone --depth=1 -b cling-llvm${{ matrix.clang-runtime }} https://github.com/root-project/llvm-project.git - else # repl - git clone --depth=1 -b release/${{ matrix.clang-runtime }}.x https://github.com/llvm/llvm-project.git - fi - cd llvm-project - # Build - mkdir native_build - cd native_build - cmake -DLLVM_ENABLE_PROJECTS=clang -DLLVM_TARGETS_TO_BUILD=host -DCMAKE_BUILD_TYPE=Release ../llvm/ - cmake --build . --target llvm-tblgen clang-tblgen --parallel $(nproc --all) - export NATIVE_DIR=$PWD/bin/ - cd .. - mkdir build - if [[ "${cling_on}" == "ON" ]]; then - cd build - emcmake cmake -DLLVM_EXTERNAL_PROJECTS=cling \ - -DLLVM_EXTERNAL_CLING_SOURCE_DIR=../../cling \ - -DCMAKE_BUILD_TYPE=Release \ - -DLLVM_HOST_TRIPLE=wasm32-unknown-emscripten \ - -DLLVM_ENABLE_ASSERTIONS=ON \ - -DLLVM_TARGETS_TO_BUILD="${{ matrix.llvm_targets_to_build }}" \ - -DLLVM_ENABLE_LIBEDIT=OFF \ - -DLLVM_ENABLE_PROJECTS="${{ matrix.llvm_enable_projects }}" \ - -DLLVM_ENABLE_ZSTD=OFF \ - -DLLVM_ENABLE_LIBXML2=OFF \ - -DCLANG_ENABLE_STATIC_ANALYZER=OFF \ - -DCLANG_ENABLE_ARCMT=OFF \ - -DCLANG_ENABLE_BOOTSTRAP=OFF \ - -DCMAKE_CXX_FLAGS="-Dwait4=__syscall_wait4" \ - -DLLVM_INCLUDE_BENCHMARKS=OFF \ - -DLLVM_INCLUDE_EXAMPLES=OFF \ - -DLLVM_INCLUDE_TESTS=OFF \ - -DLLVM_ENABLE_THREADS=OFF \ - -G Ninja \ - ../llvm - emmake ninja clang cling lld gtest_main -j ${{ env.ncpus }} - else - # Apply patches - llvm_vers=$(echo "${{ matrix.clang-runtime }}" | tr '[:lower:]' '[:upper:]') - if [[ "${llvm_vers}" == "19" || "${llvm_vers}" == "20" ]]; then - git apply -v ${{ github.workspace }}/CppInterOp/patches/llvm/emscripten-clang${{ matrix.clang-runtime }}-*.patch - echo "Apply emscripten-clang${{ matrix.clang-runtime }}-*.patch patches:" - fi - cd build - emcmake cmake -DCMAKE_BUILD_TYPE=Release \ - -DLLVM_HOST_TRIPLE=wasm32-unknown-emscripten \ - -DLLVM_TARGETS_TO_BUILD="${{ matrix.llvm_targets_to_build }}" \ - -DLLVM_ENABLE_LIBEDIT=OFF \ - -DLLVM_ENABLE_PROJECTS="${{ matrix.llvm_enable_projects }}" \ - -DLLVM_ENABLE_ZSTD=OFF \ - -DLLVM_ENABLE_LIBXML2=OFF \ - -DCLANG_ENABLE_STATIC_ANALYZER=OFF \ - -DCLANG_ENABLE_ARCMT=OFF \ - -DCLANG_ENABLE_BOOTSTRAP=OFF \ - -DCMAKE_CXX_FLAGS="-Dwait4=__syscall_wait4" \ - -DLLVM_INCLUDE_BENCHMARKS=OFF \ - -DLLVM_INCLUDE_EXAMPLES=OFF \ - -DLLVM_INCLUDE_TESTS=OFF \ - -DLLVM_ENABLE_THREADS=OFF \ - -DLLVM_BUILD_TOOLS=OFF \ - -DLLVM_ENABLE_LIBPFM=OFF \ - -DCLANG_BUILD_TOOLS=OFF \ - -G Ninja \ - -DLLVM_NATIVE_TOOL_DIR=$NATIVE_DIR \ - -DCMAKE_C_FLAGS_RELEASE="-Oz -g0 -DNDEBUG" \ - -DCMAKE_CXX_FLAGS_RELEASE="-Oz -g0 -DNDEBUG" \ - -DLLVM_ENABLE_LTO=Full \ - ../llvm - emmake ninja libclang clangInterpreter clangStaticAnalyzerCore lldWasm - fi - cd ../ - rm -rf $(find . -maxdepth 1 ! -name "build" ! -name "llvm" ! -name "clang" ! -name ".") - if [[ "${cling_on}" == "ON" ]]; then - cd ./llvm/ - rm -rf $(find . -maxdepth 1 ! -name "include" ! -name "lib" ! -name "cmake" ! -name "utils" ! -name ".") - cd ../clang/ - rm -rf $(find . -maxdepth 1 ! -name "include" ! -name "lib" ! -name "cmake" ! -name "utils" ! -name ".") - cd ../.. - else # repl - cd ./llvm/ - rm -rf $(find . -maxdepth 1 ! -name "include" ! -name "lib" ! -name "cmake" ! -name ".") - cd ../clang/ - rm -rf $(find . -maxdepth 1 ! -name "include" ! -name "lib" ! -name "cmake" ! -name ".") - cd ../.. - fi - - - name: Build LLVM/Cling on Windows systems if the cache is invalid - if: ${{ runner.os == 'windows' && steps.cache.outputs.cache-hit != 'true' }} - run: | - - if ( "${{ matrix.cling }}" -imatch "On" ) - { - git clone https://github.com/root-project/cling.git - cd ./cling - git checkout tags/v${{ matrix.cling-version }} - git apply -v ${{ github.workspace }}/CppInterOp/patches/llvm/cling1.2-LookupHelper.patch - cd .. - git clone --depth=1 -b cling-llvm${{ matrix.clang-runtime }} https://github.com/root-project/llvm-project.git - $env:PWD_DIR= $PWD.Path - $env:CLING_DIR="$env:PWD_DIR\cling" - echo "CLING_DIR=$env:CLING_DIR" - } - else - { - git clone --depth=1 -b release/${{ matrix.clang-runtime }}.x https://github.com/llvm/llvm-project.git - } - - cd llvm-project - # Build - mkdir build - if ( "${{ matrix.cling }}" -imatch "On" ) - { - cd build - cmake -DLLVM_ENABLE_PROJECTS="${{ matrix.llvm_enable_projects}}" ` - -DLLVM_EXTERNAL_PROJECTS=cling ` - -DLLVM_EXTERNAL_CLING_SOURCE_DIR="$env:CLING_DIR" ` - -DLLVM_TARGETS_TO_BUILD="${{ matrix.llvm_targets_to_build }}" ` - -DCMAKE_BUILD_TYPE=Release ` - -DLLVM_ENABLE_ASSERTIONS=ON ` - -DCLANG_ENABLE_STATIC_ANALYZER=OFF ` - -DCLANG_ENABLE_ARCMT=OFF ` - -DCLANG_ENABLE_FORMAT=OFF ` - -DCLANG_ENABLE_BOOTSTRAP=OFF ` - -DLLVM_ENABLE_ZSTD=OFF ` - -DLLVM_ENABLE_TERMINFO=OFF ` - -DLLVM_ENABLE_LIBXML2=OFF ` - ..\llvm - cmake --build . --config Release --target clang --parallel ${{ env.ncpus }} - cmake --build . --config Release --target LLVMOrcDebugging --parallel ${{ env.ncpus }} - cmake --build . --config Release --target clingInterpreter --parallel ${{ env.ncpus }} - } - else - { - cp -r ..\patches\llvm\clang${{ matrix.clang-runtime }}* - #FIXME: Apply patches without hardcoding - if ( "${{ matrix.clang-runtime }}" -imatch "16" ) - { - git apply -v clang16-1-Value.patch - git apply -v clang16-2-CUDA.patch - git apply -v clang16-3-WeakRef.patch - } - elseif ( "${{ matrix.clang-runtime }}" -imatch "17" ) - { - git apply -v clang17-1-NewOperator.patch - } - cd build - echo "Apply clang${{ matrix.clang-runtime }}-*.patch patches:" - cmake -DLLVM_ENABLE_PROJECTS="${{ matrix.llvm_enable_projects}}" ` - -DLLVM_TARGETS_TO_BUILD="${{ matrix.llvm_targets_to_build }}" ` - -DCMAKE_BUILD_TYPE=Release ` - -DLLVM_ENABLE_ASSERTIONS=ON ` - -DCLANG_ENABLE_STATIC_ANALYZER=OFF ` - -DCLANG_ENABLE_ARCMT=OFF ` - -DCLANG_ENABLE_FORMAT=OFF ` - -DCLANG_ENABLE_BOOTSTRAP=OFF ` - -DLLVM_ENABLE_ZSTD=OFF ` - -DLLVM_ENABLE_TERMINFO=OFF ` - -DLLVM_ENABLE_LIBXML2=OFF ` - ..\llvm - cmake --build . --config Release --target clang clangInterpreter clangStaticAnalyzerCore --parallel ${{ env.ncpus }} - } - cd ..\ - rm -r -force $(find.exe . -maxdepth 1 ! -name "build" ! -name "llvm" ! -name "clang" ! -name ".") - if ( "${{ matrix.cling }}" -imatch "On" ) - { - cd .\llvm\ - rm -r -force $(find.exe . -maxdepth 1 ! -name "include" ! -name "lib" ! -name "cmake" ! -name "utils" ! -name ".") - cd ..\clang\ - rm -r -force $(find.exe . -maxdepth 1 ! -name "include" ! -name "lib" ! -name "cmake" ! -name "utils" ! -name ".") - cd ..\.. - } - else - { - cd .\llvm\ - rm -r -force $(find.exe . -maxdepth 1 ! -name "include" ! -name "lib" ! -name "cmake" ! -name ".") - cd ..\clang\ - rm -r -force $(find.exe . -maxdepth 1 ! -name "include" ! -name "lib" ! -name "cmake" ! -name ".") - cd ..\.. - } - - - name: Save Cache LLVM/Clang runtime build directory (Unix Systems Emscripten) - uses: actions/cache/save@v4 - if: ${{ runner.os != 'windows' && steps.cache.outputs.cache-hit != 'true' }} - with: - path: | - llvm-project - ${{ matrix.cling=='On' && 'cling' || '' }} - key: ${{ steps.cache.outputs.cache-primary-key }} - - emscripten_wasm_CppInterOp_and_xeus_cpp: - needs: [build_cache] - name: ${{ matrix.name }} - runs-on: ${{ matrix.os }} - strategy: - fail-fast: false - matrix: - include: - - name: ubu22-x86-gcc12-clang-repl-19-emscripten_wasm - os: ubuntu-22.04 - compiler: gcc-12 - clang-runtime: '19' - cling: Off - micromamba_shell_init: bash - emsdk_ver: "3.1.73" - - name: ubu22-arm-gcc12-clang-repl-19-emscripten_wasm - os: ubuntu-22.04-arm - compiler: gcc-12 - clang-runtime: '19' - cling: Off - micromamba_shell_init: bash - emsdk_ver: "3.1.73" - - name: osx26-arm-clang-clang-repl-19-emscripten_wasm - os: macos-26 - compiler: clang - clang-runtime: '19' - cling: Off - micromamba_shell_init: bash - emsdk_ver: "3.1.73" - - name: osx15-x86-clang-clang-repl-19-emscripten_wasm - os: macos-15-intel - compiler: clang - clang-runtime: '19' - cling: Off - micromamba_shell_init: bash - emsdk_ver: "3.1.73" - - steps: - - uses: actions/checkout@v4 - with: - repository: compiler-research/CppInterOp - path: ${{ github.workspace }}/CppInterOp - fetch-depth: 0 - - - uses: actions/checkout@v4 - with: - repository: compiler-research/xeus-cpp - path: ${{ github.workspace }}/xeus-cpp - fetch-depth: 0 - - - name: Set up Python - uses: actions/setup-python@v5 - with: - python-version: '3.11' - - - name: Save PR Info on Unix systems - if: ${{ runner.os != 'windows' }} - run: | - mkdir -p ./pr - echo ${{ github.event.number }} > ./pr/NR - echo ${{ github.repository }} > ./pr/REPO - - cling_on=$(echo "${{ matrix.cling }}" | tr '[:lower:]' '[:upper:]') - if [[ "$cling_on" == "ON" ]]; then - export CLING_HASH=$(git ls-remote https://github.com/root-project/cling.git refs/tags/v${{ matrix.cling-version }} | tr '\t' '-') - export LLVM_HASH=$(git ls-remote https://github.com/root-project/llvm-project.git cling-llvm${{ matrix.clang-runtime}} | tr '\t' '-') - else - export CLING_HASH="Repl" - # May need to revert back to both having same llvm_hash, as below cause llvm to be rebuilt everytime commit is made to llvm/llvm-project for release a.x - # which could be quite often for new releases - export LLVM_HASH=$(git ls-remote https://github.com/llvm/llvm-project.git refs/heads/release/${{ matrix.clang-runtime}}.x | tr '\t' '-') - fi - - echo "CLING_HASH=$CLING_HASH" >> $GITHUB_ENV - echo "LLVM_HASH=$LLVM_HASH" >> $GITHUB_ENV - - - name: Setup default Build Type on *nux - if: runner.os != 'windows' - run: | - echo "BUILD_TYPE=Release" >> $GITHUB_ENV - echo "CODE_COVERAGE=0" >> $GITHUB_ENV - os="${{ matrix.os }}" - if [[ "${os}" == "macos"* ]]; then - echo "ncpus=$(sysctl -n hw.ncpu)" >> $GITHUB_ENV - else - echo "ncpus=$(nproc --all)" >> $GITHUB_ENV - fi - - - name: install mamba - uses: mamba-org/setup-micromamba@main - with: - init-shell: >- - ${{ matrix.micromamba_shell_init }} - - - name: Setup emsdk - shell: bash -l {0} - run: | - git clone --depth=1 https://github.com/emscripten-core/emsdk.git - ./emsdk/emsdk install ${{ matrix.emsdk_ver }} - - - name: Restore Cache LLVM/Clang runtime build directory - uses: actions/cache/restore@v4 - id: cache - with: - path: | - llvm-project - ${{ matrix.cling=='On' && 'cling' || '' }} - key: ${{ env.CLING_HASH }}-${{ runner.os }}-${{ matrix.os }}-${{ matrix.compiler }}-clang-${{ matrix.clang-runtime }}.x-emscripten - - - name: Emscripten build of CppInterOp on Unix systems - if: ${{ runner.os != 'windows' }} - shell: bash -l {0} - run: | - cd ${{ github.workspace }}/CppInterOp/ - ${{ github.workspace }}/emsdk/emsdk activate ${{matrix.emsdk_ver}} - source ${{ github.workspace }}/emsdk/emsdk_env.sh - micromamba create -f environment-wasm.yml --platform=emscripten-wasm32 - - export PREFIX=$MAMBA_ROOT_PREFIX/envs/CppInterOp-wasm - export CMAKE_PREFIX_PATH=$PREFIX - export CMAKE_SYSTEM_PREFIX_PATH=$PREFIX - - LLVM_DIR="${{ github.workspace }}/llvm-project" - LLVM_BUILD_DIR="${{ github.workspace }}/llvm-project/build" - cling_on=$(echo "${{ matrix.cling }}" | tr '[:lower:]' '[:upper:]') - if [[ "${cling_on}" == "ON" ]]; then - CLING_DIR="${{ github.workspace }}/cling" - CLING_BUILD_DIR="${{ github.workspace }}/cling/build" - CPLUS_INCLUDE_PATH="${CLING_DIR}/tools/cling/include:${CLING_BUILD_DIR}/include:${LLVM_DIR}/llvm/include:${LLVM_DIR}/clang/include:${LLVM_BUILD_DIR}/include:${LLVM_BUILD_DIR}/tools/clang/include:$PWD/include" - else - CPLUS_INCLUDE_PATH="${LLVM_DIR}/llvm/include:${LLVM_DIR}/clang/include:${LLVM_BUILD_DIR}/include:${LLVM_BUILD_DIR}/tools/clang/include:$PWD/include" - fi - - # Build CppInterOp next to cling and llvm-project. - mkdir build - cd build - export CPPINTEROP_BUILD_DIR=$PWD - if [[ "${cling_on}" == "ON" ]]; then - emcmake cmake -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} \ - -DCPPINTEROP_USE_CLING=ON \ - -DCPPINTEROP_USE_REPL=OFF \ - -DCMAKE_PREFIX_PATH=$PREFIX \ - -DCling_DIR=$LLVM_BUILD_DIR/tools/cling \ - -DLLVM_DIR=$LLVM_BUILD_DIR/lib/cmake/llvm \ - -DLLD_DIR=$LLVM_BUILD_DIR/lib/cmake/lld \ - -DClang_DIR=$LLVM_BUILD_DIR/lib/cmake/clang \ - -DBUILD_SHARED_LIBS=ON \ - -DCODE_COVERAGE=${{ env.CODE_COVERAGE }} \ - -DCMAKE_INSTALL_PREFIX=$PREFIX \ - -DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=ON \ - ../ - else - emcmake cmake -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} \ - -DCMAKE_PREFIX_PATH=$PREFIX \ - -DLLVM_DIR=$LLVM_BUILD_DIR/lib/cmake/llvm \ - -DLLD_DIR=$LLVM_BUILD_DIR/lib/cmake/lld \ - -DClang_DIR=$LLVM_BUILD_DIR/lib/cmake/clang \ - -DBUILD_SHARED_LIBS=ON \ - -DCODE_COVERAGE=${{ env.CODE_COVERAGE }} \ - -DCMAKE_INSTALL_PREFIX=$PREFIX \ - -DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=ON \ - ../ - fi - - emmake make -j ${{ env.ncpus }} install - - cd .. - - echo "CB_PYTHON_DIR=$CB_PYTHON_DIR" >> $GITHUB_ENV - echo "CPPINTEROP_BUILD_DIR=$CPPINTEROP_BUILD_DIR" >> $GITHUB_ENV - echo "CPPINTEROP_DIR=$CPPINTEROP_DIR" >> $GITHUB_ENV - echo "LLVM_BUILD_DIR=$LLVM_BUILD_DIR" >> $GITHUB_ENV - echo "CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH" >> $GITHUB_ENV - echo "PREFIX=$PREFIX" >> $GITHUB_ENV - - - name: Build xeus-cpp - shell: bash -l {0} - run: | - bash ${{ github.workspace }}/emsdk/emsdk activate ${{matrix.emsdk_ver}} - source ${{ github.workspace }}/emsdk/emsdk_env.sh - export SYSROOT_PATH=${{ github.workspace }}/emsdk/upstream/emscripten/cache/sysroot - micromamba activate CppInterOp-wasm - cd ${{ github.workspace }}/xeus-cpp/ - mkdir build - cd build - export CMAKE_PREFIX_PATH=${{ env.PREFIX }} - export CMAKE_SYSTEM_PREFIX_PATH=${{ env.PREFIX }} - emcmake cmake \ - -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} \ - -DCMAKE_PREFIX_PATH=${{ env.PREFIX }} \ - -DCMAKE_INSTALL_PREFIX=${{ env.PREFIX }} \ - -DXEUS_CPP_EMSCRIPTEN_WASM_BUILD=ON \ - -DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=ON \ - -DXEUS_CPP_RESOURCE_DIR=${{ env.LLVM_BUILD_DIR }}/lib/clang/${{ matrix.clang-runtime }} \ - -DSYSROOT_PATH=$SYSROOT_PATH \ - .. - - emmake make -j ${{ env.ncpus }} install