Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 19 additions & 5 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -58,20 +58,25 @@ $(LUA_O) : $(LUASRC)

SHADER_SRC=$(wildcard src/*.glsl)
SHADER_O=$(patsubst src/%.glsl,$(BUILD)/%.glsl.h,$(SHADER_SRC))
EXTLUA_SHADER_SRC=$(wildcard extlua/*.glsl)
EXTLUA_SHADER_O=$(patsubst extlua/%.glsl,$(BUILD)/%.glsl.h,$(EXTLUA_SHADER_SRC))
SHADERINC=-I$(BUILD)

$(BUILD)/%.glsl.h : src/%.glsl
$(SHDC) --input $< --output $@ --slang hlsl4 --format sokol

shader : $(SHADER_O)
$(BUILD)/%.glsl.h : extlua/%.glsl
$(SHDC) --input $< --output $@ --slang hlsl4 --format sokol

shader : $(SHADER_O) $(EXTLUA_SHADER_O)

MAIN_FULL=$(wildcard src/*.c)
PLATFORM_FULL=$(wildcard src/platform/windows/*.c)
MAIN_C=$(notdir $(MAIN_FULL))
MAIN_O=$(patsubst %.c,$(BUILD)/soluna_%.o,$(MAIN_C))
PLATFORM_C=$(notdir $(PLATFORM_FULL))
PLATFORM_O=$(patsubst %.c,$(BUILD)/platform_%.o,$(PLATFORM_C))
EXTLUA_O=$(BUILD)/extlua_impl.o
EXTLUA_O=$(BUILD)/extlua_impl.o $(BUILD)/sokolapi_impl.o $(BUILD)/solunaapi_impl.o

$(MAIN_O) : $(SHADER_O)

Expand All @@ -82,7 +87,7 @@ LTASK_O=$(patsubst %.c,$(BUILD)/ltask_%.o,$(LTASK_C))
LTASK_LUASRC=\
3rd/ltask/service/root.lua\
3rd/ltask/service/timer.lua\
$(wildcard 3rd/ltask/lualib/*.lua src/lualib/*.lua src/service/*.lua)
$(wildcard 3rd/ltask/lualib/*.lua src/lualib/*.lua src/service/*.lua src/material/*.lua)

LTASK_LUACODE=$(patsubst %.lua, $(BUILD)/%.lua.h, $(notdir $(LTASK_LUASRC)))

Expand Down Expand Up @@ -116,6 +121,9 @@ $(BUILD)/%.lua.h : src/lualib/%.lua
$(BUILD)/%.lua.h : src/service/%.lua
$(COMPILE_LUA)

$(BUILD)/%.lua.h : src/material/%.lua
$(COMPILE_LUA)

$(BUILD)/%.dl.h : src/data/%.dl
$(COMPILE_DATALIST)

Expand Down Expand Up @@ -153,11 +161,17 @@ $(BUILD)/minizip_%.o : 3rd/zlib/contrib/minizip/%.c
$(BUILD)/extlua_impl.o : extlua/extlua_impl.c
$(COMPILE_C) $(LUAINC)

$(BUILD)/sokolapi_impl.o : extlua/sokolapi_impl.c
$(COMPILE_C) $(3RDINC)

$(BUILD)/solunaapi_impl.o : extlua/solunaapi_impl.c
$(COMPILE_C) $(LUAINC) $(3RDINC)

$(BIN)/$(APPNAME): $(MAIN_O) $(PLATFORM_O) $(EXTLUA_O) $(LTASK_O) $(LUA_O) $(DATALIST_O) $(BUILD)/yoga.o $(ZLIB_O) $(MINIZIP_O)
$(LD) $(OUTPUT_EXE) $@ $^ $(LDFLAGS)

$(BIN)/sample.dll : extlua/extlua.c extlua/extlua_sample.c
$(CC) $(CFLAGS) $(SHARED) $(OUTPUT_EXE) $@ $^ $(LUAINC)
$(BIN)/sample.dll : extlua/extlua.c extlua/sokolapi.c extlua/solunaapi.c extlua/extlua_sample.c | $(EXTLUA_SHADER_O)
$(CC) $(CFLAGS) $(SHARED) $(OUTPUT_EXE) $@ $^ $(LUAINC) $(3RDINC) $(SHADERINC) -Iextlua

extlua_sample: $(BIN)/sample.dll

Expand Down
82 changes: 82 additions & 0 deletions clibs/sample/make.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
local lm = require "luamake"
local platform = require "bee.platform"

lm.rootdir = lm.basedir

local function shdc_plat()
if lm.os == "windows" then
return "win32"
end
if lm.os == "linux" then
return "linux"
end
if lm.os == "macos" then
return platform.Arch == "arm64" and "osx_arm64" or "osx"
end
return "unknown"
end

local paths = {
windows = "$PATH/$NAME.exe",
macos = "$PATH/$NAME",
linux = "$PATH/$NAME",
}

local shdc = assert(paths[lm.os]):gsub("%$(%u+)", {
PATH = tostring(lm.basedir / "bin/sokol-tools-bin/bin" / shdc_plat()),
NAME = "sokol-shdc",
})

local function shader_lang()
local plat = lm.platform
if plat == "msvc" or plat == "clang-cl" or plat == "mingw" then
return "hlsl4"
end
if plat == "macos" then
return "metal_macos"
end
if plat == "emcc" then
return "wgsl"
end
if plat == "linux" then
return "glsl430"
end
return "unknown"
end

local function compile_shader(src, name)
local dep = name .. "_shader"
local target = lm.builddir .. "/" .. name
lm:runlua(dep) {
script = lm.basedir .. "/clibs/soluna/shader2c.lua",
inputs = lm.basedir .. "/" .. src,
outputs = lm.basedir .. "/" .. target,
args = {
shdc,
"$in",
"$out",
shader_lang(),
},
}
return dep
end

local sample_shader = compile_shader("extlua/perspective_quad.glsl", "perspective_quad.glsl.h")

lm:dll "sample" {
sources = {
"extlua/extlua.c",
"extlua/sokolapi.c",
"extlua/solunaapi.c",
"extlua/extlua_sample.c",
},
objdeps = {
sample_shader,
},
includes = {
"3rd/lua",
"3rd",
"build",
"extlua",
},
}
1 change: 1 addition & 0 deletions clibs/soluna/compile_lua.lua
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ local lua_code_src = {
"3rd/ltask/lualib",
"src/service",
"src/lualib",
"src/material",
}

return function(objdeps)
Expand Down
2 changes: 2 additions & 0 deletions clibs/soluna/make.lua
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@ lm:source_set "soluna_src" {
sources = {
"src/*.c",
"extlua/extlua_impl.c",
"extlua/sokolapi_impl.c",
"extlua/solunaapi_impl.c",
},
objdeps = objdeps,
defines = {
Expand Down
27 changes: 0 additions & 27 deletions docs/material_perspective_quad.lua

This file was deleted.

Loading
Loading