Refactor build system and add internal test
[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_FORITY_SOURCE")
11 SET(CMAKE_CXX_FLAGS_PROFILING "-g -O0 -pg -Wp,-U_FORITY_SOURCE ${EXTRA_CXXFLAGS}")
12 SET(CMAKE_C_FLAGS_DEBUG       "-g -O0 -ggdb -Wp,-U_FORITY_SOURCE")
13 SET(CMAKE_CXX_FLAGS_DEBUG     "-g -O0 -ggdb -Wp,-U_FORITY_SOURCE ${EXTRA_CXXFLAGS}")
14 SET(CMAKE_C_FLAGS_RELEASE     "-g -O2")
15 SET(CMAKE_CXX_FLAGS_RELEASE   "-g -O2 ${EXTRA_CXXFLAGS}")
16
17 SET(TARGET_CRYPTSVC ${PROJECT_NAME})
18 SET(TARGET_DEVICE_INFO "device_info")
19 SET(TARGET_GADGET "duid-gadget")
20
21 IF("${ARCH}" MATCHES "arm")
22     ADD_DEFINITIONS("-DCRYPTOSVC_TARGET")
23 ENDIF("${ARCH}" MATCHES "arm")
24
25 ########################################################################################
26 # for libcryptsvc.so
27 SET(CRYPTSVC_REQUIRES "libcrypto dlog")
28 SET(DEVICE_INFO_REQUIRES "dlog capi-system-info")
29 PKG_CHECK_MODULES(CS_DEP REQUIRED ${CRYPTSVC_REQUIRES})
30
31 SET(CS_SRCS srcs/SecCryptoSvc.c)
32
33 INCLUDE_DIRECTORIES(
34     ${CS_DEP_INCLUDE_DIRS}
35     ${PROJECT_SOURCE_DIR}/include
36 )
37
38 ADD_LIBRARY(${TARGET_CRYPTSVC} SHARED ${CS_SRCS})
39
40 SET_TARGET_PROPERTIES(
41     ${TARGET_CRYPTSVC}
42     PROPERTIES
43         COMPILE_FLAGS "-fPIC -fvisibility=hidden"
44         SOVERSION ${SO_VERSION}
45         VERSION ${VERSION}
46 )
47
48 TARGET_LINK_LIBRARIES(${TARGET_CRYPTSVC} ${CS_DEP_LIBRARIES})
49
50 INSTALL(TARGETS ${TARGET_CRYPTSVC} DESTINATION ${LIB_INSTALL_DIR})
51
52 #########################################################################################
53 # for libdevice_info.so
54 PKG_CHECK_MODULES(DEVICE_INFO_DEP REQUIRED ${DEVICE_INFO_REQUIRES})
55
56 SET(DEVICE_INFO_SRCS srcs/device_info.c)
57
58 INCLUDE_DIRECTORIES(
59     ${DEVICE_INFO_DEP_INCLUDE_DIRS}
60     ${CMAKE_CURRENT_SOURCE_DIR}/include
61 )
62
63 ADD_LIBRARY(${TARGET_DEVICE_INFO} SHARED ${DEVICE_INFO_SRCS})
64
65 SET_TARGET_PROPERTIES(
66     ${TARGET_DEVICE_INFO}
67     PROPERTIES
68         COMPILE_FLAGS "-fPIC -fvisibility=hidden"
69         SOVERSION ${SO_VERSION}
70         VERSION ${VERSION}
71 )
72
73 TARGET_LINK_LIBRARIES(${TARGET_DEVICE_INFO}
74     ${TARGET_CRYPTSVC}
75     ${DEVICE_INFO_DEP_LIBRARIES}
76     -lpthread
77 )
78
79 INSTALL(TARGETS ${TARGET_DEVICE_INFO} DESTINATION ${LIB_INSTALL_DIR})
80
81 #########################################################################################
82
83 SET(PC_REQUIRED ${CRYPTSVC_REQUIRES})
84 CONFIGURE_FILE(${TARGET_CRYPTSVC}.pc.in ${TARGET_CRYPTSVC}.pc @ONLY)
85
86 INSTALL(FILES ${TARGET_CRYPTSVC}.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
87 INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/ DESTINATION ${INCLUDE_INSTALL_DIR})
88
89 ADD_SUBDIRECTORY(gadget)
90 ADD_SUBDIRECTORY(test)