#file(GLOB LUA_SRC lua-5.4.8/src/*.c)

set(LUA_OBJ
# core
	lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o
	lfunc.o lgc.o llex.o lmem.o lobject.o lopcodes.o
	lparser.o lstate.o lstring.o ltable.o ltm.o
	lundump.o lvm.o lzio.o
	lauxlib.o lbaselib.o lcorolib.o ldblib.o liolib.o
	lmathlib.o loadlib.o loslib.o lstrlib.o ltablib.o
	lutf8lib.o linit.o
#lib
	lauxlib.o lbaselib.o lcorolib.o ldblib.o liolib.o
	lmathlib.o loadlib.o loslib.o lstrlib.o ltablib.o
	lutf8lib.o linit.o)
set(LUA_SRC)
set(LPEG_OBJ
lpvm.o lpcap.o lptree.o lpcode.o lpprint.o lpcset.o
)
set(LPEG_SRC)
foreach(LUA_FILE ${LUA_OBJ})
	string(REPLACE ".o" ".c" LUA_SRC_ITEM ${LUA_FILE})
	list(APPEND LUA_SRC lua-5.4.8/src/${LUA_SRC_ITEM})
endforeach()
foreach(LPEG_FILE ${LPEG_OBJ})
	string(REPLACE ".o" ".c" LPEG_SRC_ITEM ${LPEG_FILE})
	list(APPEND LPEG_SRC lpeg-1.1.0/${LPEG_SRC_ITEM})
endforeach()
add_library(lua ${LUA_SRC} ${LPEG_SRC})
target_include_directories(lua PUBLIC lua-5.4.8/src lpeg-1.1.0)
add_executable(luavm lua-5.4.8/src/lua.c)
target_link_libraries(luavm lua m)
target_include_directories(luavm PRIVATE lua-5.4.8/src)
add_executable(luac lua-5.4.8/src/luac.c ${LUA_SRC} ${LPEG_SRC})
target_link_libraries(luac m)
target_include_directories(luac PRIVATE lua-5.4.8/src lpeg-1.1.0)
add_executable(lualpegvm lua.c)
target_link_libraries(lualpegvm lua m)
target_include_directories(lualpegvm PRIVATE lua-5.4.8/src)


