7c7e8ffe6bc4115eb5e597cf6e99f97fe3a42db1
[platform/core/security/libcryptsvc.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 PROJECT(cryptsvc C)
3
4 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
5 SET(EXEC_PREFIX "\${prefix}")
6 SET(LIBDIR "\${prefix}/lib")
7 SET(INCLUDEDIR "\${prefix}/include")
8
9 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include)
10
11 SET(pc_requires " openssl dlog libcrypto ")
12
13 INCLUDE(FindPkgConfig)
14 pkg_check_modules(pkgs REQUIRED ${pc_requires})
15
16 FOREACH(flag ${pkgs_CFLAGS})
17         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
18 ENDFOREACH(flag)
19
20 SET(source_dir "./srcs")
21 SET(include_dir "./include")
22 SET(test_dir "./test")
23
24 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden")
25 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
26 SET(EXTRA_CXXFLAGS "${EXTRA_CXXFLAGS} ${EXTRA_CFLAGS}")
27
28 #ADD_DEFINITIONS("-DCTR_SUPPORT")       # for using CTR mode
29 #ADD_DEFINITIONS("-DCRYPT_SVC_LOG")     # for debug
30 #ADD_DEFINITIONS("-DCRYPTOSVC_TARGET")  # to get DUK from Target
31
32 ##################################################################################################################
33 # for libcryptsvc.so
34 SET(SRCS
35         #${source_dir}/CryptoSvc-debug.c
36         ${source_dir}/SecCryptoSvc.c
37         #${source_dir}/SecKmBase64.c
38 )
39
40 SET(libcryptsvc_LDFLAGS " -module -avoid-version ${pkgs_LDFLAGS} ")
41 SET(libcryptsvc_CFLAGS " ${CFLAGS} -fvisibility=hidden -g -fPIC -I${CMAKE_CURRENT_SOURCE_DIR}/include ")
42 SET(libcryptsvc_CPPFLAGS " -DPIC ")
43
44 ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRCS})
45
46 TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS})
47
48 IF("${ARCH}" MATCHES "arm")
49 TARGET_LINK_LIBRARIES(${PROJECT_NAME} -L./libs -lDeviceInfo)
50 ENDIF("${ARCH}" MATCHES "arm")
51
52 SET_TARGET_PROPERTIES(
53         ${PROJECT_NAME}
54         PROPERTIES
55         VERSION ${FULLVER}
56         SOVERSION ${MAJORVER}
57 )
58 ##################################################################################################################
59
60 ##################################################################################################################
61 # for libtzsvc.so
62 SET(SRCS_TZ
63         ${source_dir}/SecCryptoSvc.c
64         ${source_dir}/SecTzSvc.c
65 )
66
67 SET(libtzsvc_LDFLAGS " -module -avoid-version ${pkgs_LDFLAGS} ")
68 SET(libtzsvc_CFLAGS " ${CFLAGS} -fvisibility=hidden -g -fPIC -I${CMAKE_CURRENT_SOURCE_DIR}/include ")
69 SET(libtzsvc_CPPFLAGS " -DPIC ")
70
71 SET(LIBTZ_SO "tzsvc")
72 ADD_LIBRARY(${LIBTZ_SO} SHARED ${SRCS_TZ})
73
74 TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS})
75
76 IF("${ARCH}" MATCHES "arm")
77 TARGET_LINK_LIBRARIES(${LIBTZ_SO} -L./libs -lDeviceInfo)
78 ENDIF("${ARCH}" MATCHES "arm")
79
80 SET_TARGET_PROPERTIES(
81         ${LIBTZ_SO}
82         PROPERTIES
83         VERSION ${FULLVER}
84         SOVERSION ${MAJORVER}
85 )
86 ##################################################################################################################
87
88
89 ##################################################################################################################
90 # for module_test
91 #SET(module_test_SOURCES
92         #${test_dir}/module_test.c
93         #${source_dir}/CryptoSvc-debug.c
94 #)
95
96 #SET(module_test_CFLAGS " -fvisibility=hidden -I. -I${CMAKE_CURRENT_SOURCE_DIR}/include ")
97 #SET(module_test_LDFALGS " -module -avoid-version ${pkgs_LDFLAGS} ")
98
99 #ADD_EXECUTABLE(${test_dir}/module_test ${module_test_SOURCES})
100 #TARGET_LINK_LIBRARIES(${test_dir}/module_test ${pkgs_LDFLAGS} cryptsvc)
101 #SET_TARGET_PROPERTIES(${test_dir}/module_test PROPERTIES COMPILE_FLAGS "${module_test_CFLAGS} ")
102 ##################################################################################################################
103
104 #FIND_PROGRAM(UNAME NAMES uname)
105 #EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH")
106 IF("${ARCH}" MATCHES "arm")
107         #ADD_DEFINITIONS("-DTARGET")
108         ADD_DEFINITIONS("-DCRYPTOSVC_TARGET")
109         #MESSAGE("add -DTARGET")
110 ENDIF("${ARCH}" MATCHES "arm")
111
112 SET(PC_NAME ${PROJECT_NAME})
113 SET(PC_DESCRIPTION ${DESCRIPTION})
114 SET(PC_LDFLAGS " -l${PROJECT_NAME} -l${LIBTZ_SO} ")
115 SET(PC_REQUIRED ${pc_requires})
116 CONFIGURE_FILE(${PROJECT_NAME}.pc.in ${PROJECT_NAME}.pc @ONLY)
117
118 INSTALL(FILES ${PROJECT_NAME}.pc DESTINATION lib/pkgconfig)
119 INSTALL(TARGETS ${PROJECT_NAME} DESTINATION lib)
120 INSTALL(TARGETS ${LIBTZ_SO} DESTINATION lib)
121 INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/ DESTINATION ${INCLUDEDIR})
122
123 ADD_DEFINITIONS(-D_bool_cryptsvc)