blob: f65713b6673e56e55deab6cde0324d9f1ac8059f [file] [log] [blame]
Gyorgy Szing49091802020-11-24 00:33:09 +01001#-------------------------------------------------------------------------------
Gyorgy Szingc31afbf2021-02-12 01:51:55 +01002# Copyright (c) 2020-2021, Arm Limited and Contributors. All rights reserved.
Gyorgy Szing49091802020-11-24 00:33:09 +01003#
4# SPDX-License-Identifier: BSD-3-Clause
5#
6#-------------------------------------------------------------------------------
7cmake_minimum_required(VERSION 3.16)
8include(../../deployment.cmake REQUIRED)
9
10#-------------------------------------------------------------------------------
11# The CMakeLists.txt for building the libsp deployment for opteesp
12#
13# Used for building the libsp library that provides FFA related functons
14# for applications deployed in a secure partition.
15#-------------------------------------------------------------------------------
16include(${TS_ROOT}/environments/opteesp/env.cmake)
17
18file(READ "${CMAKE_CURRENT_LIST_DIR}/version.txt" LIBSP_VERSION)
19project(trusted-services
20 VERSION
21 ${LIBSP_VERSION}
22 LANGUAGES
23 C ASM
24 )
25
26add_library(sp STATIC)
27
28# Include SP DEV KIT interface
29set(SP_DEV_KIT_INC_DIR ${CMAKE_CURRENT_LIST_DIR})
30list(APPEND CMAKE_MODULE_PATH "${TS_ROOT}/external/Spdevkit")
31find_package(Spdevkit COMPONENTS interface)
32
33target_link_libraries(sp PUBLIC ${SP_DEV_KIT_LIBRARIES})
34
35
36add_components(TARGET "sp"
37 BASE_DIR ${TS_ROOT}
38 COMPONENTS
39 components/messaging/ffa/libsp
40 components/common/utils
41)
42
43target_compile_definitions("sp" PRIVATE
44 ARM64=1
45)
46
47if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
48 target_compile_options("sp" PRIVATE
49 -fdiagnostics-show-option
50 -fpic
51 -gdwarf-2
52 -mstrict-align
53 -O0
54 -std=gnu99
55 )
56endif()
57
58######################################## install
59if (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
60 set(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/install CACHE PATH "location to install build output to." FORCE)
61endif()
62
63install(
64 TARGETS
65 sp
66 EXPORT
67 LibspTargets
68 ARCHIVE DESTINATION
Gyorgy Szingc31afbf2021-02-12 01:51:55 +010069 ${TS_ENV}/lib
Gyorgy Szing49091802020-11-24 00:33:09 +010070 PUBLIC_HEADER DESTINATION
Gyorgy Szingc31afbf2021-02-12 01:51:55 +010071 ${TS_ENV}/include
Gyorgy Szing49091802020-11-24 00:33:09 +010072 COMPONENT
73 libsp
74)
75
76#These would install the spdevkit content.
77#install(FILES $<TARGET_PROPERTY:sp_devkit_ifc,INTERFACE_LINK_LIBRARIES> DESTINATION lib)
78#install(FILES $<TARGET_PROPERTY:sp_devkit_ifc,INTERFACE_INCLUDE_DIRECTORIES>/ DESTINATION include)
79### Create a config file package.
Gyorgy Szingc31afbf2021-02-12 01:51:55 +010080set(ConfigPackageLocation ${TS_ENV}/lib/cmake/libsp)
Gyorgy Szing49091802020-11-24 00:33:09 +010081
82include(CMakePackageConfigHelpers)
83write_basic_package_version_file(
84 "${CMAKE_CURRENT_BINARY_DIR}/LibspConfigVersion.cmake"
85 VERSION "1.0.0"
86 COMPATIBILITY SameMajorVersion
87)
88
89# Create targets file.
90export(
91 EXPORT
92 LibspTargets
93 FILE
94 "${CMAKE_CURRENT_BINARY_DIR}/LibspTargets.cmake"
95 NAMESPACE
96 libsp::
97)
98
99# Finalize config file.
100configure_package_config_file(
101 LibspConfig.cmake.in
102 "${CMAKE_CURRENT_BINARY_DIR}/LibspConfig.cmake"
103 PATH_VARS
104
105 INSTALL_DESTINATION
106 ${ConfigPackageLocation}
107)
108
109install(
110 EXPORT
111 LibspTargets
112 FILE
113 LibspTargets.cmake
114 NAMESPACE
115 libsp::
116 DESTINATION
117 ${ConfigPackageLocation}
118 COMPONENT
119 libsp
120)
121
122# install config and version files
123install(
124 FILES
125 "${CMAKE_CURRENT_BINARY_DIR}/LibspConfig.cmake"
126 "${CMAKE_CURRENT_BINARY_DIR}/LibspConfigVersion.cmake"
127 "${TS_ROOT}/external/Spdevkit/FindSpdevkit.cmake"
128 DESTINATION
129 ${ConfigPackageLocation}
130 COMPONENT
131 libsp
132)