7edfd0a00133a0d8b34b8ced55e768a3bb77d30f
[project/uci.git] / lua / CMakeLists.txt
1 cmake_minimum_required(VERSION 2.6)
2
3 PROJECT(uci C)
4
5 SET(CMAKE_INSTALL_PREFIX /)
6
7 FIND_PROGRAM(PKG_CONFIG pkg-config)
8 IF(PKG_CONFIG)
9         EXECUTE_PROCESS(
10                 COMMAND pkg-config --silence-errors --cflags lua5.1
11                 OUTPUT_VARIABLE LUA_CFLAGS
12                 OUTPUT_STRIP_TRAILING_WHITESPACE
13         )
14 ENDIF()
15
16 ADD_DEFINITIONS(-Os -Wall -Werror --std=gnu99 -g3 -I.. ${LUA_CFLAGS})
17 LINK_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/..)
18
19 IF(APPLE)
20         SET(CMAKE_SHARED_MODULE_CREATE_C_FLAGS "${CMAKE_SHARED_MODULE_CREATE_C_FLAGS} -undefined dynamic_lookup")
21 ENDIF(APPLE)
22
23 IF(NOT LUAPATH)
24         EXECUTE_PROCESS(
25                 COMMAND  lua -e "for k in string.gmatch(package.cpath .. \";\", \"([^;]+)/..so;\") do if k:sub(1,1) == \"/\" then print(k) break end end"
26                 OUTPUT_VARIABLE LUAPATH
27                 RESULT_VARIABLE LUA_CHECK_RES
28                 OUTPUT_STRIP_TRAILING_WHITESPACE
29         )
30
31         IF(BUILD_LUA)
32                 IF(NOT ${LUA_CHECK_RES} EQUAL 0 OR ${LUAPATH} EQUAL "")
33                         MESSAGE(SEND_ERROR "Lua was not found on your system")
34                 ENDIF()
35         ENDIF()
36 ENDIF()
37
38 IF(BUILD_LUA)
39         ADD_LIBRARY(uci_lua MODULE uci.c)
40         SET_TARGET_PROPERTIES(uci_lua PROPERTIES
41                 OUTPUT_NAME uci
42                 PREFIX ""
43         )
44         TARGET_LINK_LIBRARIES(uci_lua uci dl)
45
46         INSTALL(TARGETS uci_lua
47                 LIBRARY DESTINATION ${LUAPATH}
48         )
49 ENDIF()
50