minetest/src/lua/src/CMakeLists.txt

104 lines
2.2 KiB
CMake

# Lua core source files.
set(LUA_CORE_SRC
lapi.c
lauxlib.c
lbaselib.c
lcode.c
ldblib.c
ldebug.c
ldo.c
ldump.c
lfunc.c
lgc.c
linit.c
liolib.c
llex.c
lmathlib.c
lmem.c
loadlib.c
lobject.c
lopcodes.c
loslib.c
lparser.c
lstate.c
lstring.c
lstrlib.c
ltable.c
ltablib.c
ltm.c
lundump.c
lvm.c
lzio.c
)
set(LUA_LIB_HEADERS
lua.h
lualib.h
lauxlib.h
luaconf.h
)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_BINARY_DIR})
#
# Lua library.
#
if(BUILD_STATIC)
add_library(lua STATIC ${LUA_CORE_SRC})
add_target_properties(lua COMPILE_FLAGS "${COMMON_CFLAGS}")
add_target_properties(lua LINK_FLAGS "${LD_FLAGS} ${COMMON_LDFLAGS}")
target_link_libraries(lua ${LIBS})
set(LUA_STATIC_LIB lua)
set(LUA_LIBS lua)
else(BUILD_STATIC)
add_library(lua_static STATIC ${LUA_CORE_SRC})
add_target_properties(lua_static COMPILE_FLAGS "${COMMON_CFLAGS}")
add_target_properties(lua_static LINK_FLAGS "${LD_FLAGS} ${COMMON_LDFLAGS}")
target_link_libraries(lua_static ${LIBS})
set(LUA_STATIC_LIB lua_static)
add_library(lua SHARED ${LUA_CORE_SRC})
add_target_properties(lua COMPILE_FLAGS "${COMMON_CFLAGS}")
add_target_properties(lua LINK_FLAGS "${LD_FLAGS} ${COMMON_LDFLAGS}")
target_link_libraries(lua ${LIBS})
set(LUA_LIBS lua_static lua)
endif(BUILD_STATIC)
set_target_properties(${LUA_LIBS} PROPERTIES
VERSION ${LUA_VERSION}
SOVERSION ${LUA_SOVERSION}
CLEAN_DIRECT_OUTPUT 1
)
#
# Lua compiler
#
add_executable(luac luac.c print.c)
add_target_properties(luac COMPILE_FLAGS "${COMMON_CFLAGS}")
add_target_properties(luac LINK_FLAGS "${LD_FLAGS} ${COMMON_LDFLAGS}")
target_link_libraries(luac ${LUA_STATIC_LIB} ${LIBS})
#
# Lua stand-alone interpreter
#
add_executable(lua.bin lua.c)
add_target_properties(lua.bin COMPILE_FLAGS "${COMMON_CFLAGS}")
add_target_properties(lua.bin LINK_FLAGS "${LD_FLAGS} ${COMMON_LDFLAGS}")
target_link_libraries(lua.bin lua ${LIBS})
# rename lub.bin to lua
set_target_properties(lua.bin PROPERTIES OUTPUT_NAME lua)
#
# install lua/luac & library.
#
install(TARGETS luac lua.bin ${LUA_LIBS}
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib)
install(FILES
${LUA_LIB_HEADERS}
DESTINATION include)