Skip to content

Commit

Permalink
Add modules struct, bit, color_utils and sjson to luac.cross (#3230)
Browse files Browse the repository at this point in the history
  • Loading branch information
HHHartmann authored and marcelstoer committed Feb 25, 2024
1 parent 44e4c4a commit 4b92eab
Show file tree
Hide file tree
Showing 14 changed files with 141 additions and 42 deletions.
47 changes: 44 additions & 3 deletions app/lua/linit.c
Expand Up @@ -59,22 +59,63 @@ extern LROT_TABLE(math);
LROT_FUNCENTRY( debug, luaopen_debug )

#if defined(LUA_CROSS_COMPILER)
extern LROT_TABLE(base_func);

#define LUAC_MODULE(map) \
LUALIB_API LROT_TABLE(map);

#define LUAC_MODULE_INIT(map, initfunc) \
LUAC_MODULE(map);\
LUALIB_API int initfunc(lua_State *L);

#ifndef __MINGW32__
LUAC_MODULE(thislib) // module struct
LUAC_MODULE(bit)
LUAC_MODULE(color_utils)
LUAC_MODULE_INIT(sjson, luaopen_sjson)
LUAC_MODULE(pipe)
#ifndef _MSC_VER
LUAC_MODULE_INIT(pixbuf, luaopen_pixbuf)
#endif
#endif

LUAC_MODULE(base_func);
LROT_BEGIN(rotables_meta, NULL, LROT_MASK_INDEX)
LROT_TABENTRY( __index, base_func)
LROT_END(rotables_meta, NULL, LROT_MASK_INDEX)

extern LROT_TABLE(oslib);
extern LROT_TABLE(iolib);
LUAC_MODULE(oslib);
LUAC_MODULE(iolib);
LROT_BEGIN(rotables, LROT_TABLEREF(rotables_meta), 0)
LROT_ROM_ENTRIES
LROT_TABENTRY( os, oslib )
LROT_TABENTRY( io, iolib )
#ifndef __MINGW32__
// modules
LROT_TABENTRY( struct, thislib )
LROT_TABENTRY(bit, bit)
LROT_TABENTRY(color_utils, color_utils)
LROT_TABENTRY(sjson, sjson)
LROT_TABENTRY(pipe, pipe)
#ifndef _MSC_VER
LROT_TABENTRY(pixbuf, pixbuf)
#endif
#endif
LROT_END(rotables, LROT_TABLEREF(rotables_meta), 0)

LROT_BEGIN(lua_libs, NULL, 0)
LROT_LIB_ENTRIES
LROT_FUNCENTRY( io, luaopen_io )
#ifndef __MINGW32__
// modules
LROT_FUNCENTRY(struct, NULL)
LROT_FUNCENTRY(bit, NULL)
LROT_FUNCENTRY(color_utils, NULL)
LROT_FUNCENTRY(sjson, luaopen_sjson)
LROT_FUNCENTRY(pipe, NULL)
#ifndef _MSC_VER
LROT_FUNCENTRY(pixbuf, luaopen_pixbuf)
#endif
#endif
LROT_END(lua_libs, NULL, 0)

#else
Expand Down
9 changes: 6 additions & 3 deletions app/lua/luac_cross/Makefile
Expand Up @@ -8,7 +8,7 @@

summary ?= @true

CCFLAGS:= -I. -I.. -I../../include -I../../uzlib
CCFLAGS:= -I. -I.. -I../../include -I../../uzlib -I../..
LDFLAGS:= -L$(SDK_DIR)/lib -L$(SDK_DIR)/ld -lm -ldl -Wl,-Map=mapfile

CCFLAGS += -Wall
Expand Down Expand Up @@ -59,12 +59,15 @@ LUASRC := lapi.c lauxlib.c lbaselib.c lcode.c ldblib.c ldebug.c
lstate.c lstring.c lstrlib.c ltable.c ltablib.c \
ltm.c lundump.c lvm.c lzio.c lnodemcu.c
UZSRC := uzlib_deflate.c crc32.c
SJSONSRC:= jsonsl.c
MODSRC := struct.c bit.c color_utils.c sjson.c pipe.c pixbuf.c
#bloom.c crypto.c encoder.c (file.c)

#
# This relies on the files being unique on the vpath
#
SRC := $(LUACSRC) $(LUASRC) $(UZSRC)
vpath %.c .:..:../../libc:../../uzlib
SRC := $(LUACSRC) $(LUASRC) $(UZSRC) $(MODSRC) $(SJSONSRC)
vpath %.c .:..:../../libc:../../uzlib:../../modules:../../sjson

ODIR := .output/$(TARGET)/$(FLAVOR)/obj

Expand Down
3 changes: 1 addition & 2 deletions app/lua/luac_cross/luac.c
Expand Up @@ -291,8 +291,7 @@ static int pmain(lua_State* L)
{
luaL_openlibs(L);
if (luaL_loadfile(L,execute)!=0) fatal(lua_tostring(L,-1));
lua_pushstring(L, execute);
if (lua_pcall(L, 1, 1, 0)) fatal(lua_tostring(L,-1));
if (lua_pcall(L, 0, 1, 0)) fatal(lua_tostring(L,-1));
if (!lua_isfunction(L, -1))
{
lua_pop(L,1);
Expand Down
9 changes: 6 additions & 3 deletions app/lua53/host/Makefile
Expand Up @@ -6,7 +6,7 @@
#
.NOTPARALLEL:

CCFLAGS:= -I. -I.. -I../../include -I../../uzlib
CCFLAGS:= -I. -I.. -I../../include -I../../uzlib -I../..
LDFLAGS:= -L$(SDK_DIR)/lib -L$(SDK_DIR)/ld -lm -ldl -Wl,-Map=mapfile

CCFLAGS += -Wall
Expand Down Expand Up @@ -55,6 +55,9 @@ LUASRC := lapi.c lauxlib.c lbaselib.c lcode.c lcorolib.c lctype.c
ltable.c ltablib.c ltm.c lundump.c lutf8lib.c lvm.c \
lzio.c
UZSRC := uzlib_deflate.c crc32.c
SJSONSRC:= jsonsl.c
MODSRC := struct.c bit.c color_utils.c sjson.c pipe.c pixbuf.c
#bloom.c crypto.c encoder.c (file.c)

TEST ?=
ifeq ("$(TEST)","1")
Expand All @@ -65,8 +68,8 @@ endif # $(TEST)==1
#
# This relies on the files being unique on the vpath
#
SRC := $(LUACSRC) $(LUASRC) $(UZSRC)
vpath %.c .:..:../../libc:../../uzlib
SRC := $(LUACSRC) $(LUASRC) $(UZSRC) $(MODSRC) $(SJSONSRC)
vpath %.c .:..:../../libc:../../uzlib:../../modules:../../sjson

ODIR := .output/$(TARGET)/$(FLAVOR)/obj

Expand Down
33 changes: 30 additions & 3 deletions app/lua53/linit.c
Expand Up @@ -72,22 +72,49 @@ extern LROT_TABLE(utf8);
#if defined(LUA_CROSS_COMPILER)

/* _G __index -> rotables __index -> base_func */
extern LROT_TABLE(rotables_meta);
extern LROT_TABLE(base_func);

#define LUAC_MODULE(map) \
LUALIB_API LROT_TABLE(map);

#define LUAC_MODULE_INIT(map, initfunc) \
LUAC_MODULE(map);\
LUALIB_API int initfunc(lua_State *L);

LUAC_MODULE(thislib) // module struct
LUAC_MODULE(bit)
LUAC_MODULE(color_utils)
LUAC_MODULE_INIT(sjson, luaopen_sjson)
LUAC_MODULE(pipe)
LUAC_MODULE_INIT(pixbuf, luaopen_pixbuf)

LUAC_MODULE(rotables_meta);
LUAC_MODULE(base_func);
LROT_BEGIN(rotables_meta, NULL, LROT_MASK_INDEX)
LROT_TABENTRY( __index, base_func)
LROT_END(rotables_meta, NULL, LROT_MASK_INDEX)

LROT_BEGIN(rotables, LROT_TABLEREF(rotables_meta), 0)
LROT_TABENTRY( _G, base_func)
LROT_ROM_ENTRIES
// modules
LROT_TABENTRY( struct, thislib )
LROT_TABENTRY(bit, bit)
LROT_TABENTRY(color_utils, color_utils)
LROT_TABENTRY(sjson, sjson)
LROT_TABENTRY(pipe, pipe)
LROT_TABENTRY(pixbuf, pixbuf)
LROT_END(rotables, LROT_TABLEREF(rotables_meta), 0)

LROT_BEGIN(lua_libs, NULL, 0)
LROT_LIB_ENTRIES
LROT_FUNCENTRY( io, luaopen_io )
LROT_FUNCENTRY( os, luaopen_os )
// modules
LROT_FUNCENTRY(struct, NULL)
LROT_FUNCENTRY(bit, NULL)
LROT_FUNCENTRY(color_utils, NULL)
LROT_FUNCENTRY(sjson, luaopen_sjson)
LROT_FUNCENTRY(pipe, NULL)
LROT_FUNCENTRY(pixbuf, luaopen_pixbuf)
LROT_END(lua_libs, NULL, 0)

#else /* LUA_USE_ESP */
Expand Down
3 changes: 0 additions & 3 deletions app/modules/color_utils.c
@@ -1,12 +1,9 @@
#include "module.h"
#include "lauxlib.h"
#include "lmem.h"
#include "platform.h"
#include <stdlib.h>
#include <math.h>
#include <string.h>
#include "user_interface.h"
#include "osapi.h"

#include "color_utils.h"

Expand Down
10 changes: 1 addition & 9 deletions app/modules/color_utils.h
@@ -1,15 +1,7 @@
#ifndef APP_MODULES_COLOR_UTILS_H_
#define APP_MODULES_COLOR_UTILS_H_

#include "module.h"
#include "lauxlib.h"
#include "lmem.h"
#include "platform.h"
#include <stdlib.h>
#include <math.h>
#include <string.h>
#include "user_interface.h"
#include "osapi.h"
#include "lnodemcu.h"

/**
* Convert hsv to grb
Expand Down
7 changes: 3 additions & 4 deletions app/modules/pipe.c
Expand Up @@ -51,7 +51,6 @@
#include "module.h"
#include "lauxlib.h"
#include <string.h>
#include "platform.h"

#define INVALID_LEN ((unsigned)-1)

Expand Down Expand Up @@ -226,11 +225,11 @@ int pipe_create(lua_State *L) {
if (!lua_isnil(L, 1)) {
luaL_checktype(L, 1, LUA_TFUNCTION); /* non-nil arg1 must be a function */
if (lua_isnil(L, 2)) {
prio = PLATFORM_TASK_PRIORITY_MEDIUM;
prio = LUA_TASK_MEDIUM;
} else {
prio = (int) lua_tointeger(L, 2);
luaL_argcheck(L, prio >= PLATFORM_TASK_PRIORITY_LOW &&
prio <= PLATFORM_TASK_PRIORITY_HIGH, 2,
luaL_argcheck(L, prio >= LUA_TASK_LOW &&
prio <= LUA_TASK_HIGH, 2,
"invalid priority");
}
}
Expand Down
2 changes: 1 addition & 1 deletion lua_modules/liquidcrystal/lc-gpio4bit.lua
@@ -1,4 +1,4 @@
local gpio, bit = gpio, bit --luacheck: read globals gpio bit
local gpio, bit = gpio, bit

return function(bus_args)
local rs = bus_args.rs or 0
Expand Down
2 changes: 1 addition & 1 deletion lua_modules/liquidcrystal/lc-gpio8bit.lua
@@ -1,4 +1,4 @@
local gpio, bit = gpio, bit --luacheck: read globals gpio bit
local gpio, bit = gpio, bit

return function(bus_args)
local rs = bus_args.rs or 0
Expand Down
2 changes: 1 addition & 1 deletion lua_modules/liquidcrystal/lc-i2c4bit.lua
@@ -1,4 +1,4 @@
local i2c, bit = i2c, bit --luacheck: read globals i2c bit
local i2c, bit = i2c, bit

return function(bus_args)
local busid = bus_args.id or 0
Expand Down
2 changes: 1 addition & 1 deletion lua_modules/liquidcrystal/liquidcrystal.lua
@@ -1,4 +1,4 @@
local bit = bit --luacheck: read globals bit
local bit = bit
-- metatable
local LiquidCrystal = {}
LiquidCrystal.__index = LiquidCrystal
Expand Down
17 changes: 13 additions & 4 deletions msvc/luac-cross/luac-cross.vcxproj
Expand Up @@ -104,7 +104,7 @@
<ConformanceMode>true</ConformanceMode>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<AdditionalIncludeDirectories>$(ProjectDir)\..\..\app\lua;$(ProjectDir)\..\..\app\libc;$(ProjectDir)\..\..\app\include;$(ProjectDir)\..\..\app\uzlib</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(ProjectDir)\..\..\app\lua;$(ProjectDir)\..\..\app\libc;$(ProjectDir)\..\..\app\include;$(ProjectDir)\..\..\app\uzlib;$(ProjectDir)\..\..\app</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
Expand All @@ -123,7 +123,7 @@
<ConformanceMode>true</ConformanceMode>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<AdditionalIncludeDirectories>$(ProjectDir)\..\..\app\lua;$(ProjectDir)\..\..\app\libc;$(ProjectDir)\..\..\app\include;$(ProjectDir)\..\..\app\uzlib</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(ProjectDir)\..\..\app\lua;$(ProjectDir)\..\..\app\libc;$(ProjectDir)\..\..\app\include;$(ProjectDir)\..\..\app\uzlib;$(ProjectDir)\..\..\app</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
Expand All @@ -144,7 +144,7 @@
<ConformanceMode>true</ConformanceMode>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<AdditionalIncludeDirectories>$(ProjectDir)\..\..\app\lua;$(ProjectDir)\..\..\app\libc;$(ProjectDir)\..\..\app\include;$(ProjectDir)\..\..\app\uzlib</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(ProjectDir)\..\..\app\lua;$(ProjectDir)\..\..\app\libc;$(ProjectDir)\..\..\app\include;$(ProjectDir)\..\..\app\uzlib;$(ProjectDir)\..\..\app</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
Expand All @@ -167,7 +167,7 @@
<ConformanceMode>true</ConformanceMode>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<AdditionalIncludeDirectories>$(ProjectDir)\..\..\app\lua;$(ProjectDir)\..\..\app\libc;$(ProjectDir)\..\..\app\include;$(ProjectDir)\..\..\app\uzlib</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(ProjectDir)\..\..\app\lua;$(ProjectDir)\..\..\app\libc;$(ProjectDir)\..\..\app\include;$(ProjectDir)\..\..\app\uzlib;$(ProjectDir)\..\..\app</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
Expand Down Expand Up @@ -212,6 +212,12 @@
<ClCompile Include="..\..\app\lua\lundump.c" />
<ClCompile Include="..\..\app\lua\lvm.c" />
<ClCompile Include="..\..\app\lua\lzio.c" />
<ClCompile Include="..\..\app\modules\bit.c" />
<ClCompile Include="..\..\app\modules\color_utils.c" />
<ClCompile Include="..\..\app\modules\sjson.c" />
<ClCompile Include="..\..\app\modules\pipe.c" />
<ClCompile Include="..\..\app\modules\struct.c" />
<ClCompile Include="..\..\app\sjson\jsonsl.c" />
<ClCompile Include="..\..\app\uzlib\crc32.c" />
<ClCompile Include="..\..\app\uzlib\uzlib_deflate.c" />
</ItemGroup>
Expand Down Expand Up @@ -246,6 +252,9 @@
<ClInclude Include="..\..\app\lua\lundump.h" />
<ClInclude Include="..\..\app\lua\lvm.h" />
<ClInclude Include="..\..\app\lua\lzio.h" />
<ClInclude Include="..\..\app\sjson\jsonsl.h" />
<ClInclude Include="..\..\app\sjson\json_config.h" />
<ClInclude Include="..\..\app\sjson\memcompat.h" />
<ClInclude Include="..\..\app\uzlib\uzlib.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
Expand Down
37 changes: 33 additions & 4 deletions msvc/luac-cross/luac-cross.vcxproj.filters
@@ -1,10 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;hm;inl;inc;ipp;xsd</Extensions>
Expand All @@ -28,6 +24,12 @@
<Filter Include="app\include">
<UniqueIdentifier>{439d70e8-0091-42d2-919f-7e710de3867c}</UniqueIdentifier>
</Filter>
<Filter Include="app\modules">
<UniqueIdentifier>{3b52796e-cc0c-458d-bb40-d416bb18d49d}</UniqueIdentifier>
</Filter>
<Filter Include="app\sjson">
<UniqueIdentifier>{fcd87750-9084-4308-bb91-bd4d44d29a90}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\app\uzlib\crc32.c">
Expand Down Expand Up @@ -132,6 +134,24 @@
<ClCompile Include="..\..\app\lua\lzio.c">
<Filter>app\lua</Filter>
</ClCompile>
<ClCompile Include="..\..\app\modules\struct.c">
<Filter>app\modules</Filter>
</ClCompile>
<ClCompile Include="..\..\app\modules\bit.c">
<Filter>app\modules</Filter>
</ClCompile>
<ClCompile Include="..\..\app\modules\color_utils.c">
<Filter>app\modules</Filter>
</ClCompile>
<ClCompile Include="..\..\app\modules\sjson.c">
<Filter>app\modules</Filter>
</ClCompile>
<ClCompile Include="..\..\app\modules\pipe.c">
<Filter>app\modules</Filter>
</ClCompile>
<ClCompile Include="..\..\app\sjson\jsonsl.c">
<Filter>app\sjson</Filter>
</ClCompile>
<ClCompile Include="..\..\app\lua\lnodemcu.c">
<Filter>app\lua</Filter>
</ClCompile>
Expand Down Expand Up @@ -230,5 +250,14 @@
<ClInclude Include="..\..\app\include\user_modules.h">
<Filter>app\include</Filter>
</ClInclude>
<ClInclude Include="..\..\app\sjson\json_config.h">
<Filter>app\sjson</Filter>
</ClInclude>
<ClInclude Include="..\..\app\sjson\jsonsl.h">
<Filter>app\sjson</Filter>
</ClInclude>
<ClInclude Include="..\..\app\sjson\memcompat.h">
<Filter>app\sjson</Filter>
</ClInclude>
</ItemGroup>
</Project>

0 comments on commit 4b92eab

Please sign in to comment.