Skip to content

Commit a49223d

Browse files
authored
Use NODERAWFS for wasm builds (#21)
* Use noderawfs * Remove __dirname version * Create absolute symlink to test on RPU
1 parent eac3739 commit a49223d

4 files changed

Lines changed: 12 additions & 45 deletions

File tree

.github/workflows/ci.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,7 @@ jobs:
245245
- name: Upload .wasm artifacts
246246
uses: actions/upload-artifact@v4
247247
with:
248-
name: wasm-emscripten-node-nodefs
248+
name: wasm-emscripten-node-noderawfs
249249
path: build/bin/**
250250

251251
build_linux:
@@ -315,8 +315,8 @@ jobs:
315315
316316
cd artifacts
317317
318-
mv wasm-emscripten-node-nodefs package
319-
tar -czf wasm-emscripten-node-nodefs.tar.gz package
318+
mv wasm-emscripten-node-noderawfs package
319+
tar -czf wasm-emscripten-node-noderawfs.tar.gz package
320320
rm -rf package
321321
322322
ls -laR

CMakeLists.txt

Lines changed: 2 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Emscripten")
4848
target_link_options(${EXECUTABLE_NAME} PRIVATE "-sNO_DISABLE_EXCEPTION_CATCHING")
4949

5050
target_link_options( ${EXECUTABLE_NAME} PRIVATE "-lnodefs.js" )
51-
# target_link_options(${EXECUTABLE_NAME} PRIVATE "-sNODERAWFS")
51+
target_link_options(${EXECUTABLE_NAME} PRIVATE "-sNODERAWFS")
5252

5353
# Disabled because of emscipten bug
5454
# target_link_options( ${EXECUTABLE_NAME} PRIVATE "-sCASE_INSENSITIVE_FS" )
@@ -68,27 +68,9 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Emscripten")
6868

6969
target_link_options(${EXECUTABLE_NAME} PRIVATE "-sSTACK_SIZE=2048000")
7070

71-
# Next commands replaces import.meta.url with __filename in sslc.mjs
72-
# This is done to support importing in VScode-BGforge-MLS
73-
set(patch_script "${CMAKE_BINARY_DIR}/patch_sslc.cmake")
74-
file(WRITE "${patch_script}" "
75-
if(EXISTS \"${CMAKE_CURRENT_BINARY_DIR}/bin/sslc.mjs\")
76-
file(READ \"${CMAKE_CURRENT_BINARY_DIR}/bin/sslc.mjs\" file_content)
77-
string(REPLACE \"import.meta.url\" \"__filename\" file_content \"\${file_content}\")
78-
file(WRITE \"${CMAKE_CURRENT_BINARY_DIR}/bin/sslc.__filename.mjs\" \"\${file_content}\")
79-
message(STATUS \"Patched sslc.mjs\")
80-
else()
81-
message(FATAL_ERROR \"sslc.mjs does not exist!\")
82-
endif()
83-
")
84-
add_custom_command(TARGET ${EXECUTABLE_NAME} POST_BUILD
85-
COMMAND ${CMAKE_COMMAND} -P "${patch_script}"
86-
COMMENT "Applying patch to sslc.mjs"
87-
)
88-
8971
set(PACKAGE_JSON_CONTENT [[
9072
{
91-
"name": "sslc-emscripten-nodefs",
73+
"name": "sslc-emscripten-noderawfs",
9274
"version": "1.0.0",
9375
"description": "",
9476
"main": "sslc.mjs",

compiler.mjs

Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -34,26 +34,9 @@ async function compile(sslcArgs, wasmBinary, cwd) {
3434
: {}),
3535
});
3636

37-
instance.FS.mkdir("/host");
38-
3937
const cwdPath = path.parse(cwd || process.cwd());
4038

41-
// console.info("DEBUG cwd", cwd);
42-
43-
instance.FS.mount(
44-
// Using NODEFS instead of NODERAWFS because
45-
// NODERAWFS caused errors when the same module
46-
// runs the second time
47-
instance.NODEFS,
48-
{
49-
root: cwdPath.root,
50-
},
51-
"/host"
52-
);
53-
54-
// console.info("DEBUG after mount");
55-
56-
instance.FS.chdir(path.join("host", cwdPath.dir, cwdPath.name));
39+
instance.FS.chdir(path.join(cwdPath.dir, cwdPath.name));
5740

5841
// console.info("DEBUG after chdir");
5942

@@ -62,7 +45,6 @@ async function compile(sslcArgs, wasmBinary, cwd) {
6245
// console.info("DEBUG after call");
6346

6447
instance.FS.chdir("/");
65-
instance.FS.unmount("/host");
6648

6749
return {
6850
returnCode,

test/test_on_fallout2_rpu_setup.bash

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,12 @@ fi
6565

6666
cd Fallout2_Restoration_Project/scripts_src
6767
if [ ! -L 'sfall' ] && [ ! -d 'sfall' ]; then
68-
# ln -s "$MODDERPACK_DIR/scripting_docs/headers" sfall
69-
echo "== Creating symlink to modderspack headers =="
70-
ln -s ../../modderspack/scripting_docs/headers sfall
68+
69+
# echo "== Creating relative symlink to modderspack headers =="
70+
# ln -s ../../modderspack/scripting_docs/headers sfall
71+
72+
echo "== Creating absolute symlink to modderspack headers =="
73+
ln -s "$MODDERPACK_DIR/scripting_docs/headers" sfall
7174
else
7275
echo "== Symlink to modderspack headers already exists =="
7376
fi

0 commit comments

Comments
 (0)