Skip to content

Commit 4516d10

Browse files
committed
3.1.72pre
1 parent ed75440 commit 4516d10

File tree

6 files changed

+65
-33
lines changed

6 files changed

+65
-33
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ jobs:
1919
runs-on: ubuntu-22.04
2020
env:
2121
BUILDS: 3.12 3.13
22+
SDKROOT: /opt/python-wasm-sdk
2223
EMFLAVOUR: latest
2324
Py_GIL_DISABLED: false
2425
wasisdk: true

emsdk-cc

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,11 @@ for argc, arg in enumerate(sys.argv):
245245
AOUT = sys.argv[out_pos]
246246

247247
elif not STATIC:
248-
if arg.endswith(".so") or arg == "-shared" or arg.find("SIDE_MODULE") > 0:
248+
if arg.endswith(".so") and arg.startswith("/usr/lib"):
249+
arg = f"-l{arg.rsplit('/',1)[-1][3:-3]}"
250+
if arg in ('-lportmidi','-lporttime'):
251+
continue
252+
elif arg.endswith(".so") or arg == "-shared" or arg.find("SIDE_MODULE") > 0:
249253
IS_SHARED = True
250254
if arg == "-shared":
251255
pass
@@ -393,7 +397,7 @@ else:
393397
# TODO: module level
394398
# -gsource-map --source-map-base /
395399
pass
396-
final.extend(arglist(WASM_EXTRA, "-DBUILD_STATIC"))
400+
final.extend(arglist(WASM_EXTRA, "-DPYDK_STATIC"))
397401

398402
final.extend(out)
399403
final.extend(COMMON)

python-wasi-sdk.sh

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,7 @@ do
152152

153153
[ -f $HPY ] || exit 106
154154

155+
155156
cat > /opt/python-wasm-sdk/devices/$(arch)/usr/bin/py <<END
156157
#!/bin/bash
157158
export XDG_SESSION_TYPE=x11
@@ -183,7 +184,9 @@ END
183184
then
184185
cd ${SDKROOT}
185186

186-
mkdir -p src build ${SDKROOT}/devices/emsdk ${SDKROOT}/prebuilt/emsdk
187+
export TARGET=emsdk
188+
189+
mkdir -p src build ${SDKROOT}/devices/${TARGET} ${SDKROOT}/prebuilt/${TARGET}
187190

188191
if [ -f /tmp/emsdk.tar ]
189192
then
@@ -217,7 +220,7 @@ END
217220
then
218221
echo " using cached cpython-build-emsdk-deps"
219222
else
220-
if ./scripts/cpython-build-emsdk-deps.sh
223+
if ./scripts/cpython-build-${TARGET}-deps.sh
221224
then
222225
# if $CI
223226
if false
@@ -246,11 +249,11 @@ END
246249
fi
247250

248251
echo " ------------ building cpython wasm ${PYBUILD} ${CIVER} ----------------" 1>&2
249-
if ./scripts/cpython-build-emsdk.sh > /dev/null
252+
if ./scripts/cpython-build-${TARGET}.sh > /dev/null
250253
then
251254

252255
echo " --------- adding some usefull pkg ${PYBUILD} ${CIVER} ---------" 1>&2
253-
./scripts/cpython-build-emsdk-prebuilt.sh || exit 223
256+
./scripts/cpython-build-${TARGET}-prebuilt.sh || exit 223
254257

255258

256259
# experimental stuff
@@ -282,34 +285,36 @@ END
282285
then
283286
cd ${SDKROOT}
284287

288+
export TARGET=wasi
289+
285290
mkdir -p src build ${SDKROOT}/devices/wasisdk ${SDKROOT}/prebuilt/wasisdk
286291

287292
# do not source to protect env
288293
./scripts/cpython-build-wasisdk.sh
289294

290-
> ${SDKROOT}/python3-wasi
295+
> ${SDKROOT}/python3-${TARGET}
291296

292297
# ROOT=/opt/python-wasm-sdk SDKROOT=/opt/python-wasm-sdk
293298
# HOST_PREFIX=/opt/python-wasm-sdk/devices/$(arch)/usr
294-
> ${SDKROOT}/wasm32-wasi-shell.sh
299+
> ${SDKROOT}/wasm32-${TARGET}-shell.sh
295300

296-
CPU=wasm32 TARGET=wasi \
297-
PYDK_PYTHON_HOST_PLATFORM=wasm32-wasi \
301+
CPU=wasm32 TARGET=$TARGET \
302+
PYDK_PYTHON_HOST_PLATFORM=wasm32-${TARGET} \
298303
PREFIX=/opt/python-wasm-sdk/devices/wasisdk/usr \
299304
./scripts/make-shells.sh
300305

301-
cat >> $ROOT/wasm32-wasi-shell.sh <<END
306+
cat >> $ROOT/wasm32-${TARGET}-shell.sh <<END
302307
#!/bin/bash
303308
. ${WASISDK}/wasisdk_env.sh
304309
305310
parse_git_branch() {
306311
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
307312
}
308313
309-
export PS1="[PyDK:wasi] \[\e[32m\]\w \[\e[91m\]\$(parse_git_branch)\[\e[00m\]\$ "
314+
export PS1="[PyDK:${TARGET}] \[\e[32m\]\w \[\e[91m\]\$(parse_git_branch)\[\e[00m\]\$ "
310315
311316
END
312-
chmod +x ${SDKROOT}/python3-wasi ${SDKROOT}/wasm32-wasi-shell.sh
317+
chmod +x ${SDKROOT}/python3-${TARGET} ${SDKROOT}/wasm32-${TARGET}-shell.sh
313318

314319
fi
315320

python-wasm-sdk.sh

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,7 @@ do
152152

153153
[ -f $HPY ] || exit 106
154154

155+
155156
cat > /opt/python-wasm-sdk/devices/$(arch)/usr/bin/py <<END
156157
#!/bin/bash
157158
export XDG_SESSION_TYPE=x11
@@ -183,7 +184,9 @@ END
183184
then
184185
cd ${SDKROOT}
185186

186-
mkdir -p src build ${SDKROOT}/devices/emsdk ${SDKROOT}/prebuilt/emsdk
187+
export TARGET=emsdk
188+
189+
mkdir -p src build ${SDKROOT}/devices/${TARGET} ${SDKROOT}/prebuilt/${TARGET}
187190

188191
if [ -f /tmp/emsdk.tar ]
189192
then
@@ -217,7 +220,7 @@ END
217220
then
218221
echo " using cached cpython-build-emsdk-deps"
219222
else
220-
if ./scripts/cpython-build-emsdk-deps.sh
223+
if ./scripts/cpython-build-${TARGET}-deps.sh
221224
then
222225
# if $CI
223226
if false
@@ -246,11 +249,11 @@ END
246249
fi
247250

248251
echo " ------------ building cpython wasm ${PYBUILD} ${CIVER} ----------------" 1>&2
249-
if ./scripts/cpython-build-emsdk.sh > /dev/null
252+
if ./scripts/cpython-build-${TARGET}.sh > /dev/null
250253
then
251254

252255
echo " --------- adding some usefull pkg ${PYBUILD} ${CIVER} ---------" 1>&2
253-
./scripts/cpython-build-emsdk-prebuilt.sh || exit 223
256+
./scripts/cpython-build-${TARGET}-prebuilt.sh || exit 223
254257

255258

256259
# experimental stuff
@@ -282,34 +285,36 @@ END
282285
then
283286
cd ${SDKROOT}
284287

288+
export TARGET=wasi
289+
285290
mkdir -p src build ${SDKROOT}/devices/wasisdk ${SDKROOT}/prebuilt/wasisdk
286291

287292
# do not source to protect env
288293
./scripts/cpython-build-wasisdk.sh
289294

290-
> ${SDKROOT}/python3-wasi
295+
> ${SDKROOT}/python3-${TARGET}
291296

292297
# ROOT=/opt/python-wasm-sdk SDKROOT=/opt/python-wasm-sdk
293298
# HOST_PREFIX=/opt/python-wasm-sdk/devices/$(arch)/usr
294-
> ${SDKROOT}/wasm32-wasi-shell.sh
299+
> ${SDKROOT}/wasm32-${TARGET}-shell.sh
295300

296-
CPU=wasm32 TARGET=wasi \
297-
PYDK_PYTHON_HOST_PLATFORM=wasm32-wasi \
301+
CPU=wasm32 TARGET=$TARGET \
302+
PYDK_PYTHON_HOST_PLATFORM=wasm32-${TARGET} \
298303
PREFIX=/opt/python-wasm-sdk/devices/wasisdk/usr \
299304
./scripts/make-shells.sh
300305

301-
cat >> $ROOT/wasm32-wasi-shell.sh <<END
306+
cat >> $ROOT/wasm32-${TARGET}-shell.sh <<END
302307
#!/bin/bash
303308
. ${WASISDK}/wasisdk_env.sh
304309
305310
parse_git_branch() {
306311
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
307312
}
308313
309-
export PS1="[PyDK:wasi] \[\e[32m\]\w \[\e[91m\]\$(parse_git_branch)\[\e[00m\]\$ "
314+
export PS1="[PyDK:${TARGET}] \[\e[32m\]\w \[\e[91m\]\$(parse_git_branch)\[\e[00m\]\$ "
310315
311316
END
312-
chmod +x ${SDKROOT}/python3-wasi ${SDKROOT}/wasm32-wasi-shell.sh
317+
chmod +x ${SDKROOT}/python3-${TARGET} ${SDKROOT}/wasm32-${TARGET}-shell.sh
313318

314319
fi
315320

scripts/cpython-build-emsdk-prebuilt.sh

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -149,11 +149,15 @@ rm ${SDKROOT}/prebuilt/emsdk/common/site-packages/installer/_scripts/*exe
149149

150150

151151

152+
# SDL2 is prebuilt in emsdk but lacks pkg config *.pc, wasi has them
152153

154+
if $WASI
155+
then
156+
echo -n
157+
else
158+
SYSROOT=${SDKROOT}/emsdk/upstream/emscripten/cache/sysroot
153159

154-
# SDL2 is prebuilt in emsdk but lacks SDL2.pc
155-
156-
cat > ${PREFIX}/lib/pkgconfig/sdl2.pc <<END
160+
cat > ${PREFIX}/lib/pkgconfig/sdl2.pc <<END
157161
# sdl pkg-config source file
158162
159163
prefix=${PREFIX}
@@ -167,12 +171,25 @@ Version: 2.31.0
167171
Requires.private:
168172
Conflicts:
169173
Libs: -L\${libdir} -lSDL2 -lm
170-
Cflags: -I\${includedir} -I\${includedir}/SDL2
174+
Cflags: -I\${includedir} -I\${includedir}/SDL2 -I${SYSROOT}/include/SDL2 -I${SYSROOT}/include/freetype2"
171175
END
172176

177+
cat > ${PREFIX}/lib/pkgconfig/SDL2_mixer.pc <<END
178+
prefix=${PREFIX}/usr
179+
exec_prefix=\${prefix}
180+
libdir=\${exec_prefix}/lib
181+
includedir=\${prefix}/include
173182
183+
Name: SDL2_mixer
184+
Description: mixer library for Simple DirectMedia Layer
185+
Version: 2.8.0
186+
Requires: sdl2 >= 2.0.9
187+
Libs: -L\${libdir} -lSDL2_mixer
188+
Cflags: -I\${includedir}/SDL2
189+
Requires.private:
190+
Libs.private:
174191
175192
176-
193+
fi
177194
178195

scripts/cpython-build-emsdk.sh

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -301,7 +301,7 @@ END
301301
if [ -d $PREFIX/lib/python${PYBUILD}/lib-dynload ]
302302
then
303303
# move them to MEMFS
304-
mv $PREFIX/lib/python${PYBUILD}/lib-dynload/* ${SDKROOT}/prebuilt/emsdk/${PYBUILD}/lib-dynload/
304+
mv $PREFIX/lib/python${PYBUILD}/lib-dynload/* ${SDKROOT}/prebuilt/${TARGET}/${PYBUILD}/lib-dynload/
305305

306306
echo " =============== FIXME: _ctype dynamic build ==============="
307307
rm ${SDKROOT}/prebuilt/emsdk/${PYBUILD}/lib-dynload/_ctypes.*
@@ -334,7 +334,7 @@ sed -i 's|-g0|-g3|g' ${MODSYSCONFIG}
334334

335335
# this one is required for `python3-wasm -mbuild` venv
336336
ln ${MODSYSCONFIG} ${SDKROOT}/devices/$(arch)/usr/lib/python${PYBUILD}/
337-
337+
ln ${MODSYSCONFIG} ${SDKROOT}/devices/${TARGET}/usr/lib/python${PYBUILD}/
338338

339339
cat > ${PYTHONPYCACHEPREFIX}/.nanorc <<END
340340
set tabsize 4
@@ -372,7 +372,7 @@ else
372372
. config
373373
. emsdk/emsdk_env.sh
374374
popd
375-
export PATH=$SDKROOT/emsdk/upstream/emscripten:$SDKROOT/emsdk/upstream/emscripten/system/bin:\$PATH
375+
export PATH=$SDKROOT/${TARGET}/upstream/emscripten:$SDKROOT/${TARGET}/upstream/emscripten/system/bin:\$PATH
376376
# export PKG_CONFIG_SYSROOT_DIR="${SDKROOT}/devices/emsdk"
377377
export PKG_CONFIG_LIBDIR="${SDKROOT}/emsdk/upstream/emscripten/system/lib/pkgconfig"
378378
export PKG_CONFIG_PATH="${PREFIX}/lib/pkgconfig:${HOST_PREFIX}/lib/pkgconfig"
@@ -405,7 +405,7 @@ export PYTHONHOME=$PREFIX
405405
# but still can load dynload and setuptools
406406
407407
PYTHONPATH=${HOST_PREFIX}/lib/python\${PYBUILD}/site-packages:\$PYTHONPATH
408-
export PYTHONPATH=${SDKROOT}/prebuilt/emsdk/\${PYBUILD}:${HOST_PREFIX}/lib/python\${PYBUILD}/lib-dynload:\$PYTHONPATH
408+
export PYTHONPATH=${SDKROOT}/prebuilt/${TARGET}/\${PYBUILD}:${HOST_PREFIX}/lib/python\${PYBUILD}/lib-dynload:\$PYTHONPATH
409409
410410
# just in case
411411
export _PYTHON_HOST_PLATFORM=${PYDK_PYTHON_HOST_PLATFORM}

0 commit comments

Comments
 (0)