From 3023a12184a08c55f49a51129ef002f5e3dfc77f Mon Sep 17 00:00:00 2001 From: John Alanbrook Date: Sun, 24 Mar 2024 12:44:35 -0500 Subject: [PATCH] Add system command; correct makefile --- Info.plist | 16 ++++++++++++++++ Makefile | 18 ++++++++++-------- scripts/engine.js | 2 +- scripts/std.js | 7 +++++++ source/engine/gameobject.h | 2 +- source/engine/jsffi.c | 5 +++++ source/engine/texture.h | 2 +- 7 files changed, 41 insertions(+), 11 deletions(-) create mode 100644 Info.plist diff --git a/Info.plist b/Info.plist new file mode 100644 index 00000000..b48bfc19 --- /dev/null +++ b/Info.plist @@ -0,0 +1,16 @@ + + + + + CFBundleExecutable + Prosperon + CFBundleIdentifier + pockle.world.prosperon + CFBundleName + Prosperon + CFBundleVersion + 0.5 + NSHumanReadableCopyright + Copyright © 2024 Pockle World. All rights reserved. + + \ No newline at end of file diff --git a/Makefile b/Makefile index 506238df..cec16fac 100755 --- a/Makefile +++ b/Makefile @@ -173,6 +173,7 @@ SHADERS = $(shell ls source/shaders/*.sglsl) SHADERS := $(patsubst %.sglsl, %.sglsl.h, $(SHADERS)) install: $(NAME) + @echo Copying to destination cp -f $(NAME) $(DESTDIR)/$(APP) $(NAME): libengine$(INFO).a libquickjs$(INFO).a @@ -180,14 +181,15 @@ $(NAME): libengine$(INFO).a libquickjs$(INFO).a $(LD) $^ $(CPPFLAGS) $(LDFLAGS) -L. $(LDPATHS) $(LDLIBS) -o $@ @echo Finished build -libengine$(INFO).a: $(OBJS) +libengine$(INFO).a: $(OBJS) + @echo Archiving $@ $(AR) rcs $@ $(OBJS) QUICKJS := source/engine/thirdparty/quickjs libquickjs$(INFO).a: $(QUICKJS)/libregexp$(INFO).o $(QUICKJS)/quickjs$(INFO).o $(QUICKJS)/libunicode$(INFO).o $(QUICKJS)/cutils$(INFO).o $(QUICKJS)/libbf$(INFO).o $(AR) rcs $@ $^ -%$(INFO).o: %.c $(SHADERS) source/engine/core.cdb.h +%$(INFO).o: %.c $(SHADERS) @echo Making C object $@ $(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@ @@ -206,6 +208,10 @@ shaders: $(SHADERS) @echo Creating shader $^ ./sokol-shdc --ifdef -i $^ --slang=glsl330:hlsl5:metal_macos:metal_ios:metal_sim:glsl300es -o $@ +SCRIPTS := $(shell ls scripts/*.js*) +CORE != (ls icons/* fonts/*) +CORE := $(CORE) $(SCRIPTS) + CDB = source/engine/thirdparty/tinycdb CDB_C != find $(CDB) -name *.c CDB_O := $(patsubst %.c, %.o, $(CDB_C)) @@ -223,19 +229,15 @@ packer: tools/packer.c tools/libcdb.a cc $^ -I$(CDB) -o packer core.cdb: packer $(CORE) + @echo Packing core.cdb ./packer $(CORE) chmod 644 out.cdb mv out.cdb core.cdb source/engine/core.cdb.h: core.cdb - @echo Packing core.cdb.h + @echo Making $@ xxd -i $< > $@ -SCRIPTS := $(shell ls scripts/*.js*) -SCRIPT_O := $(addsuffix o, $(SCRIPTS)) -CORE != (ls icons/* fonts/*) -CORE := $(CORE) $(SCRIPTS) - jsc: tools/jso.c tools/libquickjs.a $(CC) $^ -lm -Iquickjs -o $@ diff --git a/scripts/engine.js b/scripts/engine.js index a0aca9aa..45b46bec 100644 --- a/scripts/engine.js +++ b/scripts/engine.js @@ -37,7 +37,7 @@ qq = 'ms'; } Object.assign(console, { - say(msg) { console.print(msg + "\n"); }, + say(msg) { console.print(msg + "\n"); }, pprint(msg, lvl = 0) { if (typeof msg === 'object') diff --git a/scripts/std.js b/scripts/std.js index bad02de7..4bb5e3c6 100644 --- a/scripts/std.js +++ b/scripts/std.js @@ -37,6 +37,13 @@ os.prefpath = function() { return otherpath[os.sys()] + "/" + (game.title ? game.title : "Untitled Prosperon Game"); } +os.openurl = function(url) { + if (os.sys() === 'windows') + os.system(`start ${url}`); + else + os.system(`open ${url}`); +} + var projectfile = ".prosperon/project.json"; Resources.is_sound = function(path) { diff --git a/source/engine/gameobject.h b/source/engine/gameobject.h index 497fe21a..ce0c516c 100644 --- a/source/engine/gameobject.h +++ b/source/engine/gameobject.h @@ -45,7 +45,7 @@ struct gameobject { struct shape_cb *shape_cbs; JSValue ref; HMM_Mat4 world; - float drawlayer; + float drawlayer; }; /* diff --git a/source/engine/jsffi.c b/source/engine/jsffi.c index 6546e740..31ef4624 100644 --- a/source/engine/jsffi.c +++ b/source/engine/jsffi.c @@ -809,11 +809,16 @@ JSC_SCALL(os_make_texture, JS_SetPropertyStr(js, ret, "path", JS_DupValue(js,argv[0])); ) +JSC_SCALL(os_system, + system(str); +) + static const JSCFunctionListEntry js_os_funcs[] = { MIST_FUNC_DEF(os,sprite,1), MIST_FUNC_DEF(os, cwd, 0), MIST_FUNC_DEF(os, env, 1), MIST_FUNC_DEF(os, sys, 0), + MIST_FUNC_DEF(os, system, 1), MIST_FUNC_DEF(os, quit, 0), MIST_FUNC_DEF(os, reindex_static, 0), MIST_FUNC_DEF(os, gc, 0), diff --git a/source/engine/texture.h b/source/engine/texture.h index b3a02ea4..41110abb 100644 --- a/source/engine/texture.h +++ b/source/engine/texture.h @@ -3,7 +3,7 @@ #include "sokol/sokol_gfx.h" #include "HandmadeMath.h" -#include "render.h" +#include "render.h" #define TEX_SPEC 0 #define TEX_NORM 1