Browse Source

Web: Catch using GDExtensions in a non-dlink build

Previously this would simply fail with a cryptic
`me.rtenv.loadDynamicLibrary is not a function` error.
Mario Liebisch 1 year ago
parent
commit
56a3cdc2f0
1 changed files with 4 additions and 0 deletions
  1. 4 0
      platform/web/js/engine/engine.js

+ 4 - 0
platform/web/js/engine/engine.js

@@ -164,6 +164,10 @@ const Engine = (function () {
 
 
 					// Preload GDExtension libraries.
 					// Preload GDExtension libraries.
 					const libs = [];
 					const libs = [];
+					if (me.config.gdextensionLibs.length > 0 && !me.rtenv['loadDynamicLibrary']) {
+						return Promise.reject(new Error('GDExtension libraries are not supported by this engine version. '
+							+ 'Enable "Extensions Support" for your export preset and/or build your custom template with "dlink_enabled=yes".'));
+					}
 					me.config.gdextensionLibs.forEach(function (lib) {
 					me.config.gdextensionLibs.forEach(function (lib) {
 						libs.push(me.rtenv['loadDynamicLibrary'](lib, { 'loadAsync': true }));
 						libs.push(me.rtenv['loadDynamicLibrary'](lib, { 'loadAsync': true }));
 					});
 					});