nodemcu-firmware/components/lua/CMakeLists.txt

118 lines
2.7 KiB
CMake

if(CONFIG_LUA_VERSION_51)
set(srcs
"lua-5.1/lapi.c"
"lua-5.1/lauxlib.c"
"lua-5.1/lbaselib.c"
"lua-5.1/lcode.c"
"lua-5.1/ldblib.c"
"lua-5.1/ldebug.c"
"lua-5.1/ldo.c"
"lua-5.1/ldump.c"
"lua-5.1/lflash.c"
"lua-5.1/lfunc.c"
"lua-5.1/lgc.c"
"lua-5.1/llex.c"
"lua-5.1/lmathlib.c"
"lua-5.1/lmem.c"
"lua-5.1/lnodemcu.c"
"lua-5.1/loadlib.c"
"lua-5.1/lobject.c"
"lua-5.1/lopcodes.c"
"lua-5.1/lparser.c"
"lua-5.1/lstate.c"
"lua-5.1/lstring.c"
"lua-5.1/lstrlib.c"
"lua-5.1/ltable.c"
"lua-5.1/ltablib.c"
"lua-5.1/ltm.c"
"lua-5.1/lua.c"
"lua-5.1/lundump.c"
"lua-5.1/lvm.c"
"lua-5.1/lzio.c"
)
set(luadir "lua-5.1")
elseif(CONFIG_LUA_VERSION_53)
set(srcs
"lua-5.3/lapi.c"
"lua-5.3/lauxlib.c"
"lua-5.3/lbaselib.c"
"lua-5.3/lbitlib.c"
"lua-5.3/lcode.c"
"lua-5.3/lcorolib.c"
"lua-5.3/lctype.c"
"lua-5.3/ldblib.c"
"lua-5.3/ldebug.c"
"lua-5.3/ldo.c"
"lua-5.3/ldump.c"
"lua-5.3/lfunc.c"
"lua-5.3/lgc.c"
"lua-5.3/llex.c"
"lua-5.3/lmathlib.c"
"lua-5.3/lmem.c"
"lua-5.3/lnodemcu.c"
"lua-5.3/loadlib.c"
"lua-5.3/lobject.c"
"lua-5.3/lopcodes.c"
"lua-5.3/lparser.c"
"lua-5.3/lstate.c"
"lua-5.3/lstring.c"
"lua-5.3/lstrlib.c"
"lua-5.3/ltable.c"
"lua-5.3/ltablib.c"
"lua-5.3/ltm.c"
"lua-5.3/lua.c"
"lua-5.3/lundump.c"
"lua-5.3/lutf8lib.c"
"lua-5.3/lvm.c"
"lua-5.3/lzio.c"
)
set(luadir "lua-5.3")
endif()
set(common_srcs
"common/lextra.c"
"common/lfs.c"
"common/linput.c"
"common/linit.c"
"common/lnodeaux.c"
"common/lpanic.c"
)
idf_component_register(
SRCS ${srcs} ${common_srcs}
INCLUDE_DIRS ${luadir} "common"
REQUIRES "platform" "nvs_flash" "uzlib" "driver_console"
PRIV_REQUIRES "base_nodemcu" "embedded_lfs"
LDFRAGMENTS "link_lua.lf"
)
#
# Cross compiler targets
#
# Not sure why we can't directly depend on ${SDKCONFIG_HEADER} in our
# externalproject_add(), but them's the brakes...
set(luac_build_dir "${BUILD_DIR}/luac_cross")
add_custom_command(
OUTPUT sdkconfig.h
COMMAND mkdir -p "${luac_build_dir}" && cp ${SDKCONFIG_HEADER} ${luac_build_dir}/sdkconfig.h
DEPENDS ${SDKCONFIG_HEADER}
VERBATIM
)
add_custom_target(sdkconfig_h DEPENDS sdkconfig.h)
externalproject_add(luac_cross_build
PREFIX ${luac_build_dir}
SOURCE_DIR ${COMPONENT_DIR}/${luadir}/host
CONFIGURE_COMMAND ""
BUILD_COMMAND make -f ${COMPONENT_DIR}/${luadir}/host/idf.mk LUAC_BUILD_DIR=${luac_build_dir} LUA_PATH=${COMPONENT_DIR}/${luadir} PYTHON=${PYTHON}
INSTALL_COMMAND ""
BUILD_ALWAYS 1
DEPENDS sdkconfig_h
)
set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES
"${BUILD_DIR}/luac_cross/luac.cross;${BUILD_DIR}/luac_cross/${luadir}" )