Add modules struct, bit, color_utils and sjson to luac.cross (#3230)

This commit is contained in:
Gregor Hartmann 2024-02-25 09:01:01 +01:00 committed by Marcel Stör
parent 44e4c4a70c
commit 4b92eab71a
14 changed files with 140 additions and 41 deletions

View File

@ -59,22 +59,63 @@ extern LROT_TABLE(math);
LROT_FUNCENTRY( debug, luaopen_debug ) LROT_FUNCENTRY( debug, luaopen_debug )
#if defined(LUA_CROSS_COMPILER) #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_BEGIN(rotables_meta, NULL, LROT_MASK_INDEX)
LROT_TABENTRY( __index, base_func) LROT_TABENTRY( __index, base_func)
LROT_END(rotables_meta, NULL, LROT_MASK_INDEX) LROT_END(rotables_meta, NULL, LROT_MASK_INDEX)
extern LROT_TABLE(oslib); LUAC_MODULE(oslib);
extern LROT_TABLE(iolib); LUAC_MODULE(iolib);
LROT_BEGIN(rotables, LROT_TABLEREF(rotables_meta), 0) LROT_BEGIN(rotables, LROT_TABLEREF(rotables_meta), 0)
LROT_ROM_ENTRIES LROT_ROM_ENTRIES
LROT_TABENTRY( os, oslib ) LROT_TABENTRY( os, oslib )
LROT_TABENTRY( io, iolib ) 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_END(rotables, LROT_TABLEREF(rotables_meta), 0)
LROT_BEGIN(lua_libs, NULL, 0) LROT_BEGIN(lua_libs, NULL, 0)
LROT_LIB_ENTRIES LROT_LIB_ENTRIES
LROT_FUNCENTRY( io, luaopen_io ) 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) LROT_END(lua_libs, NULL, 0)
#else #else

View File

@ -8,7 +8,7 @@
summary ?= @true 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 LDFLAGS:= -L$(SDK_DIR)/lib -L$(SDK_DIR)/ld -lm -ldl -Wl,-Map=mapfile
CCFLAGS += -Wall CCFLAGS += -Wall
@ -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 \ lstate.c lstring.c lstrlib.c ltable.c ltablib.c \
ltm.c lundump.c lvm.c lzio.c lnodemcu.c ltm.c lundump.c lvm.c lzio.c lnodemcu.c
UZSRC := uzlib_deflate.c crc32.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 # This relies on the files being unique on the vpath
# #
SRC := $(LUACSRC) $(LUASRC) $(UZSRC) SRC := $(LUACSRC) $(LUASRC) $(UZSRC) $(MODSRC) $(SJSONSRC)
vpath %.c .:..:../../libc:../../uzlib vpath %.c .:..:../../libc:../../uzlib:../../modules:../../sjson
ODIR := .output/$(TARGET)/$(FLAVOR)/obj ODIR := .output/$(TARGET)/$(FLAVOR)/obj

View File

@ -291,8 +291,7 @@ static int pmain(lua_State* L)
{ {
luaL_openlibs(L); luaL_openlibs(L);
if (luaL_loadfile(L,execute)!=0) fatal(lua_tostring(L,-1)); if (luaL_loadfile(L,execute)!=0) fatal(lua_tostring(L,-1));
lua_pushstring(L, execute); if (lua_pcall(L, 0, 1, 0)) fatal(lua_tostring(L,-1));
if (lua_pcall(L, 1, 1, 0)) fatal(lua_tostring(L,-1));
if (!lua_isfunction(L, -1)) if (!lua_isfunction(L, -1))
{ {
lua_pop(L,1); lua_pop(L,1);

View File

@ -6,7 +6,7 @@
# #
.NOTPARALLEL: .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 LDFLAGS:= -L$(SDK_DIR)/lib -L$(SDK_DIR)/ld -lm -ldl -Wl,-Map=mapfile
CCFLAGS += -Wall CCFLAGS += -Wall
@ -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 \ ltable.c ltablib.c ltm.c lundump.c lutf8lib.c lvm.c \
lzio.c lzio.c
UZSRC := uzlib_deflate.c crc32.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 ?= TEST ?=
ifeq ("$(TEST)","1") ifeq ("$(TEST)","1")
@ -65,8 +68,8 @@ endif # $(TEST)==1
# #
# This relies on the files being unique on the vpath # This relies on the files being unique on the vpath
# #
SRC := $(LUACSRC) $(LUASRC) $(UZSRC) SRC := $(LUACSRC) $(LUASRC) $(UZSRC) $(MODSRC) $(SJSONSRC)
vpath %.c .:..:../../libc:../../uzlib vpath %.c .:..:../../libc:../../uzlib:../../modules:../../sjson
ODIR := .output/$(TARGET)/$(FLAVOR)/obj ODIR := .output/$(TARGET)/$(FLAVOR)/obj

View File

@ -72,9 +72,22 @@ extern LROT_TABLE(utf8);
#if defined(LUA_CROSS_COMPILER) #if defined(LUA_CROSS_COMPILER)
/* _G __index -> rotables __index -> base_func */ /* _G __index -> rotables __index -> base_func */
extern LROT_TABLE(rotables_meta); #define LUAC_MODULE(map) \
extern LROT_TABLE(base_func); 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_BEGIN(rotables_meta, NULL, LROT_MASK_INDEX)
LROT_TABENTRY( __index, base_func) LROT_TABENTRY( __index, base_func)
LROT_END(rotables_meta, NULL, LROT_MASK_INDEX) LROT_END(rotables_meta, NULL, LROT_MASK_INDEX)
@ -82,12 +95,26 @@ LROT_END(rotables_meta, NULL, LROT_MASK_INDEX)
LROT_BEGIN(rotables, LROT_TABLEREF(rotables_meta), 0) LROT_BEGIN(rotables, LROT_TABLEREF(rotables_meta), 0)
LROT_TABENTRY( _G, base_func) LROT_TABENTRY( _G, base_func)
LROT_ROM_ENTRIES 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_END(rotables, LROT_TABLEREF(rotables_meta), 0)
LROT_BEGIN(lua_libs, NULL, 0) LROT_BEGIN(lua_libs, NULL, 0)
LROT_LIB_ENTRIES LROT_LIB_ENTRIES
LROT_FUNCENTRY( io, luaopen_io ) LROT_FUNCENTRY( io, luaopen_io )
LROT_FUNCENTRY( os, luaopen_os ) 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) LROT_END(lua_libs, NULL, 0)
#else /* LUA_USE_ESP */ #else /* LUA_USE_ESP */

View File

@ -1,12 +1,9 @@
#include "module.h" #include "module.h"
#include "lauxlib.h" #include "lauxlib.h"
#include "lmem.h" #include "lmem.h"
#include "platform.h"
#include <stdlib.h> #include <stdlib.h>
#include <math.h> #include <math.h>
#include <string.h> #include <string.h>
#include "user_interface.h"
#include "osapi.h"
#include "color_utils.h" #include "color_utils.h"

View File

@ -1,15 +1,7 @@
#ifndef APP_MODULES_COLOR_UTILS_H_ #ifndef APP_MODULES_COLOR_UTILS_H_
#define APP_MODULES_COLOR_UTILS_H_ #define APP_MODULES_COLOR_UTILS_H_
#include "module.h" #include "lnodemcu.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"
/** /**
* Convert hsv to grb * Convert hsv to grb

View File

@ -51,7 +51,6 @@
#include "module.h" #include "module.h"
#include "lauxlib.h" #include "lauxlib.h"
#include <string.h> #include <string.h>
#include "platform.h"
#define INVALID_LEN ((unsigned)-1) #define INVALID_LEN ((unsigned)-1)
@ -226,11 +225,11 @@ int pipe_create(lua_State *L) {
if (!lua_isnil(L, 1)) { if (!lua_isnil(L, 1)) {
luaL_checktype(L, 1, LUA_TFUNCTION); /* non-nil arg1 must be a function */ luaL_checktype(L, 1, LUA_TFUNCTION); /* non-nil arg1 must be a function */
if (lua_isnil(L, 2)) { if (lua_isnil(L, 2)) {
prio = PLATFORM_TASK_PRIORITY_MEDIUM; prio = LUA_TASK_MEDIUM;
} else { } else {
prio = (int) lua_tointeger(L, 2); prio = (int) lua_tointeger(L, 2);
luaL_argcheck(L, prio >= PLATFORM_TASK_PRIORITY_LOW && luaL_argcheck(L, prio >= LUA_TASK_LOW &&
prio <= PLATFORM_TASK_PRIORITY_HIGH, 2, prio <= LUA_TASK_HIGH, 2,
"invalid priority"); "invalid priority");
} }
} }

View File

@ -1,4 +1,4 @@
local gpio, bit = gpio, bit --luacheck: read globals gpio bit local gpio, bit = gpio, bit
return function(bus_args) return function(bus_args)
local rs = bus_args.rs or 0 local rs = bus_args.rs or 0

View File

@ -1,4 +1,4 @@
local gpio, bit = gpio, bit --luacheck: read globals gpio bit local gpio, bit = gpio, bit
return function(bus_args) return function(bus_args)
local rs = bus_args.rs or 0 local rs = bus_args.rs or 0

View File

@ -1,4 +1,4 @@
local i2c, bit = i2c, bit --luacheck: read globals i2c bit local i2c, bit = i2c, bit
return function(bus_args) return function(bus_args)
local busid = bus_args.id or 0 local busid = bus_args.id or 0

View File

@ -1,4 +1,4 @@
local bit = bit --luacheck: read globals bit local bit = bit
-- metatable -- metatable
local LiquidCrystal = {} local LiquidCrystal = {}
LiquidCrystal.__index = LiquidCrystal LiquidCrystal.__index = LiquidCrystal

View File

@ -104,7 +104,7 @@
<ConformanceMode>true</ConformanceMode> <ConformanceMode>true</ConformanceMode>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile> <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> <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> </ClCompile>
<Link> <Link>
<SubSystem>Console</SubSystem> <SubSystem>Console</SubSystem>
@ -123,7 +123,7 @@
<ConformanceMode>true</ConformanceMode> <ConformanceMode>true</ConformanceMode>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile> <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> <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> </ClCompile>
<Link> <Link>
<SubSystem>Console</SubSystem> <SubSystem>Console</SubSystem>
@ -144,7 +144,7 @@
<ConformanceMode>true</ConformanceMode> <ConformanceMode>true</ConformanceMode>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile> <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary> <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> </ClCompile>
<Link> <Link>
<SubSystem>Console</SubSystem> <SubSystem>Console</SubSystem>
@ -167,7 +167,7 @@
<ConformanceMode>true</ConformanceMode> <ConformanceMode>true</ConformanceMode>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile> <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary> <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> </ClCompile>
<Link> <Link>
<SubSystem>Console</SubSystem> <SubSystem>Console</SubSystem>
@ -212,6 +212,12 @@
<ClCompile Include="..\..\app\lua\lundump.c" /> <ClCompile Include="..\..\app\lua\lundump.c" />
<ClCompile Include="..\..\app\lua\lvm.c" /> <ClCompile Include="..\..\app\lua\lvm.c" />
<ClCompile Include="..\..\app\lua\lzio.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\crc32.c" />
<ClCompile Include="..\..\app\uzlib\uzlib_deflate.c" /> <ClCompile Include="..\..\app\uzlib\uzlib_deflate.c" />
</ItemGroup> </ItemGroup>
@ -246,6 +252,9 @@
<ClInclude Include="..\..\app\lua\lundump.h" /> <ClInclude Include="..\..\app\lua\lundump.h" />
<ClInclude Include="..\..\app\lua\lvm.h" /> <ClInclude Include="..\..\app\lua\lvm.h" />
<ClInclude Include="..\..\app\lua\lzio.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" /> <ClInclude Include="..\..\app\uzlib\uzlib.h" />
</ItemGroup> </ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />

View File

@ -1,10 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup> <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"> <Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier> <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;hm;inl;inc;ipp;xsd</Extensions> <Extensions>h;hh;hpp;hxx;hm;inl;inc;ipp;xsd</Extensions>
@ -28,6 +24,12 @@
<Filter Include="app\include"> <Filter Include="app\include">
<UniqueIdentifier>{439d70e8-0091-42d2-919f-7e710de3867c}</UniqueIdentifier> <UniqueIdentifier>{439d70e8-0091-42d2-919f-7e710de3867c}</UniqueIdentifier>
</Filter> </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>
<ItemGroup> <ItemGroup>
<ClCompile Include="..\..\app\uzlib\crc32.c"> <ClCompile Include="..\..\app\uzlib\crc32.c">
@ -132,6 +134,24 @@
<ClCompile Include="..\..\app\lua\lzio.c"> <ClCompile Include="..\..\app\lua\lzio.c">
<Filter>app\lua</Filter> <Filter>app\lua</Filter>
</ClCompile> </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"> <ClCompile Include="..\..\app\lua\lnodemcu.c">
<Filter>app\lua</Filter> <Filter>app\lua</Filter>
</ClCompile> </ClCompile>
@ -230,5 +250,14 @@
<ClInclude Include="..\..\app\include\user_modules.h"> <ClInclude Include="..\..\app\include\user_modules.h">
<Filter>app\include</Filter> <Filter>app\include</Filter>
</ClInclude> </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> </ItemGroup>
</Project> </Project>