Revert "Revert "Modifying cmake TA devkit to be more similar to other TEF backends.""
[platform/core/security/tef-simulator.git] / helloworld / CMakeLists.txt
1 # Copyright (c) 2017 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
16 # @author  Lukasz Kostyra (l.kostyra@samsung.com)
17 # @brief   CMakeLists for hello world CA and TA
18 #
19
20 ############# Entry defines #############
21
22 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
23 PROJECT("tef-simulator-helloworld")
24
25 INCLUDE(FindPkgConfig)
26
27 PKG_CHECK_MODULES(HELLO_WORLD_TA_DEPS REQUIRED
28     tef-simulator-devkit
29     )
30
31 PKG_CHECK_MODULES(HELLO_WORLD_CA_DEPS REQUIRED
32     tef-libteec
33     )
34
35 # TODO CMake include provided by devkit to encrypt/sign TA
36 INCLUDE(TEFSimulatorDevkit)
37
38 SET(TARGET_HELLO_WORLD_CA tef-simulator-helloworld)
39 SET(TARGET_HELLO_WORLD_TA 00000000-0000-0000-0000-112233445566)
40
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)
44
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")
52
53 ############# TA #############
54
55 SET(HELLO_WORLD_TA_SOURCES
56     ${HELLO_WORLD_TA_PATH}/hello_world.c
57     )
58
59 ADD_EXECUTABLE(${TARGET_HELLO_WORLD_TA}
60     ${HELLO_WORLD_TA_SOURCES}
61     )
62
63 # TEEStub is built in C++, so we must force linking using C++ linker
64 SET_TARGET_PROPERTIES(${TARGET_HELLO_WORLD_TA} PROPERTIES
65     LINKER_LANGUAGE "CXX"
66     )
67
68 # TODO make pkgconfig to hide these deps
69 TARGET_LINK_LIBRARIES(${TARGET_HELLO_WORLD_TA}
70     ${HELLO_WORLD_TA_DEPS_LIBRARIES}
71     )
72
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})
75
76
77 ############# CA #############
78
79 SET(HELLO_WORLD_CA_SOURCES
80     ${HELLO_WORLD_CA_PATH}/main.c
81     )
82
83 ADD_EXECUTABLE(${TARGET_HELLO_WORLD_CA}
84     ${HELLO_WORLD_CA_SOURCES}
85     )
86
87 INCLUDE_DIRECTORIES(
88     ${HELLO_WORLD_TA_PATH}
89     ${HELLO_WORLD_CA_DEPS_INCLUDE_DIRS}
90     )
91
92 TARGET_LINK_LIBRARIES(${TARGET_HELLO_WORLD_CA}
93     ${HELLO_WORLD_CA_DEPS_LIBRARIES}
94     )
95
96 INSTALL(TARGETS ${TARGET_HELLO_WORLD_CA} DESTINATION ${BIN_DIR})