mirror of
https://github.com/nesbox/TIC-80.git
synced 2026-05-02 05:04:58 +00:00
113 lines
3.1 KiB
CMake
113 lines
3.1 KiB
CMake
################################
|
|
# LUA
|
|
################################
|
|
|
|
option(BUILD_WITH_LUA "Lua Enabled" ON)
|
|
message("BUILD_WITH_LUA: ${BUILD_WITH_LUA}")
|
|
|
|
if(BUILD_WITH_LUA AND PREFER_SYSTEM_LIBRARIES)
|
|
find_path(lua_INCLUDE_DIR NAMES lua.h)
|
|
find_library(lua_LIBRARY NAMES lua)
|
|
if(lua_INCLUDE_DIR AND lua_LIBRARY)
|
|
add_library(luaapi STATIC
|
|
${CMAKE_SOURCE_DIR}/src/api/luaapi.c
|
|
${CMAKE_SOURCE_DIR}/src/api/parse_note.c
|
|
)
|
|
target_link_libraries(luaapi PRIVATE runtime ${lua_LIBRARY})
|
|
target_include_directories(luaapi PUBLIC
|
|
${lua_INCLUDE_DIR}
|
|
${CMAKE_SOURCE_DIR}/include
|
|
${CMAKE_SOURCE_DIR}/src
|
|
)
|
|
add_library(lua STATIC ${CMAKE_SOURCE_DIR}/src/api/lua.c)
|
|
target_compile_definitions(lua INTERFACE TIC_BUILD_WITH_LUA)
|
|
target_link_libraries(lua PRIVATE runtime luaapi)
|
|
message(STATUS "Use system library: lua")
|
|
return()
|
|
else()
|
|
message(WARNING "System library lua not found")
|
|
endif()
|
|
endif()
|
|
|
|
if(BUILD_WITH_LUA OR BUILD_WITH_MOON OR BUILD_WITH_YUE OR BUILD_WITH_FENNEL)
|
|
set(LUA_DIR ${THIRDPARTY_DIR}/lua)
|
|
set(LUA_SRC
|
|
${LUA_DIR}/lapi.c
|
|
${LUA_DIR}/lcode.c
|
|
${LUA_DIR}/lctype.c
|
|
${LUA_DIR}/ldebug.c
|
|
${LUA_DIR}/ldo.c
|
|
${LUA_DIR}/ldump.c
|
|
${LUA_DIR}/lfunc.c
|
|
${LUA_DIR}/lgc.c
|
|
${LUA_DIR}/llex.c
|
|
${LUA_DIR}/lmem.c
|
|
${LUA_DIR}/lobject.c
|
|
${LUA_DIR}/lopcodes.c
|
|
${LUA_DIR}/lparser.c
|
|
${LUA_DIR}/lstate.c
|
|
${LUA_DIR}/lstring.c
|
|
${LUA_DIR}/ltable.c
|
|
${LUA_DIR}/ltm.c
|
|
${LUA_DIR}/lundump.c
|
|
${LUA_DIR}/lvm.c
|
|
${LUA_DIR}/lzio.c
|
|
${LUA_DIR}/lauxlib.c
|
|
${LUA_DIR}/lbaselib.c
|
|
${LUA_DIR}/lcorolib.c
|
|
${LUA_DIR}/ldblib.c
|
|
${LUA_DIR}/liolib.c
|
|
${LUA_DIR}/lmathlib.c
|
|
${LUA_DIR}/loslib.c
|
|
${LUA_DIR}/lstrlib.c
|
|
${LUA_DIR}/ltablib.c
|
|
${LUA_DIR}/lutf8lib.c
|
|
${LUA_DIR}/loadlib.c
|
|
${LUA_DIR}/linit.c
|
|
${LUA_DIR}/lbitlib.c
|
|
)
|
|
|
|
add_library(luaapi STATIC
|
|
${LUA_SRC}
|
|
${CMAKE_SOURCE_DIR}/src/api/luaapi.c
|
|
${CMAKE_SOURCE_DIR}/src/api/parse_note.c
|
|
)
|
|
target_link_libraries(luaapi PRIVATE runtime)
|
|
|
|
target_compile_definitions(luaapi PRIVATE LUA_COMPAT_5_2)
|
|
|
|
target_include_directories(luaapi
|
|
PUBLIC ${THIRDPARTY_DIR}/lua
|
|
${CMAKE_SOURCE_DIR}/include
|
|
${CMAKE_SOURCE_DIR}/src
|
|
)
|
|
|
|
target_link_libraries(luaapi PUBLIC runtime)
|
|
|
|
endif()
|
|
|
|
if(BUILD_WITH_LUA)
|
|
|
|
add_library(lua ${TIC_RUNTIME} ${CMAKE_SOURCE_DIR}/src/api/lua.c)
|
|
|
|
if(NOT BUILD_STATIC)
|
|
set_target_properties(lua PROPERTIES PREFIX "")
|
|
else()
|
|
target_compile_definitions(lua INTERFACE TIC_BUILD_WITH_LUA)
|
|
endif()
|
|
|
|
target_link_libraries(lua PRIVATE luaapi)
|
|
|
|
target_include_directories(lua
|
|
PUBLIC ${THIRDPARTY_DIR}/lua
|
|
PRIVATE
|
|
${CMAKE_SOURCE_DIR}/include
|
|
${CMAKE_SOURCE_DIR}/src
|
|
)
|
|
|
|
if(NINTENDO_3DS)
|
|
target_compile_definitions(luaapi PUBLIC LUA_32BITS)
|
|
endif()
|
|
|
|
endif()
|