]> git.lizzy.rs Git - dragonfireclient.git/blob - lib/lua/CMakeLists.txt
Compile Lua as C++ (#11683)
[dragonfireclient.git] / lib / lua / CMakeLists.txt
1 project(lua CXX)
2
3 set(LUA_VERSION_MAJOR 5)
4 set(LUA_VERSION_MINOR 1)
5 set(LUA_VERSION_PATCH 4)
6 set(LUA_VERSION "${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}.${LUA_VERSION_PATCH}")
7
8 set(COMMON_CFLAGS)
9 set(COMMON_LDFLAGS)
10 set(LIBS)
11
12 if(APPLE)
13         set(DEFAULT_POSIX TRUE)
14         set(DEFAULT_DLOPEN OFF)
15         set(COMMON_CFLAGS "${COMMON_CFLAGS} -DLUA_USE_MACOSX")
16 elseif(UNIX OR CYGWIN)
17         set(DEFAULT_POSIX TRUE)
18 elseif(WIN32)
19         set(LUA_WIN TRUE)
20         set(COMMON_CFLAGS "${COMMON_CFLAGS} -DLUA_BUILD_AS_DLL")
21 else()
22         set(DEFAULT_ANSI TRUE)
23 endif()
24
25 if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
26         set(COMMON_LDFLAGS "${COMMON_LDFLAGS} -Wl,-E -lm")
27         set(DEFAULT_DLOPEN ON)
28 endif()
29
30 option(LUA_USE_DLOPEN "Enable dlopen support." ${DEFAULT_DLOPEN})
31 mark_as_advanced(LUA_USE_DLOPEN)
32
33 option(LUA_ANSI "Disable non-ANSI features." ${DEFAULT_ANSI})
34 mark_as_advanced(LUA_ANSI)
35
36 if(LUA_USE_DLOPEN)
37         set(COMMON_CFLAGS "${COMMON_CFLAGS} -DLUA_USE_DLOPEN")
38         if(NOT APPLE)
39                 set(COMMON_LDFLAGS "${COMMON_LDFLAGS} -ldl ")
40         endif(NOT APPLE)
41 endif(LUA_USE_DLOPEN)
42
43 if(DEFAULT_POSIX)
44         set(COMMON_CFLAGS "${COMMON_CFLAGS} -DLUA_USE_POSIX")
45 endif(DEFAULT_POSIX)
46
47 if(LUA_ANSI)
48         set(COMMON_CFLAGS "${COMMON_CFLAGS} -DLUA_ANSI")
49 endif(LUA_ANSI)
50
51 # Standard flags to use
52 if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|(Apple)?Clang")
53         set(COMMON_CFLAGS "${COMMON_CFLAGS} -pipe -Wall -Wextra -Wshadow -W -pedantic")
54 endif()
55
56 # COMMON_CFLAGS has no effect without this line
57 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COMMON_CFLAGS}")
58
59 add_subdirectory(src)