Skip to content

Commit 4779dc6

Browse files
committed
Add building and installation configurations
1 parent 47be094 commit 4779dc6

File tree

3 files changed

+78
-33
lines changed

3 files changed

+78
-33
lines changed

CMakeLists.txt

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,21 @@
11
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
2-
PROJECT(ArrayFire-Lua-Wrapper)
2+
PROJECT(ArrayFire-Lua)
3+
4+
SET_PROPERTY(GLOBAL PROPERTY USE_FOLDERS ON)
5+
6+
OPTION(USE_LOCAL_LUA "Build Lua as external project" OFF)
37

48
SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules")
59

6-
INCLUDE(${CMAKE_MODULE_PATH}/build_lua.cmake)
10+
ADD_SUBDIRECTORY(wrapper/Lua)
11+
12+
########################################
13+
# Installation
14+
########################################
15+
INSTALL(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/examples/"
16+
DESTINATION "examples"
17+
COMPONENT examples)
18+
19+
INSTALL(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/wrapper/arrayfire/"
20+
DESTINATION "arrayfire"
21+
COMPONENT scripts)

CMakeModules/build_lua.cmake

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ ExternalProject_Add(
2525
-DCMAKE_SOURCE_DIR:PATH=<SOURCE_DIR>
2626
-DCMAKE_CXX_COMPILER:FILEPATH=${CMAKE_CXX_COMPILER}
2727
-DCMAKE_C_COMPILER:FILEPATH=${CMAKE_C_COMPILER}
28+
-DCMAKE_CXX_FLAGS:STRING=${CMAKE_CXX_FLAGS}
29+
-DCMAKE_C_FLAGS:STRING=${CMAKE_C_FLAGS}
2830
-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
2931
-DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
3032
-DBUILD_SHARED_LIBS=OFF
@@ -36,6 +38,22 @@ ExternalProject_Get_Property(lua-ext install_dir)
3638
ADD_LIBRARY(lua IMPORTED STATIC)
3739
SET_TARGET_PROPERTIES(lua PROPERTIES IMPORTED_LOCATION ${lua_location})
3840
ADD_DEPENDENCIES(lua lua-ext)
39-
SET(LUA_INCLUDE_DIRECTORIES ${install_dir}/include)
41+
SET(LUA_INCLUDE_DIR ${install_dir}/include)
4042
SET(LUA_LIBRARIES lua)
4143
SET(LUA_FOUND ON)
44+
45+
########################################
46+
# Installation
47+
########################################
48+
INSTALL(DIRECTORY "${prefix}/bin"
49+
DESTINATION "lua/"
50+
USE_SOURCE_PERMISSIONS
51+
COMPONENT lua_bin)
52+
INSTALL(DIRECTORY "${prefix}/lib"
53+
DESTINATION "lua/"
54+
USE_SOURCE_PERMISSIONS
55+
COMPONENT lua_lib)
56+
INSTALL(DIRECTORY "${prefix}/include"
57+
DESTINATION "lua/"
58+
USE_SOURCE_PERMISSIONS
59+
COMPONENT lua_include)

wrapper/Lua/CMakeLists.txt

Lines changed: 42 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,55 @@
1-
cmake_minimum_required(VERSION 2.8)
2-
SET(AF_LUA_VERSION_MAJOR 0)
3-
SET(AF_LUA_VERSION 0)
1+
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
2+
PROJECT(ArrayFire_Lib)
43

5-
SET_PROPERTY(GLOBAL PROPERTY USE_FOLDERS ON)
64
FIND_PACKAGE(ArrayFire REQUIRED)
7-
FIND_PACKAGE(Lua REQUIRED)
5+
6+
# OS Definitions
7+
IF(UNIX)
8+
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -pthread -Wno-comment")
9+
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC -pthread -Wno-comment")
10+
ADD_DEFINITIONS(-Wall -std=c++11 -fvisibility=hidden)
11+
ELSE() #Windows
12+
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
13+
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /bigobj")
14+
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /bigobj")
15+
ENDIF()
16+
17+
FIND_PACKAGE(Lua QUIET)
18+
IF(USE_LOCAL_LUA OR NOT LUA_FOUND)
19+
SET(USE_LOCAL_LUA ON)
20+
INCLUDE(${CMAKE_MODULE_PATH}/build_lua.cmake)
21+
ELSE()
22+
ADD_DEFINITIONS(-DLUA_COMPAT_MODULE)
23+
ENDIF()
824

925
FILE(GLOB src
10-
"*.hpp"
11-
"*.h"
12-
"*.cpp"
13-
)
26+
"*.hpp"
27+
"*.h"
28+
"*.cpp"
29+
)
1430

1531
FILE(GLOB funcs_src
16-
"funcs/*.cpp"
17-
)
32+
"funcs/*.cpp"
33+
)
1834

1935
SOURCE_GROUP(funcs FILES ${funcs_src})
2036

2137
FILE(GLOB graphics_src
22-
"graphics/*.cpp"
23-
)
38+
"graphics/*.cpp"
39+
)
2440

2541
SOURCE_GROUP(graphics FILES ${graphics_src})
2642

2743
FILE(GLOB methods_src
28-
"methods/*.cpp"
29-
)
44+
"methods/*.cpp"
45+
)
3046

3147
SOURCE_GROUP(methods FILES ${methods_src})
3248

3349
FILE(GLOB template_src
34-
"template/*.cpp")
50+
"template/*.cpp")
3551

3652
SOURCE_GROUP(template FILES ${template_src})
37-
ADD_DEFINITIONS(-DLUA_COMPAT_MODULE)
38-
39-
# OS Definitions
40-
IF(UNIX)
41-
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -pthread -Wno-comment")
42-
ADD_DEFINITIONS(-Wall -std=c++11 -fvisibility=hidden)
43-
ELSE(${UNIX}) #Windows
44-
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
45-
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /bigobj")
46-
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /bigobj")
47-
ENDIF()
4853

4954
INCLUDE_DIRECTORIES(${ArrayFire_INCLUDE_DIRS})
5055
INCLUDE_DIRECTORIES(${LUA_INCLUDE_DIR})
@@ -56,9 +61,16 @@ ADD_LIBRARY(arrayfire_lib SHARED
5661
${methods_src})
5762

5863
TARGET_LINK_LIBRARIES(arrayfire_lib
59-
${ArrayFire_Unified_LIBRARIES}
60-
${LUA_LIBRARIES}
61-
)
64+
${ArrayFire_Unified_LIBRARIES}
65+
${LUA_LIBRARIES}
66+
)
6267

6368
SET_TARGET_PROPERTIES(arrayfire_lib PROPERTIES
6469
PREFIX "")
70+
71+
########################################
72+
# Installation
73+
########################################
74+
INSTALL(TARGETS arrayfire_lib EXPORT ARRAYFIRE_LIB
75+
DESTINATION "./"
76+
COMPONENT libraries)

0 commit comments

Comments
 (0)