POI: AGL LifeCycle Management
[apps/agl-service-windowmanager.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 #set(STM_DIR zipc)
24
25 # Select roles.db
26 if(zipc MATCHES ${STM_DIR})
27     # if trying to show split layout, change from OFF to ON
28     set(TRY_SPLIT_LAYOUT OFF CACHE BOOL "Enable to show split layout")
29
30     if(${TRY_SPLIT_LAYOUT})
31         set(ROLES_DB_NAME roles.db.zipc.split)
32     else()
33         set(ROLES_DB_NAME roles.db.zipc)
34     endif()
35 else()
36     set(ROLES_DB_NAME roles.db)
37 endif()
38
39 # Add STM directory
40 add_subdirectory(stm/${STM_DIR})
41
42 set(TARGETS_PM ${PLUGIN_PM})
43
44 add_library(${TARGETS_PM}
45     SHARED
46         policy_manager.cpp
47         stm/stm.c
48         ../src/util.cpp
49 )
50
51 target_include_directories(${TARGETS_PM}
52     PRIVATE
53         ${AFB_INCLUDE_DIRS}
54         ${SD_INCLUDE_DIRS}
55         ../include
56         ../src
57         ./
58         ./stm
59         ./stm/${STM_DIR}
60 )
61
62 target_link_libraries(${TARGETS_PM}
63     PRIVATE
64         ${AFB_LIBRARIES}
65         ${SD_LIBRARIES}
66         pmstm
67 )
68
69 target_compile_definitions(${TARGETS_PM}
70     PRIVATE
71         _GNU_SOURCE
72 )
73
74 target_compile_options(${TARGETS_PM}
75     PRIVATE
76         -Wall -Wextra -Wno-unused-parameter -Wno-comment)
77
78 set_target_properties(${TARGETS_PM}
79     PROPERTIES
80         CXX_EXTENSIONS OFF
81         CXX_STANDARD 14
82         CXX_STANDARD_REQUIRED ON
83
84         C_EXTENSIONS OFF
85         C_STANDARD 99
86         C_STANDARD_REQUIRED ON
87
88         LINK_FLAGS "-Wl,-rpath,'$ORIGIN'"
89 )
90
91 if (LINK_LIBCXX)
92     set_target_properties(${TARGETS_PM}
93         PROPERTIES
94             LINK_FLAGS "-lc++ -Wl,-rpath,'$ORIGIN'"
95     )
96 endif()
97
98 add_custom_command(TARGET ${TARGETS_PM} POST_BUILD
99    COMMAND mkdir -p ${PROJECT_BINARY_DIR}/package/root/lib
100    COMMAND cp -f ${PROJECT_BINARY_DIR}/${PLUGIN_PM}/lib${PLUGIN_PM}.so ${PROJECT_BINARY_DIR}/package/root/lib
101    COMMAND mkdir -p ${PROJECT_BINARY_DIR}/package/root/etc
102    COMMAND cp -f ${PROJECT_SOURCE_DIR}/${PLUGIN_PM}/db/states.db ${PROJECT_BINARY_DIR}/package/root/etc
103    COMMAND cp -f ${PROJECT_SOURCE_DIR}/${PLUGIN_PM}/db/${ROLES_DB_NAME} ${PROJECT_BINARY_DIR}/package/root/etc/roles.db
104 )