1 # Copyright (c) 2017 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.
16 # @author Lukasz Kostyra (l.kostyra@samsung.com)
17 # @brief CMakeLists for hello world CA and TA
20 ############# Entry defines #############
22 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
23 PROJECT("tef-simulator-helloworld")
25 INCLUDE(FindPkgConfig)
27 PKG_CHECK_MODULES(HELLO_WORLD_TA_DEPS REQUIRED
31 PKG_CHECK_MODULES(HELLO_WORLD_CA_DEPS REQUIRED
35 # TODO CMake include provided by devkit to encrypt/sign TA
36 INCLUDE(TEFSimulatorDevkit)
38 SET(TARGET_HELLO_WORLD_CA tef-simulator-helloworld)
39 SET(TARGET_HELLO_WORLD_TA 00000000-0000-0000-0000-112233445566)
41 SET(HELLO_WORLD_PATH ${PROJECT_SOURCE_DIR})
42 SET(HELLO_WORLD_TA_PATH ${HELLO_WORLD_PATH}/ta)
43 SET(HELLO_WORLD_CA_PATH ${HELLO_WORLD_PATH}/host)
45 IF (CMAKE_BUILD_TYPE MATCHES "DEBUG")
46 MESSAGE("Debug build")
47 ADD_DEFINITIONS("-DBUILD_TYPE_DEBUG")
48 ADD_DEFINITIONS("-ggdb -O0")
49 # undefine _FORTIFY_SOURCE - it makes no sense without optimization and produces warnings
50 ADD_DEFINITIONS("-Wp,-U_FORTIFY_SOURCE")
51 ENDIF (CMAKE_BUILD_TYPE MATCHES "DEBUG")
53 ############# TA #############
55 SET(HELLO_WORLD_TA_SOURCES
56 ${HELLO_WORLD_TA_PATH}/hello_world.c
59 ADD_EXECUTABLE(${TARGET_HELLO_WORLD_TA}
60 ${HELLO_WORLD_TA_SOURCES}
63 # TEEStub is built in C++, so we must force linking using C++ linker
64 SET_TARGET_PROPERTIES(${TARGET_HELLO_WORLD_TA} PROPERTIES
68 # TODO make pkgconfig to hide these deps
69 TARGET_LINK_LIBRARIES(${TARGET_HELLO_WORLD_TA}
70 ${HELLO_WORLD_TA_DEPS_LIBRARIES}
73 TEF_GENERATE_TA_IMAGE(SINGED_TA ${TARGET_HELLO_WORLD_TA} ${HELLO_WORLD_TA_PATH}/hello_world.xml ${TA_NAME})
74 INSTALL(FILES ${TA_NAME} DESTINATION ${TASTORE_DIR})
77 ############# CA #############
79 SET(HELLO_WORLD_CA_SOURCES
80 ${HELLO_WORLD_CA_PATH}/main.c
83 ADD_EXECUTABLE(${TARGET_HELLO_WORLD_CA}
84 ${HELLO_WORLD_CA_SOURCES}
88 ${HELLO_WORLD_TA_PATH}
89 ${HELLO_WORLD_CA_DEPS_INCLUDE_DIRS}
92 TARGET_LINK_LIBRARIES(${TARGET_HELLO_WORLD_CA}
93 ${HELLO_WORLD_CA_DEPS_LIBRARIES}
96 INSTALL(TARGETS ${TARGET_HELLO_WORLD_CA} DESTINATION ${BIN_DIR})