[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 name='viewport' content='width=device-width, user-scalable=no' />
|
||||
<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'>
|
||||
|
||||
*:focus {
|
||||
|
@ -189,8 +189,17 @@
|
|||
<br />
|
||||
<img src="logo.svg" width="1024" height="414" style="width: auto; height: auto; max-width: 85%; max-height: 250px" />
|
||||
<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"/>
|
||||
<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>
|
||||
<br />
|
||||
<button class="btn" onclick="clearPersistence()">Clear persistent data</button>
|
||||
|
|
|
@ -41,8 +41,6 @@ if env["gdnative_enabled"]:
|
|||
sys_env["LIBS"] = []
|
||||
# We use IDBFS. Since Emscripten 1.39.1 it needs to be linked explicitly.
|
||||
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).
|
||||
sys_env.Append(CCFLAGS=["-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"
|
||||
# The main emscripten runtime, with exported standard libraries.
|
||||
sys = sys_env.Program(build_targets, ["javascript_runtime.cpp"])
|
||||
sys_env.Depends(sys, "js/dynlink.pre.js")
|
||||
|
||||
# The side library, containing all Godot code.
|
||||
wasm_env = env.Clone()
|
||||
|
@ -96,7 +93,13 @@ out_files = [
|
|||
zip_dir.File(binary_name + ".html"),
|
||||
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"]
|
||||
if env["gdnative_enabled"]:
|
||||
in_files.append(build[2]) # Runtime
|
||||
|
|
|
@ -1,7 +1,14 @@
|
|||
import os
|
||||
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 SCons.Util import WhereIs
|
||||
|
||||
|
@ -57,7 +64,6 @@ def configure(env):
|
|||
sys.exit(255)
|
||||
|
||||
## Build type
|
||||
|
||||
if env["target"] == "release":
|
||||
# Use -Os to prioritize optimizing for reduced file size. This is
|
||||
# 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_externs, "AddJSExterns")
|
||||
|
||||
# Add method for getting build version string.
|
||||
env.AddMethod(get_build_version, "GetBuildVersion")
|
||||
|
||||
# Add method that joins/compiles our Engine files.
|
||||
env.AddMethod(create_engine_file, "CreateEngineFile")
|
||||
|
||||
|
|
|
@ -15,6 +15,15 @@ def run_closure_compiler(target, source, env, for_signature):
|
|||
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):
|
||||
if env["use_closure_compiler"]:
|
||||
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.
|
||||
config['thisProgram'] = me.executableName;
|
||||
config['noExitRuntime'] = true;
|
||||
config['dynamicLibraries'] = me.gdnativeLibs;
|
||||
config['dynamicLibraries'] = [`${me.executableName}.side.wasm`].concat(me.gdnativeLibs);
|
||||
Godot(config).then(function (module) {
|
||||
module['initFS'](me.persistentPaths).then(function (fs_err) {
|
||||
me.rtenv = module;
|
||||
|
|
Loading…
Reference in a new issue