Skip to content

Commit 47be094

Browse files
committed
Building Lua (static) as external project
1 parent c7f1589 commit 47be094

File tree

3 files changed

+68
-0
lines changed

3 files changed

+68
-0
lines changed

CMakeLists.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
2+
PROJECT(ArrayFire-Lua-Wrapper)
3+
4+
SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules")
5+
6+
INCLUDE(${CMAKE_MODULE_PATH}/build_lua.cmake)

CMakeModules/build_lua.cmake

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
INCLUDE(ExternalProject)
2+
3+
SET(prefix ${CMAKE_BINARY_DIR}/third_party/lua)
4+
5+
SET(lua_location "${prefix}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}lua${CMAKE_STATIC_LIBRARY_SUFFIX}")
6+
IF(CMAKE_VERSION VERSION_LESS 3.2)
7+
IF(CMAKE_GENERATOR MATCHES "Ninja")
8+
MESSAGE(WARNING "Building forge with Ninja has known issues with CMake older than 3.2")
9+
endif()
10+
SET(byproducts)
11+
ELSE()
12+
SET(byproducts BYPRODUCTS ${lua_location})
13+
ENDIF()
14+
15+
# FIXME Tag forge correctly during release
16+
ExternalProject_Add(
17+
lua-ext
18+
GIT_REPOSITORY https://github.com/LuaDist/lua.git
19+
GIT_TAG 5.3.2
20+
PATCH_COMMAND patch -p1 -t -N < ${CMAKE_MODULE_PATH}/lua_MSVC.patch
21+
PREFIX "${prefix}"
22+
INSTALL_DIR "${prefix}"
23+
UPDATE_COMMAND ""
24+
CONFIGURE_COMMAND ${CMAKE_COMMAND} -Wno-dev "-G${CMAKE_GENERATOR}" <SOURCE_DIR>
25+
-DCMAKE_SOURCE_DIR:PATH=<SOURCE_DIR>
26+
-DCMAKE_CXX_COMPILER:FILEPATH=${CMAKE_CXX_COMPILER}
27+
-DCMAKE_C_COMPILER:FILEPATH=${CMAKE_C_COMPILER}
28+
-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
29+
-DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
30+
-DBUILD_SHARED_LIBS=OFF
31+
-DLUA_BUILD_AS_DLL=OFF
32+
${byproducts}
33+
)
34+
35+
ExternalProject_Get_Property(lua-ext install_dir)
36+
ADD_LIBRARY(lua IMPORTED STATIC)
37+
SET_TARGET_PROPERTIES(lua PROPERTIES IMPORTED_LOCATION ${lua_location})
38+
ADD_DEPENDENCIES(lua lua-ext)
39+
SET(LUA_INCLUDE_DIRECTORIES ${install_dir}/include)
40+
SET(LUA_LIBRARIES lua)
41+
SET(LUA_FOUND ON)

CMakeModules/lua_MSVC.patch

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
commit 4b61e31e44bac6b09bb70d3dbcd1b470b754bb71
2+
Author: Shehzan Mohammed <shehzan@arrayfire.com>
3+
Date: Wed Dec 23 15:01:27 2015 -0500
4+
5+
Lua MSVC snprintf patch
6+
7+
diff --git a/src/lprefix.h b/src/lprefix.h
8+
index 02daa83..b56f8f6 100644
9+
--- a/src/lprefix.h
10+
+++ b/src/lprefix.h
11+
@@ -39,6 +39,10 @@
12+
#define _CRT_SECURE_NO_WARNINGS /* avoid warnings about ISO C functions */
13+
#endif
14+
15+
+#if _MSC_VER < 1900
16+
+#define snprintf sprintf_s
17+
+#endif
18+
+
19+
#endif /* } */
20+
21+
#endif

0 commit comments

Comments
 (0)