Readd Policy Manager as plugin
[apps/agl-service-windowmanager-2017.git] / policy_manager / CMakeLists.txt
1 #
2 # Copyright (c) 2017 TOYOTA MOTOR CORPORATION
3 #
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at
7 #
8 #      http://www.apache.org/licenses/LICENSE-2.0
9 #
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
15 #
16
17 include(FindPkgConfig)
18 pkg_check_modules(AFB REQUIRED afb-daemon)
19 pkg_check_modules(SD REQUIRED libsystemd>=222)
20
21 # Set name of STM
22 set(STM_DIR stub)
23
24 # Add STM directory
25 add_subdirectory(stm/${STM_DIR})
26
27 set(TARGETS_PM ${PLUGIN_PM})
28
29 add_library(${TARGETS_PM}
30     SHARED
31         policy_manager.cpp
32         stm/stm.c
33 )
34
35 target_include_directories(${TARGETS_PM}
36     PRIVATE
37         ${AFB_INCLUDE_DIRS}
38         ${SD_INCLUDE_DIRS}
39         ../include
40         ../src
41         ./
42         ./stm
43         ./stm/${STM_DIR}
44 )
45
46 target_link_libraries(${TARGETS_PM}
47     PRIVATE
48         ${AFB_LIBRARIES}
49         ${SD_LIBRARIES}
50         pmstm
51 )
52
53 target_compile_definitions(${TARGETS_PM}
54     PRIVATE
55         _GNU_SOURCE
56 )
57
58 target_compile_options(${TARGETS_PM}
59     PRIVATE
60         -Wall -Wextra -Wno-unused-parameter -Wno-comment)
61
62 set_target_properties(${TARGETS_PM}
63     PROPERTIES
64         CXX_EXTENSIONS OFF
65         CXX_STANDARD 14
66         CXX_STANDARD_REQUIRED ON
67
68         C_EXTENSIONS OFF
69         C_STANDARD 99
70         C_STANDARD_REQUIRED ON
71
72         LINK_FLAGS "-Wl,-rpath,'$ORIGIN'"
73 )
74
75 if (LINK_LIBCXX)
76     set_target_properties(${TARGETS_PM}
77         PROPERTIES
78             LINK_FLAGS "-lc++ -Wl,-rpath,'$ORIGIN'"
79     )
80 endif()
81
82 add_custom_command(TARGET ${TARGETS_PM} POST_BUILD
83    COMMAND mkdir -p ${PROJECT_BINARY_DIR}/package/root/lib
84    COMMAND cp -f ${PROJECT_BINARY_DIR}/${PLUGIN_PM}/lib${PLUGIN_PM}.so ${PROJECT_BINARY_DIR}/package/root/lib
85    COMMAND mkdir -p ${PROJECT_BINARY_DIR}/package/root/etc
86    COMMAND cp -f ${PROJECT_SOURCE_DIR}/${PLUGIN_PM}/db/states.db ${PROJECT_BINARY_DIR}/package/root/etc
87    COMMAND cp -f ${PROJECT_SOURCE_DIR}/${PLUGIN_PM}/db/roles.db ${PROJECT_BINARY_DIR}/package/root/etc
88 )