Migrate to openssl3
[platform/core/security/libcryptsvc.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 PROJECT(cryptsvc)
3
4 INCLUDE(FindPkgConfig)
5
6 STRING(REGEX MATCH "([^.]*)" SO_VERSION "${VERSION}")
7
8 SET(EXTRA_CXXFLAGS "${EXTRA_CXXFLAGS} -std=c++0x")
9
10 SET(CMAKE_C_FLAGS_PROFILING   "-g -O0 -pg -Wp,-U_FORTIFY_SOURCE")
11 SET(CMAKE_CXX_FLAGS_PROFILING "-g -O0 -pg -Wp,-U_FORTIFY_SOURCE ${EXTRA_CXXFLAGS}")
12 SET(CMAKE_C_FLAGS_DEBUG       "-g -O0 -ggdb -Wp,-U_FORTIFY_SOURCE")
13 SET(CMAKE_CXX_FLAGS_DEBUG     "-g -O0 -ggdb -Wp,-U_FORTIFY_SOURCE ${EXTRA_CXXFLAGS}")
14 SET(CMAKE_C_FLAGS_RELEASE     "-g -O2")
15 SET(CMAKE_CXX_FLAGS_RELEASE   "-g -O2 ${EXTRA_CXXFLAGS}")
16
17 # Set compiler warning flags
18 ADD_DEFINITIONS("-Werror")                      # Make all warnings into errors.
19 ADD_DEFINITIONS("-Wall")                        # Generate all warnings
20 ADD_DEFINITIONS("-Wextra")                      # Generate even more extra warnings
21
22 SET(TARGET_CRYPTSVC ${PROJECT_NAME})
23 SET(TARGET_DEVICE_INFO "device_info")
24 SET(TARGET_GADGET "duid-gadget")
25
26 IF("${ARCH}" MATCHES "arm")
27     ADD_DEFINITIONS("-DCRYPTOSVC_TARGET")
28 ENDIF("${ARCH}" MATCHES "arm")
29
30 ########################################################################################
31 # for libcryptsvc.so
32 SET(CRYPTSVC_REQUIRES "openssl3 dlog")
33 SET(DEVICE_INFO_REQUIRES "dlog capi-system-info")
34 PKG_CHECK_MODULES(CS_DEP REQUIRED ${CRYPTSVC_REQUIRES})
35
36 SET(CS_SRCS srcs/SecCryptoSvc.c)
37
38 INCLUDE_DIRECTORIES(
39     ${CS_DEP_INCLUDE_DIRS}
40     ${PROJECT_SOURCE_DIR}/include
41 )
42
43 ADD_LIBRARY(${TARGET_CRYPTSVC} SHARED ${CS_SRCS})
44
45 SET_TARGET_PROPERTIES(
46     ${TARGET_CRYPTSVC}
47     PROPERTIES
48         COMPILE_FLAGS "-fPIC -fvisibility=hidden"
49         SOVERSION ${SO_VERSION}
50         VERSION ${VERSION}
51 )
52
53 TARGET_LINK_LIBRARIES(${TARGET_CRYPTSVC} ${CS_DEP_LIBRARIES})
54
55 INSTALL(TARGETS ${TARGET_CRYPTSVC} DESTINATION ${LIB_INSTALL_DIR})
56
57 #########################################################################################
58 # for libdevice_info.so
59 PKG_CHECK_MODULES(DEVICE_INFO_DEP REQUIRED ${DEVICE_INFO_REQUIRES})
60
61 SET(DEVICE_INFO_SRCS srcs/device_info.c)
62
63 INCLUDE_DIRECTORIES(
64     ${DEVICE_INFO_DEP_INCLUDE_DIRS}
65     ${CMAKE_CURRENT_SOURCE_DIR}/include
66 )
67
68 ADD_LIBRARY(${TARGET_DEVICE_INFO} SHARED ${DEVICE_INFO_SRCS})
69
70 SET_TARGET_PROPERTIES(
71     ${TARGET_DEVICE_INFO}
72     PROPERTIES
73         COMPILE_FLAGS "-fPIC -fvisibility=hidden"
74         SOVERSION ${SO_VERSION}
75         VERSION ${VERSION}
76 )
77
78 TARGET_LINK_LIBRARIES(${TARGET_DEVICE_INFO}
79     ${TARGET_CRYPTSVC}
80     ${DEVICE_INFO_DEP_LIBRARIES}
81     -lpthread
82 )
83
84 INSTALL(TARGETS ${TARGET_DEVICE_INFO} DESTINATION ${LIB_INSTALL_DIR})
85
86 #########################################################################################
87
88 CONFIGURE_FILE(${TARGET_CRYPTSVC}.pc.in ${TARGET_CRYPTSVC}.pc @ONLY)
89
90 INSTALL(FILES ${TARGET_CRYPTSVC}.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
91 INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/ DESTINATION ${INCLUDE_INSTALL_DIR})
92
93 ADD_SUBDIRECTORY(gadget)
94 ADD_SUBDIRECTORY(test)