File: CMakeLists.txt.systemd

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 (112 lines) | stat: -rw-r--r-- 3,946 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
# 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(systemd VERSION 0.0.0 LANGUAGES C)

set(CPACK_PACKAGE_NAME luasandbox-${PROJECT_NAME})
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Lua systemd 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        "daurnimator")
set(CPACK_PACKAGE_CONTACT       "daurnimator <quae@daurnimator.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)")
set(CPACK_RPM_PACKAGE_LICENSE    "MIT License")

if(MSVC)
    set(CMAKE_C_FLAGS           "/W3")
    set(CMAKE_C_FLAGS_RELEASE   "/MD /O2 /Ob2")
else()
    set(CMAKE_C_FLAGS           "-D_GNU_SOURCE -fPIC -Wall")
    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_library(SYSTEMD_LIBRARY systemd REQUIRED)

include(CPack)
include_directories(${LUA_INCLUDE_DIR} vendor/compat-5.3/c-api)

file(WRITE systemd_daemon_core.def "EXPORTS\nluaopen_systemd_daemon_core\n")
set(SRC_SYSTEMD_DAEMON_CORE
src/daemon.c
systemd_daemon_core.def
)

add_library(systemd_daemon_core SHARED ${SRC_SYSTEMD_DAEMON_CORE})
set_target_properties(systemd_daemon_core PROPERTIES OUTPUT_NAME core LIBRARY_OUTPUT_DIRECTORY systemd/daemon)
target_link_libraries(systemd_daemon_core ${LUA_LIBRARIES} ${SYSTEMD_LIBRARY})

file(WRITE systemd_id128_core.def "EXPORTS\nluaopen_systemd_id128_core\n")
set(SRC_SYSTEMD_ID128_CORE
src/id128.c
src/messages.c
systemd_id128_core.def
)

add_library(systemd_id128_core SHARED ${SRC_SYSTEMD_ID128_CORE})
set_target_properties(systemd_id128_core PROPERTIES OUTPUT_NAME core LIBRARY_OUTPUT_DIRECTORY systemd/id128)
target_link_libraries(systemd_id128_core ${LUA_LIBRARIES} ${SYSTEMD_LIBRARY})

file(WRITE systemd_journal_core.def "EXPORTS\nluaopen_systemd_journal_core\n")
set(SRC_SYSTEMD_JOURNAL_CORE
src/id128.c
src/messages.c
src/journal.c
systemd_journal_core.def
)

add_library(systemd_journal_core SHARED ${SRC_SYSTEMD_JOURNAL_CORE})
set_target_properties(systemd_journal_core PROPERTIES OUTPUT_NAME core LIBRARY_OUTPUT_DIRECTORY systemd/journal)
target_link_libraries(systemd_journal_core ${LUA_LIBRARIES} ${SYSTEMD_LIBRARY})



set(SRC_SYSTEMD
src/daemon.c
src/id128.c
src/messages.c
src/journal.c
src/login.c
vendor/compat-5.3/c-api/compat-5.3.c
systemd.def
)


set(EMPTY_DIR ${CMAKE_BINARY_DIR}/empty)
file(MAKE_DIRECTORY ${EMPTY_DIR})
set(DPERMISSION DIRECTORY_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
install(DIRECTORY ${EMPTY_DIR}/ DESTINATION ${INSTALL_IOMODULE_PATH} ${DPERMISSION})
install(DIRECTORY ${EMPTY_DIR}/ DESTINATION ${INSTALL_IOMODULE_PATH}/systemd ${DPERMISSION})
install(TARGETS systemd_daemon_core DESTINATION ${INSTALL_IOMODULE_PATH}/systemd/daemon)
install(TARGETS systemd_id128_core DESTINATION ${INSTALL_IOMODULE_PATH}/systemd/id128)
install(TARGETS systemd_journal_core DESTINATION ${INSTALL_IOMODULE_PATH}/systemd/journal)

set(SYSTEMD_MODULES
src/init.lua
src/daemon.lua
src/id128.lua
src/journal.lua
src/login.lua
src/messages.lua
)

install(FILES ${SYSTEMD_MODULES} DESTINATION ${INSTALL_IOMODULE_PATH}/systemd)