-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathCMakeLists.txt
70 lines (54 loc) · 1.99 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
project(lua C)
cmake_minimum_required(VERSION 2.8.9)
if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX OR (CMAKE_CXX_COMPILER MATCHES ".*clang") OR (CMAKE_CXX_COMPILER_ID STREQUAL "Clang"))
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2 -Wall -Wextra")
endif()
if(WIN32)
add_definitions(-DLUA_BUILD_AS_DLL)
if(MSVC)
set(CMAKE_DEBUG_POSTFIX "d")
add_definitions(/MP)
endif()
else(UNIX)
add_definitions(-DLUA_USE_DLOPEN)
endif()
add_definitions(-DLUA_COMPAT_BITLIB)
add_definitions(-DLUA_COMPAT_APIINTCASTS)
add_definitions(-DLUA_COMPAT_5_2)
include_directories(src ${CMAKE_CURRENT_BINARY_DIR})
set(SRC_LIB src/lapi.c src/lcode.c src/lctype.c src/ldebug.c src/ldo.c src/ldump.c src/lfunc.c
src/lgc.c src/llex.c src/lmem.c src/lobject.c src/lopcodes.c src/lparser.c src/lstate.c
src/lstring.c src/ltable.c src/ltm.c src/lundump.c src/lvm.c src/lzio.c src/lauxlib.c
src/lbaselib.c src/ldblib.c src/liolib.c src/lmathlib.c src/loslib.c src/ltablib.c
src/lstrlib.c src/linit.c src/lcorolib.c src/lutf8lib.c src/lbitlib.c src/loadlib.c)
set(SRC_LUA src/lua.c)
set(SRC_LUAC src/luac.c)
add_library(liblua SHARED ${SRC_LIB})
set_target_properties(liblua PROPERTIES OUTPUT_NAME lua CLEAN_DIRECT_OUTPUT 1)
add_executable(lua ${SRC_LUA})
if(UNIX)
target_link_libraries(lua liblua m dl)
else()
target_link_libraries(lua liblua)
endif()
add_library(liblua_static STATIC ${SRC_LIB})
add_executable(luac ${SRC_LUAC})
if(UNIX)
target_link_libraries(luac liblua_static m dl)
else()
target_link_libraries(luac liblua_static)
endif()
set(INSTALL_BIN bin CACHE PATH "Where to install binaries to.")
set(INSTALL_LIB lib CACHE PATH "Where to install libraries to.")
if(NOT DEFINED INSTALL_INC)
set(INSTALL_INC include CACHE PATH "Where to install headers to.")
endif()
install(TARGETS lua luac RUNTIME DESTINATION ${INSTALL_BIN})
install(TARGETS liblua DESTINATION ${INSTALL_LIB})
install(FILES
src/lua.h
src/lualib.h
src/lauxlib.h
src/lua.hpp
src/luaconf.h
DESTINATION ${INSTALL_INC})