110 lines
2.4 KiB
CMake
110 lines
2.4 KiB
CMake
project(lua CXX)
|
|
cmake_minimum_required(VERSION 2.8)
|
|
|
|
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -DLUA_USE_APICHECK")
|
|
|
|
# Make bit32 library available (for things like bit32.extract())
|
|
add_definitions(-DLUA_COMPAT_BITLIB)
|
|
|
|
if(WIN32)
|
|
add_definitions(-D_CRT_SECURE_NO_DEPRECATE /wd4334)
|
|
else()
|
|
add_definitions(-DLUA_USE_POSIX -DLUA_USE_DLOPEN)
|
|
set(LIBS m dl)
|
|
endif()
|
|
|
|
if(UNIX)
|
|
add_definitions(-DLINUX_BUILD)
|
|
if(DFHACK_BUILD_64)
|
|
set(CMAKE_C_FLAGS "-m64 -mno-avx")
|
|
else()
|
|
set(CMAKE_C_FLAGS "-m32")
|
|
endif()
|
|
endif()
|
|
|
|
set(HDR_LIBLUA
|
|
include/lapi.h
|
|
include/lauxlib.h
|
|
include/lcode.h
|
|
include/lctype.h
|
|
include/ldebug.h
|
|
include/ldo.h
|
|
include/lfunc.h
|
|
include/lgc.h
|
|
include/llex.h
|
|
include/llimits.h
|
|
include/lmem.h
|
|
include/lobject.h
|
|
include/lopcodes.h
|
|
include/lparser.h
|
|
include/lstate.h
|
|
include/lstring.h
|
|
include/ltable.h
|
|
include/ltm.h
|
|
include/lua.h
|
|
include/luaconf.h
|
|
include/lualib.h
|
|
include/lundump.h
|
|
include/lvm.h
|
|
include/lzio.h
|
|
)
|
|
set_source_files_properties(${HDR_LIBLUA} PROPERTIES HEADER_FILE_ONLY TRUE)
|
|
include_directories(include)
|
|
|
|
# Build Libraries
|
|
set(SRC_LIBLUA
|
|
src/lapi.c
|
|
src/lauxlib.c
|
|
src/lbaselib.c
|
|
src/lbitlib.c
|
|
src/lcode.c
|
|
src/lcorolib.c
|
|
src/lctype.c
|
|
src/ldblib.c
|
|
src/ldebug.c
|
|
src/ldo.c
|
|
src/ldump.c
|
|
src/lfunc.c
|
|
src/lgc.c
|
|
src/linit.c
|
|
src/liolib.c
|
|
src/llex.c
|
|
src/lmathlib.c
|
|
src/lmem.c
|
|
src/loadlib.c
|
|
src/lobject.c
|
|
src/lopcodes.c
|
|
src/loslib.c
|
|
src/lparser.c
|
|
src/lstate.c
|
|
src/lstring.c
|
|
src/lstrlib.c
|
|
src/ltable.c
|
|
src/ltablib.c
|
|
src/ltm.c
|
|
src/lundump.c
|
|
src/lutf8lib.c
|
|
src/lvm.c
|
|
src/lzio.c
|
|
)
|
|
# compile with C++ compiler
|
|
set_source_files_properties(${SRC_LIBLUA} PROPERTIES LANGUAGE CXX)
|
|
# append headers to sources to make them show up in MSVC GUI
|
|
list(APPEND SRC_LIBLUA ${HDR_LIBLUA})
|
|
|
|
add_library(lua SHARED ${SRC_LIBLUA})
|
|
target_link_libraries(lua ${LIBS})
|
|
|
|
if(MSVC)
|
|
# need no space to prevent /FI from being stripped: https://github.com/DFHack/dfhack/issues/1455
|
|
target_compile_options(lua PRIVATE "/FIdfhack_llimits.h")
|
|
else()
|
|
target_compile_options(lua PRIVATE -include dfhack_llimits.h)
|
|
endif()
|
|
|
|
install(TARGETS lua
|
|
LIBRARY DESTINATION ${DFHACK_LIBRARY_DESTINATION}
|
|
RUNTIME DESTINATION ${DFHACK_LIBRARY_DESTINATION})
|
|
|
|
ide_folder(lua "Depends")
|