@@ -124,23 +124,14 @@ jobs:
124
124
strategy :
125
125
fail-fast : false
126
126
matrix :
127
- emsdk_ver : ["2.0.34", " 3.1.3", "latest "]
127
+ emsdk_ver : ["3.1.45 "]
128
128
# os: [ubuntu-latest, "macos-latest"]
129
129
130
130
steps :
131
131
- uses : actions/checkout@v4
132
132
133
- - name : Make install dir
134
- shell : bash -l {0}
135
- run : |
136
- mkdir -p $GITHUB_WORKSPACE/custom_sysroot
137
-
138
- - name : Install emsdk
139
- shell : bash -l {0}
140
- run : |
141
- git clone https://github.com/emscripten-core/emsdk.git /opt/emsdk
142
- cd /opt/emsdk
143
- ./emsdk install ${{matrix.emsdk_ver}}
133
+ - name : Get number of CPU cores
134
+ uses : SimenB/github-actions-cpu-cores@v2
144
135
145
136
- name : Install micromamba
146
137
uses : mamba-org/setup-micromamba@v1
@@ -149,107 +140,45 @@ jobs:
149
140
150
141
- name : Create project with cookiecutter
151
142
shell : bash -l {0}
152
- run :
143
+ run : |
153
144
cookiecutter . --config-file .github/ci_context_wasm.yml --no-input -f
154
145
155
- - name : Install xtl
156
- run : |
157
- cd /opt/emsdk
158
- ./emsdk activate ${{matrix.emsdk_ver}}
159
- source "/opt/emsdk/emsdk_env.sh"
160
- mkdir -p /opt/xtl/build
161
- git clone https://github.com/xtensor-stack/xtl.git /opt/xtl/src
162
- cd /opt/xtl/src
163
- git checkout 0.7.2
164
- cd /opt/xtl/build
165
- emcmake cmake ../src/ -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/custom_sysroot
166
- emmake make -j2 install
167
-
168
- - name : Install nlohmann-json
169
- run : |
170
- cd /opt/emsdk
171
- ./emsdk activate ${{matrix.emsdk_ver}}
172
- source "/opt/emsdk/emsdk_env.sh"
173
- mkdir -p /opt/nlohmannjson/build
174
- git clone https://github.com/nlohmann/json.git /opt/nlohmannjson/src
175
- cd /opt/nlohmannjson/src
176
- git checkout v3.9.0
177
- cd /opt/nlohmannjson/build
178
- emcmake cmake ../src/ -DJSON_BuildTests=OFF -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/custom_sysroot
179
- emmake make -j2 install
180
-
181
- - name : Install xeus
182
- run : |
183
- cd /opt/emsdk
184
- ./emsdk activate ${{matrix.emsdk_ver}}
185
- source "/opt/emsdk/emsdk_env.sh"
186
- mkdir -p /opt/xeus/build
187
- git clone https://github.com/jupyter-xeus/xeus.git /opt/xeus/src
188
- cd /opt/xeus/src
189
- git checkout 3.0.5
190
- cd /opt/xeus/build
191
- emcmake cmake ../src \
192
- -DXEUS_EMSCRIPTEN_WASM_BUILD=ON \
193
- -DXEUS_BUILD_TESTS=OFF \
194
- -Dxtl_DIR=$GITHUB_WORKSPACE/custom_sysroot/share/cmake/xtl \
195
- -Dnlohmann_json_DIR=$GITHUB_WORKSPACE/custom_sysroot/lib/cmake/nlohmann_json \
196
- -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/custom_sysroot
197
- emmake make -j2
198
- emmake make -j2 install
199
-
200
- - name : Install xeus-lite
201
- run : |
202
- cd /opt/emsdk
203
- ./emsdk activate ${{matrix.emsdk_ver}}
204
- source "/opt/emsdk/emsdk_env.sh"
205
- mkdir -p /opt/xeus-lite/build
206
- git clone https://github.com/jupyter-xeus/xeus-lite.git /opt/xeus-lite/src
207
- cd /opt/xeus-lite/src
208
- git checkout 1.0.1
209
- cd /opt/xeus-lite/build
210
- emcmake cmake ../src \
211
- -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/custom_sysroot \
212
- -Dnlohmann_json_DIR=$GITHUB_WORKSPACE/custom_sysroot/lib/cmake/nlohmann_json \
213
- -Dxtl_DIR=$GITHUB_WORKSPACE/custom_sysroot/share/cmake/xtl \
214
- -Dxeus_DIR=$GITHUB_WORKSPACE/custom_sysroot/lib/cmake/xeus
215
-
216
- emmake make -j2
217
- emmake make -j2 install
218
-
219
- - name : Configure cmake rendered project
146
+ - name : Create build environment
147
+ shell : bash -l {0}
148
+ run : micromamba create -f xeus-mylang/environment-wasm-build.yml -y
149
+
150
+ - name : Setup emsdk
220
151
shell : bash -l {0}
221
152
run : |
222
- cd /opt/emsdk
223
- ./emsdk activate ${{matrix.emsdk_ver}}
224
- source "/opt/emsdk/emsdk_env.sh"
225
- cd $GITHUB_WORKSPACE/xeus-mylang
226
- mkdir -p bld
227
- cd bld
228
- emcmake cmake .. \
229
- -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/custom_sysroot \
230
- -DXEUS_MYLANG_EMSCRIPTEN_WASM_BUILD=ON \
231
- -Dxtl_DIR=$GITHUB_WORKSPACE/custom_sysroot/share/cmake/xtl \
232
- -Dnlohmann_json_DIR=$GITHUB_WORKSPACE/custom_sysroot/lib/cmake/nlohmann_json \
233
- -Dxeus_DIR=$GITHUB_WORKSPACE/custom_sysroot/lib/cmake/xeus \
234
- -Dxeus-lite_DIR=$GITHUB_WORKSPACE/custom_sysroot/lib/cmake/xeus-lite
235
-
236
- - name : Build rendered project
237
- shell : bash
238
- run : |
239
- cd /opt/emsdk
240
- ./emsdk activate ${{matrix.emsdk_ver}}
241
- source "/opt/emsdk/emsdk_env.sh"
242
- cd $GITHUB_WORKSPACE/xeus-mylang/bld
243
- emmake make -j8
153
+ micromamba activate xeus-mylang-wasm-build
154
+ emsdk install ${{ matrix.emsdk_ver }}
244
155
245
- - name : Install rendered project
156
+ - name : Build
246
157
shell : bash -l {0}
158
+ working-directory : xeus-mylang
247
159
run : |
248
- cd /opt/emsdk
249
- ./emsdk activate ${{matrix.emsdk_ver}}
250
- source "/opt/emsdk/emsdk_env.sh"
251
- cd $GITHUB_WORKSPACE/xeus-mylang/bld
252
- make install
160
+ micromamba activate xeus-mylang-wasm-build
161
+ emsdk activate ${{ matrix.emsdk_ver }}
162
+
163
+ source $CONDA_EMSDK_DIR/emsdk_env.sh
164
+ micromamba create -f environment-wasm-host.yml --platform=emscripten-wasm32
165
+
166
+ mkdir build
167
+ pushd build
168
+
169
+ export EMPACK_PREFIX=$MAMBA_ROOT_PREFIX/envs/xeus-mylang-wasm-build
170
+ export PREFIX=$MAMBA_ROOT_PREFIX/envs/xeus-mylang-wasm-host
171
+ export CMAKE_PREFIX_PATH=$PREFIX
172
+ export CMAKE_SYSTEM_PREFIX_PATH=$PREFIX
173
+
174
+ emcmake cmake \
175
+ -DCMAKE_BUILD_TYPE=Release \
176
+ -DCMAKE_PREFIX_PATH=$PREFIX \
177
+ -DCMAKE_INSTALL_PREFIX=$PREFIX \
178
+ -DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=ON \
179
+ ..
180
+ make -j${{ steps.cpu-cores.outputs.count }}
181
+
253
182
254
183
push :
255
184
needs : [unix, win, emscripten_wasm]
0 commit comments