Skip to content

Instantly share code, notes, and snippets.

@CynicalApe
Created September 7, 2019 10:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save CynicalApe/e98fc0bfeef1696981778986aa383399 to your computer and use it in GitHub Desktop.
Save CynicalApe/e98fc0bfeef1696981778986aa383399 to your computer and use it in GitHub Desktop.
CMAKE for LUA
cmake_minimum_required(VERSION 3.2)
project(lua C)
if (WIN32)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /O2 /DLUA_COMPAT_5_2")
else()
set(CMAKE_C_FLAGS "-O2 -Wall -Wextra -DLUA_COMPAT_5_2")
endif()
set(LUA_CORE_SOURCE_FILES
lapi.c
lcode.c
lctype.c
ldebug.c
ldo.c
ldump.c
lfunc.c
lgc.c
llex.c
lmem.c
lobject.c
lopcodes.c
lparser.c
lstate.c
lstring.c
ltable.c
ltm.c
lundump.c
lvm.c
lzio.c)
set(LUA_LIB_SOURCE_FILES
lauxlib.c
lbaselib.c
lbitlib.c
lcorolib.c
ldblib.c
liolib.c
lmathlib.c
loslib.c
lstrlib.c
ltablib.c
lutf8lib.c
loadlib.c
linit.c)
SET(LUA_SOURCE lua.c)
SET(LUA_COMPILER_SOURCE luac.c)
add_library(liblua ${LUA_CORE_SOURCE_FILES} ${LUA_LIB_SOURCE_FILES})
set_target_properties(liblua PROPERTIES OUTPUT_NAME lua)
add_library(libluadll SHARED ${LUA_CORE_SOURCE_FILES} ${LUA_LIB_SOURCE_FILES})
if (WIN32)
target_compile_definitions(libluadll PRIVATE _CRT_SECURE_NO_WARNINGS LUA_BUILD_AS_DLL)
else()
target_compile_definitions(libluadll PRIVATE LUA_BUILD_AS_DLL)
endif()
set_target_properties( libluadll PROPERTIES OUTPUT_NAME lua53 )
add_executable(lua ${LUA_SOURCE} )
target_link_libraries(lua libluadll)
add_executable(luac ${LUA_COMPILER_SOURCE})
target_link_libraries(luac liblua)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment