From b0ae51ad0d61929c06597d54c482abce71b3fbc5 Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Tue, 4 Aug 2026 05:35:07 +0200 Subject: [PATCH] Fix compiling project with plugins for Web --- .../Flax.Build/Platforms/Web/WebToolchain.cs | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/Source/Tools/Flax.Build/Platforms/Web/WebToolchain.cs b/Source/Tools/Flax.Build/Platforms/Web/WebToolchain.cs index 6551e3625..d1b034405 100644 --- a/Source/Tools/Flax.Build/Platforms/Web/WebToolchain.cs +++ b/Source/Tools/Flax.Build/Platforms/Web/WebToolchain.cs @@ -319,10 +319,6 @@ namespace Flax.Build.Platforms //args.Add("-sMALLOC=emmalloc-memvalidate"); //args.Add("-sMALLOC=emmalloc"); - // Setup file access (Game Cooker packs files with file_packager tool) - args.Add("-sFORCE_FILESYSTEM"); - args.Add("-sLZ4"); - // https://emscripten.org/docs/compiling/Dynamic-Linking.html#dynamic-linking if (!options.Target.UseSymbolsExports) { @@ -341,6 +337,12 @@ namespace Flax.Build.Platforms { args.Add("-sSIDE_MODULE"); } + } + if (options.LinkEnv.Output == LinkerOutput.Executable) + { + // Setup file access (Game Cooker packs files with file_packager tool) + args.Add("-sFORCE_FILESYSTEM"); + args.Add("-sLZ4"); // Setup minimum browser versions // https://webassembly.org/features/?categories=browsers#feature-note-3 @@ -411,8 +413,11 @@ namespace Flax.Build.Platforms { // Link against dynamic library task.PrerequisiteFiles.Add(library); - libraryPaths.Add(dir); - args.Add(string.Format("\"-l{0}\"", GetLibName(library))); + //libraryPaths.Add(dir); + //args.Add(string.Format("\"-l{0}\"", GetLibName(library))); + + // No need to link excplicitly when using MAIN_MODULE/SIDE_MODULE as linking is resolved at runtime + // https://emscripten.org/docs/compiling/Dynamic-Linking.html#runtime-dynamic-linking-with-dlopen } else { @@ -472,6 +477,7 @@ namespace Flax.Build.Platforms break; case LinkerOutput.StaticLibrary: case LinkerOutput.ImportLibrary: + throw new NotImplementedException(); default: throw new ArgumentOutOfRangeException(); }