Check if DCM feature is supported on the device
[platform/core/security/device-certificate-manager.git] / src / dcm-client / CMakeLists.txt
1 # Copyright (c) 2017 - 2021 Samsung Electronics Co., Ltd All Rights Reserved
2 #
3 #    Licensed under the Apache License, Version 2.0 (the "License");
4 #    you may not use this file except in compliance with the License.
5 #    You may obtain a copy of the License at
6 #
7 #        http://www.apache.org/licenses/LICENSE-2.0
8 #
9 #    Unless required by applicable law or agreed to in writing, software
10 #    distributed under the License is distributed on an "AS IS" BASIS,
11 #    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 #    See the License for the specific language governing permissions and
13 #    limitations under the License.
14 #
15 # @file        dcm-client/CMakeLists.txt
16 # @author      Dariusz Michaluk <d.michaluk@samsung.com>
17 # @author      Jaroslaw Pelczar <j.pelczar@samsung.com>
18
19 FIND_PACKAGE(Threads REQUIRED)
20 FIND_PACKAGE(Protobuf REQUIRED)
21
22 FIND_PACKAGE(Boost REQUIRED
23         COMPONENTS
24         system)
25
26 PKG_CHECK_MODULES(CLIENT_DEPS REQUIRED dlog capi-system-info)
27
28 INCLUDE_DIRECTORIES(SYSTEM ${CLIENT_DEPS_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS})
29 LINK_DIRECTORIES(${CLIENT_DEPS_LIBRARY_DIRS} ${Boost_LIBRARY_DIRS})
30 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR} ../include ../shared)
31
32 PROTOBUF_GENERATE_CPP(PROTO_SRCS PROTO_HDRS dcm_support.proto)
33
34 SET(TARGET_CLIENT "device-certificate-manager")
35 SET(TARGET_CLIENT_EXT "device-certificate-manager-ext")
36
37 SET(_LIB_VERSION_ "${PROJECT_VERSION}")
38 SET(_LIB_SOVERSION_ "0")
39
40 ADD_LIBRARY(${TARGET_CLIENT}
41         SHARED
42         dcm_client.cpp
43         device_certificate_manager.cpp
44         ../shared/protobuf_asio.cpp
45         ../shared/log.cpp
46         ../shared/bundle.cpp
47         ${PROTO_SRCS}
48         ${PROTO_HDRS})
49
50 ADD_LIBRARY(${TARGET_CLIENT_EXT}
51         SHARED
52         device_certificate_manager_ext.cpp
53         ../shared/protobuf_asio.cpp
54         ../shared/log.cpp
55         ${PROTO_SRCS}
56         ${PROTO_HDRS})
57
58 TARGET_LINK_LIBRARIES(${TARGET_CLIENT}
59         ${Boost_SYSTEM_LIBRARY}
60         ${PROTOBUF_LITE_LIBRARIES}
61         ${CLIENT_DEPS_LIBRARIES}
62         ${CMAKE_THREAD_LIBS_INIT})
63
64 TARGET_LINK_LIBRARIES(${TARGET_CLIENT_EXT}
65         ${Boost_SYSTEM_LIBRARY}
66         ${PROTOBUF_LITE_LIBRARIES}
67         ${CLIENT_DEPS_LIBRARIES}
68         ${CMAKE_THREAD_LIBS_INIT})
69
70 SET_PROPERTY(TARGET ${TARGET_CLIENT} APPEND PROPERTY LINK_FLAGS "-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/version_script.lds")
71 SET_PROPERTY(TARGET ${TARGET_CLIENT_EXT} APPEND PROPERTY LINK_FLAGS "-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/version_script_ext.lds")
72
73 SET_TARGET_PROPERTIES(${TARGET_CLIENT}
74         PROPERTIES
75         VERSION ${_LIB_VERSION_}
76         SOVERSION ${_LIB_SOVERSION_}
77         DEFINE_SYMBOL DEVICE_CERTIFICATE_MANAGER_EXPORT
78         VISIBILITY_INLINES_HIDDEN TRUE
79         C_VISIBILITY_PRESET hidden
80         CXX_VISIBILITY_PRESET hidden)
81
82 SET_TARGET_PROPERTIES(${TARGET_CLIENT_EXT}
83         PROPERTIES
84         VERSION ${_LIB_VERSION_}
85         SOVERSION ${_LIB_SOVERSION_}
86         DEFINE_SYMBOL DEVICE_CERTIFICATE_MANAGER_EXT_EXPORT
87         VISIBILITY_INLINES_HIDDEN TRUE
88         C_VISIBILITY_PRESET hidden
89         CXX_VISIBILITY_PRESET hidden)
90
91 INSTALL(TARGETS ${TARGET_CLIENT} ${TARGET_CLIENT_EXT}
92         LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
93
94 INSTALL(FILES
95         ${CMAKE_CURRENT_BINARY_DIR}/dcm_support.pb.h
96         DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/device-certificate-manager-backend)