File: CMakeLists.txt.postgres

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 (62 lines) | stat: -rw-r--r-- 2,432 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
# 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.0 FATAL_ERROR)
project(postgres VERSION 2.3.0 LANGUAGES C)

set(CPACK_PACKAGE_NAME luasandbox-${PROJECT_NAME})
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Lua Postgres Module")
set(CPACK_PACKAGE_VERSION_MAJOR ${PROJECT_VERSION_MAJOR})
set(CPACK_PACKAGE_VERSION_MINOR ${PROJECT_VERSION_MINOR})
set(CPACK_PACKAGE_VERSION_PATCH ${PROJECT_VERSION_PATCH})
set(CPACK_PACKAGE_VENDOR        "Mozilla Services")
set(CPACK_PACKAGE_CONTACT       "Mike Trinkala <trink@mozilla.com>")
set(CPACK_OUTPUT_CONFIG_FILE    "${CMAKE_BINARY_DIR}/${PROJECT_NAME}.cpack")
set(CPACK_STRIP_FILES           TRUE)

set(CPACK_DEBIAN_PACKAGE_DEPENDS "luasandbox (>= 1.0), libpq5")
set(CPACK_RPM_PACKAGE_LICENSE    "MIT License")

if(MSVC)
    set(CMAKE_C_FLAGS           "/W3 /WX")
    set(CMAKE_C_FLAGS_RELEASE   "/MD /O2 /Ob2")
else()
    set(CMAKE_C_FLAGS           "-std=c99 -pedantic -Werror -Wall -Wextra -fPIC")
    set(CMAKE_C_FLAGS_RELEASE   "-O2")
	set(CMAKE_SHARED_LIBRARY_SUFFIX ".so")
endif()
set(CMAKE_SHARED_LIBRARY_PREFIX "")

if(LUA51) # build against installed lua 5.1
	set(CPACK_PACKAGE_NAME lua-${PROJECT_NAME})
    find_package(Lua51)
    find_program(LUA NAMES lua lua.bat)
    add_test(NAME test COMMAND ${LUA} test.lua)
else() # lua_sandbox build
	find_package(luasandbox 1.0.2 REQUIRED CONFIG)
	set(LUA_LIBRARIES ${LUASANDBOX_LIBRARIES})
	set(LUA_INCLUDE_DIR ${LUASANDBOX_INCLUDE_DIR}/luasandbox)
endif()

find_package(PostgreSQL REQUIRED)

file(WRITE postgres.def "EXPORTS\nluaopen_postgres")

set(POSTGRES_SRC
src/ls_postgres.c
src/luasql.c
postgres.def
)

include(CPack)
include_directories(${LUA_INCLUDE_DIR} ${PostgreSQL_INCLUDE_DIRS})
add_library(postgres SHARED ${POSTGRES_SRC})
target_link_libraries(postgres ${LUA_LIBRARIES} ${PostgreSQL_LIBRARIES})

set(DPERMISSION DIRECTORY_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
set(EMPTY_DIR ${CMAKE_BINARY_DIR}/empty)
file(MAKE_DIRECTORY ${EMPTY_DIR})
install(DIRECTORY ${EMPTY_DIR}/ DESTINATION ${INSTALL_IOMODULE_PATH} ${DPERMISSION})
install(DIRECTORY ${EMPTY_DIR}/ DESTINATION ${INSTALL_IOMODULE_PATH}/luasql ${DPERMISSION})
install(TARGETS postgres DESTINATION ${INSTALL_IOMODULE_PATH}/luasql)