Add encryption scheme tests
[platform/core/security/key-manager.git] / tests / encryption-scheme / CMakeLists.txt
1 # Copyright (c) 2015 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        CMakeLists.txt
16 # @author      Krzysztof Jackiewicz (k.jackiewicz@samsung.com)
17 # @brief
18 #
19
20 INCLUDE(FindPkgConfig)
21
22 # common encryption scheme library
23 PKG_CHECK_MODULES(ENCRYPTION_SCHEME_DEP
24     REQUIRED
25     openssl
26     libcrypto
27     libsmack)
28
29 FIND_PACKAGE(Threads REQUIRED)
30
31 SET(ENCRYPTION_SCHEME_SOURCES
32     ${CMAKE_CURRENT_SOURCE_DIR}/smack-access.cpp
33     ${CMAKE_CURRENT_SOURCE_DIR}/scheme-test.cpp
34
35     ${KEY_MANAGER_PATH}/service/file-lock.cpp
36     ${KEY_MANAGER_PATH}/service/key-provider.cpp
37     ${KEY_MANAGER_PATH}/service/db-crypto.cpp
38     ${KEY_MANAGER_PATH}/service/file-system.cpp
39     ${KEY_MANAGER_PATH}/dpl/core/src/assert.cpp
40     ${KEY_MANAGER_PATH}/dpl/db/src/sql_connection.cpp
41     ${KEY_MANAGER_PATH}/dpl/db/src/naive_synchronization_object.cpp
42     ${KEY_MANAGER_PATH}/sqlcipher/sqlcipher.c
43 )
44
45 INCLUDE_DIRECTORIES(SYSTEM ${ENCRYPTION_SCHEME_DEP_INCLUDE_DIRS})
46 INCLUDE_DIRECTORIES(
47     ${CMAKE_CURRENT_SOURCE_DIR}
48
49     ${KEY_MANAGER_PATH}/common
50     ${KEY_MANAGER_PATH}/dpl/core/include
51     ${KEY_MANAGER_PATH}/dpl/log/include
52     ${KEY_MANAGER_PATH}/dpl/db/include
53     ${KEY_MANAGER_PATH}/sqlcipher
54     ${KEY_MANAGER_PATH}/service
55     ${KEY_MANAGER_PATH}/crypto
56 )
57
58 ADD_LIBRARY(${TARGET_ENCRYPTION_SCHEME_COMMON} STATIC ${ENCRYPTION_SCHEME_SOURCES})
59
60 TARGET_LINK_LIBRARIES(${TARGET_ENCRYPTION_SCHEME_COMMON}
61     ${ENCRYPTION_SCHEME_DEP_LIBRARIES}
62     ${TARGET_KEY_MANAGER_CLIENT}
63     ${TARGET_KEY_MANAGER_CONTROL_CLIENT}
64     ${CMAKE_THREAD_LIBS_INIT}
65     boost_unit_test_framework
66     -ldl
67 )
68
69 INSTALL(TARGETS ${TARGET_ENCRYPTION_SCHEME_COMMON} DESTINATION ${LIB_INSTALL_DIR})
70
71
72
73 # binary for filling db
74 SET(TARGET_CKM_GENERATOR "ckm_generate_db")
75
76 SET(GENERATOR_SOURCES
77     ${CMAKE_CURRENT_SOURCE_DIR}/generate-db.cpp
78 )
79
80 ADD_EXECUTABLE(${TARGET_CKM_GENERATOR} ${GENERATOR_SOURCES})
81
82 TARGET_LINK_LIBRARIES(${TARGET_CKM_GENERATOR}
83     ${TARGET_ENCRYPTION_SCHEME_COMMON}
84 )
85
86 INSTALL(TARGETS ${TARGET_CKM_GENERATOR} DESTINATION bin)
87
88
89 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/encryption-scheme.p12 DESTINATION /usr/share/ckm-db-test)