Skip to content

Commit f5be4c6

Browse files
committed
Add Windows Emscripten build of xeus-cpp to ci
1 parent 180869d commit f5be4c6

File tree

1 file changed

+57
-3
lines changed

1 file changed

+57
-3
lines changed

.github/workflows/emscripten.yml

Lines changed: 57 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -745,7 +745,13 @@ jobs:
745745
.\emsdk\emsdk_env.ps1
746746
$env:PWD_DIR= $PWD.Path
747747
$env:SYSROOT_PATH="$env:EMSDK/upstream/emscripten/cache/sysroot"
748-
$env:PREFIX="%CONDA_PREFIX%/envs/CppInterOp-wasm"
748+
echo "SYSROOT_PATH=$env:SYSROOT_PATH"
749+
echo "SYSROOT_PATH=$env:SYSROOT_PATH" >> $env:GITHUB_ENV
750+
751+
$env:PREFIX="$env:MAMBA_ROOT_PREFIX/envs/CppInterOp-wasm"
752+
echo "PREFIX=$env:PREFIX"
753+
echo "PREFIX=$env:PREFIX" >> $env:GITHUB_ENV
754+
749755
$env:CMAKE_PREFIX_PATH=$env:PREFIX
750756
$env:CMAKE_SYSTEM_PREFIX_PATH=$env:PREFIX
751757
@@ -819,6 +825,11 @@ jobs:
819825
}
820826
emmake make -j ${{ env.ncpus }} check-cppinterop
821827
emmake make -j ${{ env.ncpus }} install
828+
echo "SYSROOT_PATH=$env:SYSROOT_PATH" >> $GITHUB_ENV
829+
echo "CPPINTEROP_DIR=$env:CPPINTEROP_DIR" >> $GITHUB_ENV
830+
echo "LLVM_BUILD_DIR=$env:LLVM_BUILD_DIR" >> $GITHUB_ENV
831+
echo "CPLUS_INCLUDE_PATH=$env:CPLUS_INCLUDE_PATH" >> $GITHUB_ENV
832+
echo "PREFIX=$env:PREFIX" >> $GITHUB_ENV
822833
823834
- name: Build and Test/Install CppInterOp on Windows systems (static library)
824835
continue-on-error: true
@@ -902,7 +913,7 @@ jobs:
902913
}
903914
emmake make -j ${{ env.ncpus }} check-cppinterop
904915
905-
- name: Build xeus-cpp
916+
- name: Build xeus-cpp on Unix Systems
906917
if: ${{ runner.os != 'windows' }}
907918
shell: bash -l {0}
908919
run: |
@@ -926,7 +937,32 @@ jobs:
926937
..
927938
emmake make -j ${{ env.ncpus }} install
928939
929-
- name: Test xeus-cpp C++ Emscripten
940+
- name: Build xeus-cpp on Windows systems
941+
if: ${{ runner.os == 'windows' }}
942+
shell: powershell
943+
run: |
944+
.\emsdk\emsdk activate ${{matrix.emsdk_ver}}
945+
.\emsdk\emsdk_env.ps1
946+
micromamba activate CppInterOp-wasm
947+
git clone https://github.com/mcbarton/xeus-cpp.git
948+
cd .\xeus-cpp
949+
git checkout Enable-Windows-Emscripten-build
950+
mkdir build
951+
pushd build
952+
$env:CMAKE_PREFIX_PATH="${{ env.PREFIX }}"
953+
$env:CMAKE_SYSTEM_PREFIX_PATH="${{ env.PREFIX }}"
954+
emcmake cmake `
955+
-DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} `
956+
-DCMAKE_PREFIX_PATH=${{ env.PREFIX }} `
957+
-DCMAKE_INSTALL_PREFIX=${{ env.PREFIX }} `
958+
-DXEUS_CPP_EMSCRIPTEN_WASM_BUILD=ON `
959+
-DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=ON `
960+
-DXEUS_CPP_RESOURCE_DIR=${{ env.LLVM_BUILD_DIR }}\lib\clang\${{ matrix.clang-runtime }} `
961+
-DSYSROOT_PATH=${{ env.SYSROOT_PATH }} `
962+
..
963+
emmake make -j ${{ env.ncpus }} install
964+
965+
- name: Test xeus-cpp C++ Emscripten on Unix Systems
930966
if: ${{ runner.os != 'windows' }}
931967
shell: bash -l {0}
932968
run: |
@@ -935,6 +971,15 @@ jobs:
935971
cd ./xeus-cpp/build/test
936972
node test_xeus_cpp.js
937973
974+
- name: Test xeus-cpp C++ Emscripten on Windows Systems
975+
if: ${{ runner.os == 'windows' }}
976+
shell: powershell
977+
run: |
978+
$ErrorActionPreference = "Stop"
979+
micromamba activate CppInterOp-wasm
980+
cd .\xeus-cpp\build\test
981+
node test_xeus_cpp.js
982+
938983
- name: Jupyter Lite integration
939984
if: ${{ runner.os != 'windows' }}
940985
shell: bash -l {0}
@@ -943,3 +988,12 @@ jobs:
943988
micromamba create -n xeus-lite-host jupyterlite-core=0.6 jupyterlite-xeus jupyter_server jupyterlab notebook python-libarchive-c -c conda-forge
944989
micromamba activate xeus-lite-host
945990
jupyter lite build --XeusAddon.prefix=${{ env.PREFIX }} --contents notebooks/xeus-cpp-lite-demo.ipynb --contents notebooks/smallpt.ipynb --contents notebooks/images/marie.png --contents notebooks/audio/audio.wav --output-dir dist
991+
992+
- name: Jupyter Lite integration
993+
if: ${{ runner.os == 'windows' }}
994+
shell: powershell
995+
run: |
996+
cd .\xeus-cpp\
997+
micromamba create -n xeus-lite-host jupyterlite-core=0.6 jupyterlite-xeus jupyter_server jupyterlab notebook python-libarchive-c -c conda-forge
998+
micromamba activate xeus-lite-host
999+
jupyter lite build --XeusAddon.prefix=${{ env.PREFIX }} --contents notebooks/xeus-cpp-lite-demo.ipynb --contents notebooks/smallpt.ipynb --contents notebooks/images/marie.png --contents notebooks/audio/audio.wav --output-dir dist

0 commit comments

Comments
 (0)