From 197197a5796bc6c369d959bd1200378d026a374e Mon Sep 17 00:00:00 2001 From: Mark Ruvald Pedersen Date: Fri, 3 May 2019 11:02:56 +0200 Subject: [PATCH] cmake: Toolchain abstraction: Introduce toolchain_ld_configure_files No functional change expected. This is motivated by the wish to abstract Zephyr's usage of toolchains, permitting non-intrusive porting to other (commercial) toolchains. Signed-off-by: Mark Ruvald Pedersen --- CMakeLists.txt | 17 ++--------------- cmake/linker/ld/target.cmake | 1 + cmake/linker/ld/target_configure.cmake | 21 +++++++++++++++++++++ 3 files changed, 24 insertions(+), 15 deletions(-) create mode 100644 cmake/linker/ld/target_configure.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 1df19d50c2b..1672389fffa 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1029,21 +1029,8 @@ zephyr_compile_options( $<$:-std=${CSTD}> ) -configure_file( - $ENV{ZEPHYR_BASE}/include/arch/common/app_data_alignment.ld - ${PROJECT_BINARY_DIR}/include/generated/app_data_alignment.ld) - -configure_file( - $ENV{ZEPHYR_BASE}/include/linker/app_smem.ld - ${PROJECT_BINARY_DIR}/include/generated/app_smem.ld) - -configure_file( - $ENV{ZEPHYR_BASE}/include/linker/app_smem_aligned.ld - ${PROJECT_BINARY_DIR}/include/generated/app_smem_aligned.ld) - -configure_file( - $ENV{ZEPHYR_BASE}/include/linker/app_smem_unaligned.ld - ${PROJECT_BINARY_DIR}/include/generated/app_smem_unaligned.ld) +# @Intent: Configure linker scripts, i.e. generate linker scripts with variables substituted +toolchain_ld_configure_files() if(CONFIG_USERSPACE) set(APP_SMEM_ALIGNED_LD "${PROJECT_BINARY_DIR}/include/generated/app_smem_aligned.ld") diff --git a/cmake/linker/ld/target.cmake b/cmake/linker/ld/target.cmake index b2fcce397e6..0c82474167f 100644 --- a/cmake/linker/ld/target.cmake +++ b/cmake/linker/ld/target.cmake @@ -58,3 +58,4 @@ include(${ZEPHYR_BASE}/cmake/linker/${LINKER}/target_base.cmake) include(${ZEPHYR_BASE}/cmake/linker/${LINKER}/target_baremetal.cmake) include(${ZEPHYR_BASE}/cmake/linker/${LINKER}/target_cpp.cmake) include(${ZEPHYR_BASE}/cmake/linker/${LINKER}/target_relocation.cmake) +include(${ZEPHYR_BASE}/cmake/linker/${LINKER}/target_configure.cmake) diff --git a/cmake/linker/ld/target_configure.cmake b/cmake/linker/ld/target_configure.cmake new file mode 100644 index 00000000000..7d02fb5552f --- /dev/null +++ b/cmake/linker/ld/target_configure.cmake @@ -0,0 +1,21 @@ +# SPDX-License-Identifier: Apache-2.0 + +# See root CMakeLists.txt for description and expectations of these macros + +macro(toolchain_ld_configure_files) + configure_file( + $ENV{ZEPHYR_BASE}/include/arch/common/app_data_alignment.ld + ${PROJECT_BINARY_DIR}/include/generated/app_data_alignment.ld) + + configure_file( + $ENV{ZEPHYR_BASE}/include/linker/app_smem.ld + ${PROJECT_BINARY_DIR}/include/generated/app_smem.ld) + + configure_file( + $ENV{ZEPHYR_BASE}/include/linker/app_smem_aligned.ld + ${PROJECT_BINARY_DIR}/include/generated/app_smem_aligned.ld) + + configure_file( + $ENV{ZEPHYR_BASE}/include/linker/app_smem_unaligned.ld + ${PROJECT_BINARY_DIR}/include/generated/app_smem_unaligned.ld) +endmacro()