blob: 4c85a4082d0dea07aed7fbf6f5dee2c4cb025495 [file] [log] [blame]
Julian Halleff4b282020-11-23 18:24:12 +01001#-------------------------------------------------------------------------------
2# Copyright (c) 2020, Arm Limited and Contributors. All rights reserved.
3#
4# SPDX-License-Identifier: BSD-3-Clause
5#
6#-------------------------------------------------------------------------------
7
8#-------------------------------------------------------------------------------
9# The base build file shared between deployments of 'ts-demo' for
10# different environments. Demonstrates use of trusted services by a
11# client application.
12#-------------------------------------------------------------------------------
13
14#-------------------------------------------------------------------------------
15# Use libts for locating and accessing services. An appropriate version of
16# libts will be imported for the enviroment in which service tests are
17# deployed.
18#-------------------------------------------------------------------------------
19include(${TS_ROOT}/deployments/libts/libts-import.cmake)
20target_link_libraries(ts-demo PRIVATE libts)
21
22#-------------------------------------------------------------------------------
23# Common main for all deployments
24#
25#-------------------------------------------------------------------------------
26target_sources(ts-demo PRIVATE
27 "${CMAKE_CURRENT_LIST_DIR}/ts-demo.cpp"
28)
29
30#-------------------------------------------------------------------------------
31# Components that are common accross all deployments
32#
33#-------------------------------------------------------------------------------
34add_components(
35 TARGET "ts-demo"
36 BASE_DIR ${TS_ROOT}
37 COMPONENTS
38 "components/app/ts-demo"
39 "components/service/crypto/client/cpp"
40 "components/service/common/serializer/protobuf"
41 "protocols/service/crypto/protobuf"
42)
43
44#-------------------------------------------------------------------------------
45# Components used from external projects
46#
47#-------------------------------------------------------------------------------
48
49# Nanopb
50include(${TS_ROOT}/external/nanopb/nanopb.cmake)
51target_link_libraries(ts-demo PRIVATE nanopb::protobuf-nanopb-static)
52protobuf_generate_all(TGT "ts-demo" NAMESPACE "protobuf" BASE_DIR "${TS_ROOT}/protocols")
53
54# Mbedcrypto
55include(${TS_ROOT}/external/mbed-crypto/mbedcrypto.cmake)
56target_link_libraries(ts-demo PRIVATE mbedcrypto)
57
58#-------------------------------------------------------------------------------
59# Define install content.
60#
61#-------------------------------------------------------------------------------
62if (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
63 set(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/install CACHE PATH "location to install build output to." FORCE)
64endif()
65install(TARGETS ts-demo RUNTIME DESTINATION bin)