1 # Copyright (c) 2017 - 2020 Samsung Electronics Co., Ltd All Rights Reserved
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
7 # http://www.apache.org/licenses/LICENSE-2.0
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.
15 # @file src/dummy-backend/CMakeLists.txt
16 # @author Pawel Kowalski <p.kowalski2@partner.samsung.com>
17 # @author Jaroslaw Pelczar <j.pelczar@samsung.com>
20 FIND_PROGRAM(OPENSSL_TOOL openssl REQUIRED)
21 FIND_PACKAGE(PkgConfig REQUIRED)
23 ADD_EXECUTABLE(bin2c bin2c.c)
25 ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/rootCA.key
26 COMMAND ${OPENSSL_TOOL} genrsa -out ${CMAKE_CURRENT_BINARY_DIR}/rootCA.key 1024)
28 ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/rootCA.pem
29 COMMAND ${OPENSSL_TOOL} req -x509 -new -nodes -key ${CMAKE_CURRENT_BINARY_DIR}/rootCA.key
30 -sha256 -days 1024 -out ${CMAKE_CURRENT_BINARY_DIR}/rootCA.pem
31 -subj "/C=PL/ST=Test1/L=Test2/O=Dis/CN=www.example.com"
32 DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/rootCA.key)
34 ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/rootECDSA.key
35 COMMAND ${OPENSSL_TOOL} ecparam -name secp521r1 -genkey -noout -out ${CMAKE_CURRENT_BINARY_DIR}/rootECDSA.key)
37 ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/rootECDSA.pem
38 COMMAND ${OPENSSL_TOOL} req -x509 -new -nodes -key ${CMAKE_CURRENT_BINARY_DIR}/rootECDSA.key
39 -sha256 -days 1024 -out ${CMAKE_CURRENT_BINARY_DIR}/rootECDSA.pem
40 -subj "/C=PL/ST=Test1/L=Test2/O=Dis/CN=www.example.com"
41 DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/rootECDSA.key)
43 ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/rootCA_rsa_key.c
44 COMMAND $<TARGET_FILE:bin2c> ${CMAKE_CURRENT_BINARY_DIR}/rootCA.key ${CMAKE_CURRENT_BINARY_DIR}/rootCA_rsa_key.c dummy_rootca_rsa_key
45 DEPENDS bin2c ${CMAKE_CURRENT_BINARY_DIR}/rootCA.key)
47 ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/rootCA_rsa_cert.c
48 COMMAND $<TARGET_FILE:bin2c> ${CMAKE_CURRENT_BINARY_DIR}/rootCA.pem ${CMAKE_CURRENT_BINARY_DIR}/rootCA_rsa_cert.c dummy_rootca_rsa_cert
49 DEPENDS bin2c ${CMAKE_CURRENT_BINARY_DIR}/rootCA.pem)
51 ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/rootCA_ecdsa_key.c
52 COMMAND $<TARGET_FILE:bin2c> ${CMAKE_CURRENT_BINARY_DIR}/rootECDSA.key ${CMAKE_CURRENT_BINARY_DIR}/rootCA_ecdsa_key.c dummy_rootca_ecdsa_key
53 DEPENDS bin2c ${CMAKE_CURRENT_BINARY_DIR}/rootECDSA.key)
55 ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/rootCA_ecdsa_cert.c
56 COMMAND $<TARGET_FILE:bin2c> ${CMAKE_CURRENT_BINARY_DIR}/rootECDSA.pem ${CMAKE_CURRENT_BINARY_DIR}/rootCA_ecdsa_cert.c dummy_rootca_ecdsa_cert
57 DEPENDS bin2c ${CMAKE_CURRENT_BINARY_DIR}/rootECDSA.pem)
59 PKG_CHECK_MODULES(DUMMY_DEPS REQUIRED
61 device-certificate-manager-backend
64 INCLUDE_DIRECTORIES(SYSTEM ${DUMMY_DEPS_INCLUDE_DIRS})
65 LINK_DIRECTORIES(${DUMMY_DEPS_LIBRARY_DIRS})
67 INCLUDE_DIRECTORIES(../shared)
69 ADD_LIBRARY(${DCM_BACKEND_API}
71 dcm-backend-api-dummy.cpp
74 ${CMAKE_CURRENT_BINARY_DIR}/rootCA_ecdsa_key.c
75 ${CMAKE_CURRENT_BINARY_DIR}/rootCA_ecdsa_cert.c
76 ${CMAKE_CURRENT_BINARY_DIR}/rootCA_rsa_key.c
77 ${CMAKE_CURRENT_BINARY_DIR}/rootCA_rsa_cert.c)
79 TARGET_LINK_LIBRARIES(${DCM_BACKEND_API}
80 ${DUMMY_DEPS_LIBRARIES})
82 SET_TARGET_PROPERTIES(${DCM_BACKEND_API}
85 DEFINE_SYMBOL DCM_BACKEND_API_DUMMY_EXPORT
86 VISIBILITY_INLINES_HIDDEN TRUE
87 C_VISIBILITY_PRESET hidden
88 CXX_VISIBILITY_PRESET hidden)
90 INSTALL(TARGETS ${DCM_BACKEND_API}
92 ${CMAKE_INSTALL_LIBDIR})