File: CMakeLists.txt

package info (click to toggle)
lua-sandbox-extensions 0~git20161128-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 2,596 kB
  • ctags: 1,458
  • sloc: ansic: 4,402; cpp: 2,102; makefile: 8
file content (126 lines) | stat: -rw-r--r-- 4,268 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

cmake_minimum_required(VERSION 3.5 FATAL_ERROR)
project(luasandbox-extensions LANGUAGES NONE)
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")

include(GNUInstallDirs)
if(WIN32)
  set(CMAKE_INSTALL_LIBDIR ${CMAKE_INSTALL_BINDIR})
endif()
set(CMAKE_INSTALL_PREFIX "")
set(CMAKE_SHARED_LIBRARY_PREFIX "")
set(PACKAGE_PREFIX luasandbox)

if(LUA51) # build against installed lua 5.1
    find_package(Lua51)
    set(INSTALL_MODULE_PATH ${CMAKE_INSTALL_LIBDIR}/lua)
    set(INSTALL_IOMODULE_PATH ${CMAKE_INSTALL_LIBDIR}/lua)
    set(INSTALL_SANDBOX_PATH ${CMAKE_INSTALL_DATAROOTDIR}/lua)
    set(PACKAGE_PREFIX lua)
    if(WIN32)
        string(REPLACE "\\" "\\\\" TEST_MODULE_PATH "${CMAKE_BINARY_DIR}\\install\\${CMAKE_INSTALL_LIBDIR}\\${PACKAGE_PREFIX}\\?.lua")
        string(REGEX REPLACE "\\.lua$" ".dll" TEST_MODULE_CPATH ${TEST_MODULE_PATH})
    else()
        set(TEST_MODULE_PATH "${CMAKE_BINARY_DIR}/install/${CMAKE_INSTALL_LIBDIR}/${PACKAGE_PREFIX}/?.lua")
        string(REGEX REPLACE "\\.lua$" ".so" TEST_MODULE_CPATH ${TEST_MODULE_PATH})
    endif()
else() # lua_sandbox build
    find_package(luasandbox 1.2.1 REQUIRED CONFIG)
    set(LUA_LIBRARIES ${LUASANDBOX_LIBRARIES})
    set(LUA_INCLUDE_DIR ${LUASANDBOX_INCLUDE_DIR}/luasandbox)
    set(INSTALL_MODULE_PATH ${CMAKE_INSTALL_LIBDIR}/luasandbox/modules)
    set(INSTALL_IOMODULE_PATH ${CMAKE_INSTALL_LIBDIR}/luasandbox/io_modules)
    set(INSTALL_SANDBOX_PATH ${CMAKE_INSTALL_DATAROOTDIR}/luasandbox/sandboxes)
    add_definitions(-DLUA_SANDBOX)
    if(WIN32)
        string(REPLACE "\\" "\\\\" TEST_MODULE_PATH "${CMAKE_BINARY_DIR}\\install\\${CMAKE_INSTALL_LIBDIR}\\${PACKAGE_PREFIX}\\modules\\?.lua")
        string(REGEX REPLACE "\\.lua$" ".dll" TEST_MODULE_CPATH ${TEST_MODULE_PATH})
        string(REGEX REPLACE "\\modules\\\\?" "\\io_modules\\?" TEST_IOMODULE_PATH ${TEST_MODULE_PATH})
        string(REGEX REPLACE "\\.lua$" ".dll" TEST_IOMODULE_CPATH ${TEST_IOMODULE_PATH})
    else()
        set(TEST_MODULE_PATH "${CMAKE_BINARY_DIR}/install/${CMAKE_INSTALL_LIBDIR}/${PACKAGE_PREFIX}/modules/?.lua")
        string(REGEX REPLACE "\\.lua$" ".so" TEST_MODULE_CPATH ${TEST_MODULE_PATH})
        string(REGEX REPLACE "/modules/\\?" "/io_modules/?" TEST_IOMODULE_PATH ${TEST_MODULE_PATH})
        string(REGEX REPLACE "\\.lua$" ".so" TEST_IOMODULE_CPATH ${TEST_IOMODULE_PATH})
    endif()
    configure_file(${CMAKE_SOURCE_DIR}/cmake/test_module.in.h ${CMAKE_BINARY_DIR}/test_module.h)
endif()

include(CTest)
configure_file(${CMAKE_SOURCE_DIR}/cmake/CTestCustom.in.cmake ${CMAKE_BINARY_DIR}/CTestCustom.cmake)

include(ExternalProject)
set(EP_CMAKE_ARGS
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/install
-DINSTALL_MODULE_PATH=${INSTALL_MODULE_PATH}
-DINSTALL_IOMODULE_PATH=${INSTALL_IOMODULE_PATH}
-DINSTALL_SANDBOX_PATH=${INSTALL_SANDBOX_PATH}
-DLUA51=${LUA51}
--no-warn-unused-cli)

set(extensions 
bloom_filter
circular_buffer
cjson
compat
cuckoo_filter
elasticsearch
geoip
heka
hyperloglog
kafka
lfs
lpeg
lsb
moz_telemetry
openssl
parquet
postgres
rjson
sax
snappy
socket
ssl
struct
syslog
systemd
zlib
)

foreach(ext IN LISTS extensions)
  if(ENABLE_ALL_EXT)
    option(EXT_${ext} "include extension ${ext}" ON)
  else()
    option(EXT_${ext} "include extension ${ext}" OFF)
  endif()
endforeach()

if(NOT CPACK_GENERATOR)
  if(WIN32)
     set(CPACK_GENERATER ZIP)
  else()
     set(CPACK_GENERATOR TGZ)
  endif()
endif()

set(PACKAGE_COMMANDS "")
foreach(ext IN LISTS extensions)
  if (EXT_${ext})
      add_subdirectory(${ext})
      set(PACKAGE_COMMANDS ${PACKAGE_COMMANDS} COMMAND cpack -G ${CPACK_GENERATOR} --config ${ext}.cpack)
      message("${ext}\tENABLED")
  else()
      message("${ext}\tDISABLED")
  endif()
endforeach()

if(PACKAGE_COMMANDS STREQUAL "")
   message(FATAL_ERROR "No extensions were specificed use -DENABLE_ALL_EXT=true or specify any of the following -DEXT_[${extensions}]=on ...")
endif()

add_custom_target(packages ${PACKAGE_COMMANDS})
add_custom_target(docs lua gen_gh_pages.lua WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})