Mercurial > hg > orthanc
comparison OrthancFramework/Resources/CMake/LuaConfiguration.cmake @ 4044:d25f4c0fa160 framework
splitting code into OrthancFramework and OrthancServer
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 10 Jun 2020 20:30:34 +0200 |
parents | Resources/CMake/LuaConfiguration.cmake@a3e38994d95a |
children | 304842a0d152 |
comparison
equal
deleted
inserted
replaced
4043:6c6239aec462 | 4044:d25f4c0fa160 |
---|---|
1 if (STATIC_BUILD OR NOT USE_SYSTEM_LUA) | |
2 SET(LUA_SOURCES_DIR ${CMAKE_BINARY_DIR}/lua-5.3.5) | |
3 SET(LUA_MD5 "4f4b4f323fd3514a68e0ab3da8ce3455") | |
4 SET(LUA_URL "http://orthanc.osimis.io/ThirdPartyDownloads/lua-5.3.5.tar.gz") | |
5 | |
6 DownloadPackage(${LUA_MD5} ${LUA_URL} "${LUA_SOURCES_DIR}") | |
7 | |
8 if (ENABLE_LUA_MODULES) | |
9 if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux" OR | |
10 ${CMAKE_SYSTEM_NAME} STREQUAL "kFreeBSD" OR | |
11 ${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD" OR | |
12 ${CMAKE_SYSTEM_NAME} STREQUAL "OpenBSD") | |
13 # Enable loading of shared libraries (for UNIX-like) | |
14 add_definitions(-DLUA_USE_DLOPEN=1) | |
15 | |
16 # Publish the functions of the Lua engine (that are built within | |
17 # the Orthanc binary) as global symbols, so that the external | |
18 # shared libraries can call them | |
19 set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--export-dynamic") | |
20 | |
21 if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux" OR | |
22 ${CMAKE_SYSTEM_NAME} STREQUAL "kFreeBSD") | |
23 add_definitions(-DLUA_USE_LINUX=1) | |
24 elseif (${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD") | |
25 add_definitions( | |
26 -DLUA_USE_LINUX=1 | |
27 -DLUA_USE_READLINE=1 | |
28 ) | |
29 elseif (${CMAKE_SYSTEM_NAME} STREQUAL "OpenBSD") | |
30 add_definitions(-DLUA_USE_POSIX=1) | |
31 endif() | |
32 | |
33 elseif(${CMAKE_SYSTEM_NAME} STREQUAL "Windows") | |
34 add_definitions( | |
35 -DLUA_DL_DLL=1 # Enable loading of shared libraries (for Microsoft Windows) | |
36 ) | |
37 | |
38 elseif (${CMAKE_SYSTEM_NAME} STREQUAL "Darwin") | |
39 add_definitions( | |
40 -DLUA_USE_MACOSX=1 | |
41 -DLUA_DL_DYLD=1 # Enable loading of shared libraries (for Apple OS X) | |
42 ) | |
43 | |
44 else() | |
45 message(FATAL_ERROR "Support your platform here") | |
46 endif() | |
47 endif() | |
48 | |
49 add_definitions( | |
50 -DLUA_COMPAT_5_2=1 | |
51 ) | |
52 | |
53 include_directories( | |
54 ${LUA_SOURCES_DIR}/src | |
55 ) | |
56 | |
57 set(LUA_SOURCES | |
58 # Don't compile the Lua command-line | |
59 #${LUA_SOURCES_DIR}/src/lua.c | |
60 #${LUA_SOURCES_DIR}/src/luac.c | |
61 | |
62 # Core Lua | |
63 ${LUA_SOURCES_DIR}/src/lapi.c | |
64 ${LUA_SOURCES_DIR}/src/lcode.c | |
65 ${LUA_SOURCES_DIR}/src/lctype.c | |
66 ${LUA_SOURCES_DIR}/src/ldebug.c | |
67 ${LUA_SOURCES_DIR}/src/ldo.c | |
68 ${LUA_SOURCES_DIR}/src/ldump.c | |
69 ${LUA_SOURCES_DIR}/src/lfunc.c | |
70 ${LUA_SOURCES_DIR}/src/lgc.c | |
71 ${LUA_SOURCES_DIR}/src/llex.c | |
72 ${LUA_SOURCES_DIR}/src/lmem.c | |
73 ${LUA_SOURCES_DIR}/src/lobject.c | |
74 ${LUA_SOURCES_DIR}/src/lopcodes.c | |
75 ${LUA_SOURCES_DIR}/src/lparser.c | |
76 ${LUA_SOURCES_DIR}/src/lstate.c | |
77 ${LUA_SOURCES_DIR}/src/lstring.c | |
78 ${LUA_SOURCES_DIR}/src/ltable.c | |
79 ${LUA_SOURCES_DIR}/src/ltm.c | |
80 ${LUA_SOURCES_DIR}/src/lundump.c | |
81 ${LUA_SOURCES_DIR}/src/lvm.c | |
82 ${LUA_SOURCES_DIR}/src/lzio.c | |
83 | |
84 # Base Lua modules | |
85 ${LUA_SOURCES_DIR}/src/lauxlib.c | |
86 ${LUA_SOURCES_DIR}/src/lbaselib.c | |
87 ${LUA_SOURCES_DIR}/src/lbitlib.c | |
88 ${LUA_SOURCES_DIR}/src/lcorolib.c | |
89 ${LUA_SOURCES_DIR}/src/ldblib.c | |
90 ${LUA_SOURCES_DIR}/src/liolib.c | |
91 ${LUA_SOURCES_DIR}/src/lmathlib.c | |
92 ${LUA_SOURCES_DIR}/src/loadlib.c | |
93 ${LUA_SOURCES_DIR}/src/loslib.c | |
94 ${LUA_SOURCES_DIR}/src/lstrlib.c | |
95 ${LUA_SOURCES_DIR}/src/ltablib.c | |
96 ${LUA_SOURCES_DIR}/src/lutf8lib.c | |
97 | |
98 ${LUA_SOURCES_DIR}/src/linit.c | |
99 ) | |
100 | |
101 source_group(ThirdParty\\Lua REGULAR_EXPRESSION ${LUA_SOURCES_DIR}/.*) | |
102 | |
103 elseif (CMAKE_CROSSCOMPILING AND | |
104 "${CMAKE_SYSTEM_VERSION}" STREQUAL "CrossToolNg") | |
105 | |
106 set(LUA_VERSIONS 5.3 5.2 5.1) | |
107 | |
108 unset(LUA_VERSION) | |
109 foreach(version IN ITEMS ${LUA_VERSIONS}) | |
110 CHECK_INCLUDE_FILE(lua${version}/lua.h HAVE_LUA${version}_H) | |
111 if (HAVE_LUA${version}_H) | |
112 set(LUA_VERSION ${version}) | |
113 break() | |
114 endif() | |
115 endforeach() | |
116 | |
117 if (NOT LUA_VERSION) | |
118 message(FATAL_ERROR "Please install the liblua-dev package") | |
119 endif() | |
120 | |
121 CHECK_LIBRARY_EXISTS(lua${LUA_VERSION} "lua_call" "${LUA_LIB_DIR}" HAVE_LUA_LIB) | |
122 if (NOT HAVE_LUA_LIB) | |
123 message(FATAL_ERROR "Please install the liblua package") | |
124 endif() | |
125 | |
126 include_directories(${CROSSTOOL_NG_IMAGE}/usr/include/lua${LUA_VERSION}) | |
127 link_libraries(lua${LUA_VERSION}) | |
128 | |
129 else() | |
130 include(FindLua) | |
131 | |
132 if (NOT LUA_FOUND) | |
133 message(FATAL_ERROR "Please install the liblua-dev package") | |
134 endif() | |
135 | |
136 include_directories(${LUA_INCLUDE_DIR}) | |
137 link_libraries(${LUA_LIBRARIES}) | |
138 endif() |