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