mirror of https://github.com/pyodide/pyodide.git
Fix #32: Separate build of filesystem from main wasm module
This commit is contained in:
parent
918ccc7300
commit
12b05ad373
8
Makefile
8
Makefile
|
@ -64,6 +64,7 @@ KIWISOLVER_LIBS=$(KIWISOLVER_ROOT)/kiwisolver.so
|
|||
SITEPACKAGES=root/lib/python$(PYMINOR)/site-packages
|
||||
|
||||
all: build/pyodide.asm.js \
|
||||
build/pyodide.asm.data \
|
||||
build/pyodide.js \
|
||||
build/pyodide_dev.js \
|
||||
build/python.html \
|
||||
|
@ -78,15 +79,18 @@ all: build/pyodide.asm.js \
|
|||
|
||||
build/pyodide.asm.js: src/main.bc src/jsimport.bc src/jsproxy.bc src/js2python.bc \
|
||||
src/pyimport.bc src/pyproxy.bc src/python2js.bc \
|
||||
src/runpython.bc src/dummy_thread.bc root/.built
|
||||
src/runpython.bc src/dummy_thread.bc
|
||||
[ -d build ] || mkdir build
|
||||
$(CC) -s EXPORT_NAME="'pyodide'" --bind -o build/pyodide.asm.html $(filter %.bc,$^) \
|
||||
$(LDFLAGS) $(foreach d,$(wildcard root/*),--preload-file $d@/$(notdir $d))
|
||||
$(LDFLAGS) -s FORCE_FILESYSTEM=1
|
||||
rm build/pyodide.asm.asm.js
|
||||
rm build/pyodide.asm.wasm.pre
|
||||
rm build/pyodide.asm.html
|
||||
|
||||
|
||||
build/pyodide.asm.data: root/.built
|
||||
python2 $(FILEPACKAGER) build/pyodide.asm.data --preload root/lib@lib --js-output=build/pyodide.asm.data.js
|
||||
|
||||
build/pyodide_dev.js: src/pyodide.js
|
||||
cp $< $@
|
||||
sed -i -e "s#{{DEPLOY}}##g" $@
|
||||
|
|
|
@ -50,7 +50,6 @@ var languagePluginLoader = new Promise((resolve, reject) => {
|
|||
toLoad.forEach((package) => {
|
||||
let script = document.createElement('script');
|
||||
script.src = `${baseURL}${package}.js`;
|
||||
console.log(script.src);
|
||||
script.onerror = (e) => {
|
||||
reject(e);
|
||||
};
|
||||
|
@ -78,6 +77,7 @@ var languagePluginLoader = new Promise((resolve, reject) => {
|
|||
|
||||
let wasmURL = `${baseURL}pyodide.asm.wasm`;
|
||||
let Module = {};
|
||||
window.Module = Module;
|
||||
|
||||
let wasm_promise = WebAssembly.compileStreaming(fetch(wasmURL));
|
||||
Module.instantiateWasm = (info, receiveInstance) => {
|
||||
|
@ -88,17 +88,24 @@ var languagePluginLoader = new Promise((resolve, reject) => {
|
|||
};
|
||||
Module.filePackagePrefixURL = baseURL;
|
||||
Module.postRun = () => {
|
||||
delete window.Module;
|
||||
resolve();
|
||||
};
|
||||
|
||||
let script = document.createElement('script');
|
||||
script.src = `${baseURL}pyodide.asm.js`;
|
||||
script.onload = () => {
|
||||
window.pyodide = pyodide(Module);
|
||||
window.pyodide.loadPackage = loadPackage;
|
||||
window.pyodide.makeCallableProxy = makeCallableProxy;
|
||||
let data_script = document.createElement('script');
|
||||
data_script.src = `${baseURL}pyodide.asm.data.js`;
|
||||
data_script.onload = (event) => {
|
||||
let script = document.createElement('script');
|
||||
script.src = `${baseURL}pyodide.asm.js`;
|
||||
script.onload = () => {
|
||||
window.pyodide = pyodide(Module);
|
||||
window.pyodide.loadPackage = loadPackage;
|
||||
window.pyodide.makeCallableProxy = makeCallableProxy;
|
||||
};
|
||||
document.head.appendChild(script);
|
||||
};
|
||||
document.head.appendChild(script);
|
||||
|
||||
document.head.appendChild(data_script);
|
||||
|
||||
if (window.iodide !== undefined) {
|
||||
// Load the custom CSS for Pyodide
|
||||
|
|
Loading…
Reference in New Issue