From f821c61fddd0193b6333a76f39904d201f30b7e6 Mon Sep 17 00:00:00 2001 From: Jonas Ohlsson Date: Fri, 4 Jun 2021 14:58:34 +0200 Subject: Remove dependency on cpp Remove dependency on cpp, and instead use the specified compiler to preprocess the linker scripts. Signed-off-by: Jonas Ohlsson Change-Id: I000082f8e90015b12f99ba3f616b6b3e07647873 --- .../trustzone_inference/nonsecure/CMakeLists.txt | 3 ++ cmake/helpers.cmake | 44 ++++++++++++---------- targets/corstone-300/platform.scatter | 2 - 3 files changed, 27 insertions(+), 22 deletions(-) diff --git a/applications/trustzone_inference/nonsecure/CMakeLists.txt b/applications/trustzone_inference/nonsecure/CMakeLists.txt index a4d95ad..09cec83 100644 --- a/applications/trustzone_inference/nonsecure/CMakeLists.txt +++ b/applications/trustzone_inference/nonsecure/CMakeLists.txt @@ -41,6 +41,9 @@ target_compile_definitions(trustzone_nonsecure PUBLIC TRUSTZONE_NONSECURE) # Silence warning on cmse attributes target_compile_options(trustzone_nonsecure PRIVATE -Wno-ignored-attributes) +# Add include directory for target application specifics +target_include_directories(trustzone_nonsecure PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../${ETHOSU_TARGET}) + ############################################################################# # linker configuration ############################################################################# diff --git a/cmake/helpers.cmake b/cmake/helpers.cmake index 21d3a24..da954c0 100644 --- a/cmake/helpers.cmake +++ b/cmake/helpers.cmake @@ -41,31 +41,35 @@ function(ethosu_eval_link_options target) set(prop "$") if (CMAKE_CXX_COMPILER_ID STREQUAL "ARMClang") - set(LINK_FILE_OUT ${LINK_FILE}.scatter) + set(LINK_FILE_EXT scatter) + set(LINK_FILE_IN ${LINK_FILE}.${LINK_FILE_EXT}) set(LINK_FILE_OPTION "--scatter") - - target_link_options(${target} PUBLIC - --predefine=\"-D$\") + # Note: the -mcpu flag is added to avoid warnings caused when using the default cpu/arch. + set(COMPILER_PREPROCESSOR_OPTIONS -mcpu=${CMAKE_SYSTEM_PROCESSOR} --target=arm-arm-none-eabi -E -x c -P) elseif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") - set(LINK_FILE_IN ${LINK_FILE}.ld) - get_filename_component(LINK_FILE_OUT_BASE ${LINK_FILE} NAME) - set(LINK_FILE_OUT ${CMAKE_CURRENT_BINARY_DIR}/${LINK_FILE_OUT_BASE}-${target}.ld) + set(LINK_FILE_EXT ld) + set(LINK_FILE_IN ${LINK_FILE}.${LINK_FILE_EXT}) set(LINK_FILE_OPTION "-T") - - add_custom_command( - OUTPUT ${LINK_FILE_OUT} - DEPENDS ${LINK_FILE_IN} - BYPRODUCTS ${LINK_FILE_OUT} - COMMAND ${CMAKE_C_COMPILER} -E -x c -P -o ${LINK_FILE_OUT} ${LINK_FILE_IN} - COMMAND_EXPAND_LISTS "-D$" - COMMENT "Preprocessing and generating linker script" - VERBATIM) - add_custom_target(${target}-linker-script - DEPENDS ${LINK_FILE_OUT} - VERBATIM) - add_dependencies(${target} ${target}-linker-script) + set(COMPILER_PREPROCESSOR_OPTIONS -E -x c -P) endif() + get_filename_component(LINK_FILE_OUT_BASE ${LINK_FILE} NAME) + set(LINK_FILE_OUT ${CMAKE_CURRENT_BINARY_DIR}/${LINK_FILE_OUT_BASE}-${target}.${LINK_FILE_EXT}) + + add_custom_command( + OUTPUT ${LINK_FILE_OUT} + DEPENDS ${LINK_FILE_IN} + BYPRODUCTS ${LINK_FILE_OUT} + COMMAND ${CMAKE_C_COMPILER} ${COMPILER_PREPROCESSOR_OPTIONS} -o ${LINK_FILE_OUT} ${LINK_FILE_IN} + COMMAND_EXPAND_LISTS "-D$" + COMMAND_EXPAND_LISTS "-I$,;-I>" + COMMENT "Preprocessing and generating linker script" + VERBATIM) + add_custom_target(${target}-linker-script + DEPENDS ${LINK_FILE_OUT} + VERBATIM) + add_dependencies(${target} ${target}-linker-script) + target_link_options(${target} PUBLIC ${LINK_FILE_OPTION} ${LINK_FILE_OUT}) set_target_properties(${target} PROPERTIES LINK_DEPENDS ${LINK_FILE_OUT}) endfunction() diff --git a/targets/corstone-300/platform.scatter b/targets/corstone-300/platform.scatter index bf143dc..06a749a 100644 --- a/targets/corstone-300/platform.scatter +++ b/targets/corstone-300/platform.scatter @@ -1,5 +1,3 @@ -#! cpp - /* * Copyright (c) 2019-2021 Arm Limited. All rights reserved. * -- cgit v1.2.1