[HTML5] Better editor HTML, small refactor.
Side and GDNative libraries are now added by engine.js , the dynlink pre js had been deleted.
This commit is contained in:
parent
6d5daac3e4
commit
276b831c45
6 changed files with 38 additions and 9 deletions
11
misc/dist/html/editor.html
vendored
11
misc/dist/html/editor.html
vendored
|
@ -4,7 +4,7 @@
|
||||||
<meta charset='utf-8' />
|
<meta charset='utf-8' />
|
||||||
<meta name='viewport' content='width=device-width, user-scalable=no' />
|
<meta name='viewport' content='width=device-width, user-scalable=no' />
|
||||||
<link id='-gd-engine-icon' rel='icon' type='image/png' href='favicon.png' />
|
<link id='-gd-engine-icon' rel='icon' type='image/png' href='favicon.png' />
|
||||||
<title></title>
|
<title>Godot Engine Web Editor ($GODOT_VERSION)</title>
|
||||||
<style type='text/css'>
|
<style type='text/css'>
|
||||||
|
|
||||||
*:focus {
|
*:focus {
|
||||||
|
@ -189,8 +189,17 @@
|
||||||
<br />
|
<br />
|
||||||
<img src="logo.svg" width="1024" height="414" style="width: auto; height: auto; max-width: 85%; max-height: 250px" />
|
<img src="logo.svg" width="1024" height="414" style="width: auto; height: auto; max-width: 85%; max-height: 250px" />
|
||||||
<br />
|
<br />
|
||||||
|
$GODOT_VERSION
|
||||||
|
<br />
|
||||||
|
<a href="releases/">Need an old version?</a>
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
<label for="zip-file" style="margin-right: 1rem">Preload project ZIP:</label> <input id="zip-file" type="file" id="files" name="files" style="margin-bottom: 1rem"/>
|
<label for="zip-file" style="margin-right: 1rem">Preload project ZIP:</label> <input id="zip-file" type="file" id="files" name="files" style="margin-bottom: 1rem"/>
|
||||||
<br />
|
<br />
|
||||||
|
<a href="demo.zip">(Try this for example)</a>
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
<button id="startButton" class="btn" style="margin-bottom: 4rem">Start Godot editor</button>
|
<button id="startButton" class="btn" style="margin-bottom: 4rem">Start Godot editor</button>
|
||||||
<br />
|
<br />
|
||||||
<button class="btn" onclick="clearPersistence()">Clear persistent data</button>
|
<button class="btn" onclick="clearPersistence()">Clear persistent data</button>
|
||||||
|
|
|
@ -41,8 +41,6 @@ if env["gdnative_enabled"]:
|
||||||
sys_env["LIBS"] = []
|
sys_env["LIBS"] = []
|
||||||
# We use IDBFS. Since Emscripten 1.39.1 it needs to be linked explicitly.
|
# We use IDBFS. Since Emscripten 1.39.1 it needs to be linked explicitly.
|
||||||
sys_env.Append(LIBS=["idbfs.js"])
|
sys_env.Append(LIBS=["idbfs.js"])
|
||||||
# JS prepended to the module code loading the side library.
|
|
||||||
sys_env.Append(LINKFLAGS=["--pre-js", sys_env.File("js/dynlink.pre.js")])
|
|
||||||
# Configure it as a main module (dynamic linking support).
|
# Configure it as a main module (dynamic linking support).
|
||||||
sys_env.Append(CCFLAGS=["-s", "MAIN_MODULE=1"])
|
sys_env.Append(CCFLAGS=["-s", "MAIN_MODULE=1"])
|
||||||
sys_env.Append(LINKFLAGS=["-s", "MAIN_MODULE=1"])
|
sys_env.Append(LINKFLAGS=["-s", "MAIN_MODULE=1"])
|
||||||
|
@ -52,7 +50,6 @@ if env["gdnative_enabled"]:
|
||||||
sys_env["ENV"]["EMCC_FORCE_STDLIBS"] = "libc,libc++,libc++abi"
|
sys_env["ENV"]["EMCC_FORCE_STDLIBS"] = "libc,libc++,libc++abi"
|
||||||
# The main emscripten runtime, with exported standard libraries.
|
# The main emscripten runtime, with exported standard libraries.
|
||||||
sys = sys_env.Program(build_targets, ["javascript_runtime.cpp"])
|
sys = sys_env.Program(build_targets, ["javascript_runtime.cpp"])
|
||||||
sys_env.Depends(sys, "js/dynlink.pre.js")
|
|
||||||
|
|
||||||
# The side library, containing all Godot code.
|
# The side library, containing all Godot code.
|
||||||
wasm_env = env.Clone()
|
wasm_env = env.Clone()
|
||||||
|
@ -96,7 +93,13 @@ out_files = [
|
||||||
zip_dir.File(binary_name + ".html"),
|
zip_dir.File(binary_name + ".html"),
|
||||||
zip_dir.File(binary_name + ".audio.worklet.js"),
|
zip_dir.File(binary_name + ".audio.worklet.js"),
|
||||||
]
|
]
|
||||||
html_file = "#misc/dist/html/editor.html" if env["tools"] else "#misc/dist/html/full-size.html"
|
html_file = "#misc/dist/html/full-size.html"
|
||||||
|
if env["tools"]:
|
||||||
|
subst_dict = {"\$GODOT_VERSION": env.GetBuildVersion()}
|
||||||
|
html_file = env.Substfile(
|
||||||
|
target="#bin/godot${PROGSUFFIX}.html", source="#misc/dist/html/editor.html", SUBST_DICT=subst_dict
|
||||||
|
)
|
||||||
|
|
||||||
in_files = [js_wrapped, build[1], html_file, "#platform/javascript/js/libs/audio.worklet.js"]
|
in_files = [js_wrapped, build[1], html_file, "#platform/javascript/js/libs/audio.worklet.js"]
|
||||||
if env["gdnative_enabled"]:
|
if env["gdnative_enabled"]:
|
||||||
in_files.append(build[2]) # Runtime
|
in_files.append(build[2]) # Runtime
|
||||||
|
|
|
@ -1,7 +1,14 @@
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
from emscripten_helpers import run_closure_compiler, create_engine_file, add_js_libraries, add_js_pre, add_js_externs
|
from emscripten_helpers import (
|
||||||
|
run_closure_compiler,
|
||||||
|
create_engine_file,
|
||||||
|
add_js_libraries,
|
||||||
|
add_js_pre,
|
||||||
|
add_js_externs,
|
||||||
|
get_build_version,
|
||||||
|
)
|
||||||
from methods import get_compiler_version
|
from methods import get_compiler_version
|
||||||
from SCons.Util import WhereIs
|
from SCons.Util import WhereIs
|
||||||
|
|
||||||
|
@ -57,7 +64,6 @@ def configure(env):
|
||||||
sys.exit(255)
|
sys.exit(255)
|
||||||
|
|
||||||
## Build type
|
## Build type
|
||||||
|
|
||||||
if env["target"] == "release":
|
if env["target"] == "release":
|
||||||
# Use -Os to prioritize optimizing for reduced file size. This is
|
# Use -Os to prioritize optimizing for reduced file size. This is
|
||||||
# particularly valuable for the web platform because it directly
|
# particularly valuable for the web platform because it directly
|
||||||
|
@ -139,6 +145,9 @@ def configure(env):
|
||||||
env.AddMethod(add_js_pre, "AddJSPre")
|
env.AddMethod(add_js_pre, "AddJSPre")
|
||||||
env.AddMethod(add_js_externs, "AddJSExterns")
|
env.AddMethod(add_js_externs, "AddJSExterns")
|
||||||
|
|
||||||
|
# Add method for getting build version string.
|
||||||
|
env.AddMethod(get_build_version, "GetBuildVersion")
|
||||||
|
|
||||||
# Add method that joins/compiles our Engine files.
|
# Add method that joins/compiles our Engine files.
|
||||||
env.AddMethod(create_engine_file, "CreateEngineFile")
|
env.AddMethod(create_engine_file, "CreateEngineFile")
|
||||||
|
|
||||||
|
|
|
@ -15,6 +15,15 @@ def run_closure_compiler(target, source, env, for_signature):
|
||||||
return " ".join(cmd)
|
return " ".join(cmd)
|
||||||
|
|
||||||
|
|
||||||
|
def get_build_version(env):
|
||||||
|
import version
|
||||||
|
|
||||||
|
name = "custom_build"
|
||||||
|
if os.getenv("BUILD_NAME") != None:
|
||||||
|
name = os.getenv("BUILD_NAME")
|
||||||
|
return "%d.%d.%d.%s.%s" % (version.major, version.minor, version.patch, version.status, name)
|
||||||
|
|
||||||
|
|
||||||
def create_engine_file(env, target, source, externs):
|
def create_engine_file(env, target, source, externs):
|
||||||
if env["use_closure_compiler"]:
|
if env["use_closure_compiler"]:
|
||||||
return env.BuildJS(target, source, JSEXTERNS=externs)
|
return env.BuildJS(target, source, JSEXTERNS=externs)
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
Module['dynamicLibraries'] = [Module['thisProgram'] + '.side.wasm'].concat(Module['dynamicLibraries'] ? Module['dynamicLibraries'] : []);
|
|
|
@ -62,7 +62,7 @@ const Engine = (function () {
|
||||||
// Emscripten configuration.
|
// Emscripten configuration.
|
||||||
config['thisProgram'] = me.executableName;
|
config['thisProgram'] = me.executableName;
|
||||||
config['noExitRuntime'] = true;
|
config['noExitRuntime'] = true;
|
||||||
config['dynamicLibraries'] = me.gdnativeLibs;
|
config['dynamicLibraries'] = [`${me.executableName}.side.wasm`].concat(me.gdnativeLibs);
|
||||||
Godot(config).then(function (module) {
|
Godot(config).then(function (module) {
|
||||||
module['initFS'](me.persistentPaths).then(function (fs_err) {
|
module['initFS'](me.persistentPaths).then(function (fs_err) {
|
||||||
me.rtenv = module;
|
me.rtenv = module;
|
||||||
|
|
Loading…
Reference in a new issue