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