• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#
2# Copyright (C) 2022 Huawei Technologies Co., Ltd.
3# Licensed under the Mulan PSL v2.
4# You can use this software according to the terms and conditions of the Mulan PSL v2.
5# You may obtain a copy of Mulan PSL v2 at:
6#     http://license.coscl.org.cn/MulanPSL2
7# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
8# IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
9# PURPOSE.
10# See the Mulan PSL v2 for more details.
11#
12
13include(${TEE_DEV_KIT_DIR}/sdk/build/cmake/common.cmake)
14
15set(PUB_TA_INCLUDE_DIRS)
16list(APPEND PUB_TA_INCLUDE_DIRS
17    ${TEE_TEST_ROOT_DIR}/utils/include
18    ${TEE_TEST_ROOT_DIR}/utils/cmd_id
19)
20
21macro(ta_compile_pub)
22    cmake_parse_arguments(
23        TA
24        ""
25        ""
26        "ELF_NAME;SRC_LIST;INCLUDE_DIRS;COMPILE_OPTS;COMPILE_DEFS"
27        ${ARGN}
28    )
29
30    add_library(${TA_ELF_NAME} SHARED)
31    target_sources(${TA_ELF_NAME} PRIVATE
32        ${TA_SRC_LIST}
33        ${SDK_C_SOURCES}
34    )
35
36    target_include_directories(${TA_ELF_NAME} PRIVATE
37        ${PUB_TA_INCLUDE_DIRS}
38        ${TA_INCLUDE_DIRS}
39        ${COMMON_INCLUDES}
40    )
41
42    target_compile_options(${TA_ELF_NAME} PRIVATE
43        ${TA_COMPILE_OPTS}
44        ${COMMON_CFLAGS}
45    )
46
47    target_compile_definitions(${TA_ELF_NAME} PRIVATE
48        ${TA_COMPILE_DEFS}
49    )
50
51    target_link_options(${TA_ELF_NAME} PRIVATE
52        -v
53        ${COMMON_LDFLAGS}
54    )
55
56    target_link_directories(${TA_ELF_NAME} PRIVATE
57        ${TEE_TEST_ROOT_DIR}/bin
58    )
59
60    target_link_libraries(${TA_ELF_NAME} PRIVATE
61    )
62endmacro()
63
64macro(ta_entry_check)
65    cmake_parse_arguments(
66        SIGN
67        ""
68        ""
69        "TARGET_NAME"
70        ${ARGN}
71    )
72
73    add_custom_command(
74        TARGET ${SIGN_TARGET_NAME} POST_BUILD
75        COMMAND sh $ENV{TEE_BUILD_PATH}/build/tools/ta_entry_check.sh ${CMAKE_READELF} ${TEE_BUILD_OUT_DIR}/lib${SIGN_TARGET_NAME}.so n y ${TARGET_IS_ARM64}
76    )
77endmacro()
78