summaryrefslogtreecommitdiff
path: root/src/common/CMakeLists.txt
blob: 0f8f431c409fc9421cb95390e5160ae3f9baebcd (plain)
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
SET(COMMON_VERSION_MAJOR 1)
SET(COMMON_VERSION ${COMMON_VERSION_MAJOR}.0.2)

PKG_CHECK_MODULES(COMMON_DEP
    REQUIRED
    libsystemd
    libsmack
    db-util
    cynara-admin
    cynara-client-async
    libtzplatform-config
    security-privilege-manager
    mount
    )

IF(DPL_WITH_DLOG)
    PKG_CHECK_MODULES(DLOG_DEP REQUIRED dlog)
ENDIF(DPL_WITH_DLOG)

FIND_PACKAGE(Boost REQUIRED)

INCLUDE_DIRECTORIES(SYSTEM
    ${COMMON_DEP_INCLUDE_DIRS}
    ${DLOG_DEP_INCLUDE_DIRS}
    )

INCLUDE_DIRECTORIES(
    ${INCLUDE_PATH}
    ${COMMON_PATH}/include
    ${LM_COMMON_PATH}
    ${DPL_PATH}/core/include
    ${DPL_PATH}/log/include
    ${DPL_PATH}/db/include
    ${Boost_INCLUDE_DIRS}
    )

SET(COMMON_SOURCES
    ${DPL_PATH}/log/src/abstract_log_provider.cpp
    ${DPL_PATH}/log/src/log.cpp
    ${DPL_PATH}/log/src/old_style_log_provider.cpp
    ${DPL_PATH}/core/src/assert.cpp
    ${DPL_PATH}/core/src/binary_queue.cpp
    ${DPL_PATH}/core/src/colors.cpp
    ${DPL_PATH}/core/src/exception.cpp
    ${DPL_PATH}/core/src/noncopyable.cpp
    ${DPL_PATH}/core/src/serialization.cpp
    ${DPL_PATH}/core/src/singleton.cpp
    ${DPL_PATH}/core/src/errno_string.cpp
    ${DPL_PATH}/db/src/naive_synchronization_object.cpp
    ${DPL_PATH}/db/src/sql_connection.cpp
    ${COMMON_PATH}/channel.cpp
    ${COMMON_PATH}/config.cpp
    ${COMMON_PATH}/config-file.cpp
    ${COMMON_PATH}/connection.cpp
    ${COMMON_PATH}/credentials.cpp
    ${COMMON_PATH}/cynara.cpp
    ${COMMON_PATH}/filesystem.cpp
    ${COMMON_PATH}/file-lock.cpp
    ${COMMON_PATH}/permissible-set.cpp
    ${COMMON_PATH}/protocols.cpp
    ${COMMON_PATH}/message-buffer.cpp
    ${COMMON_PATH}/nsmount-logic.cpp
    ${COMMON_PATH}/privilege_db.cpp
    ${COMMON_PATH}/smack-labels.cpp
    ${COMMON_PATH}/smack-rules.cpp
    ${COMMON_PATH}/smack-check.cpp
    ${COMMON_PATH}/service_impl.cpp
    ${COMMON_PATH}/tzplatform-config.cpp
    ${COMMON_PATH}/worker.cpp
    ${COMMON_PATH}/privilege-info.cpp
    ${COMMON_PATH}/privilege-gids.cpp
    ${COMMON_PATH}/group2gid.cpp
    ${COMMON_PATH}/mount-namespace.cpp
    ${COMMON_PATH}/mount-monitor.cpp
    ${COMMON_PATH}/service-file-locker.cpp
    )

IF(DPL_WITH_DLOG)
    SET(COMMON_SOURCES
        ${COMMON_SOURCES}
        ${DPL_PATH}/log/src/dlog_log_provider.cpp)
ENDIF(DPL_WITH_DLOG)

IF(DPL_WITH_SYSTEMD_JOURNAL)
    SET(COMMON_SOURCES
        ${COMMON_SOURCES}
        ${DPL_PATH}/log/src/sd_journal_provider.cpp)
ENDIF(DPL_WITH_SYSTEMD_JOURNAL)

LINK_DIRECTORIES(${COMMON_DEP_LIBRARY_DIRS} ${DLOG_DEP_LIBRARY_DIRS})

ADD_LIBRARY(${TARGET_COMMON} SHARED ${COMMON_SOURCES})

SET_TARGET_PROPERTIES(${TARGET_COMMON}
    PROPERTIES
        COMPILE_FLAGS "-D_GNU_SOURCE -fvisibility=default"
        SOVERSION ${COMMON_VERSION_MAJOR}
        VERSION ${COMMON_VERSION}
    )

TARGET_LINK_LIBRARIES(${TARGET_COMMON}
    ${COMMON_DEP_LIBRARIES}
    ${DLOG_DEP_LIBRARIES}
    -lcrypt
    rt
    )

INSTALL(TARGETS ${TARGET_COMMON} DESTINATION ${LIB_INSTALL_DIR})
INSTALL(DIRECTORY DESTINATION ${LOCAL_STATE_DIR}/security-manager/rules)
INSTALL(DIRECTORY DESTINATION ${LOCAL_STATE_DIR}/security-manager/rules-merged)
INSTALL(DIRECTORY DESTINATION ${DATA_ROOT_DIR}/${PROJECT_NAME}/dummy)