# SPDX-License-Identifier: Apache-2.0

# '-mcmse' enables the generation of code for the Secure state of the ARMv8-M
# Security Extensions. This option is required when building a Secure firmware.
zephyr_compile_options_ifdef(CONFIG_ARM_SECURE_FIRMWARE -mcmse)

if(CONFIG_ARM_FIRMWARE_HAS_SECURE_ENTRY_FUNCS)

  # --out-implib and --cmse-implib instruct the linker to produce
  # an import library that consists of a relocatable file containing
  # only a symbol table with the entry veneers. The library may be used
  # when building a Non-Secure image which shall have access to Secure
  # Entry functions.
  zephyr_ld_options(
    ${LINKERFLAGPREFIX},--out-implib=${CMAKE_BINARY_DIR}/${CONFIG_ARM_ENTRY_VENEERS_LIB_NAME}
  )

  zephyr_ld_options(
    ${LINKERFLAGPREFIX},--cmse-implib
  )

  # Indicate that the entry veneers library file is created during linking of this firmware.
  set_property(
    GLOBAL APPEND PROPERTY
    extra_post_build_byproducts
    ${CMAKE_BINARY_DIR}/${CONFIG_ARM_ENTRY_VENEERS_LIB_NAME}
    )

  zephyr_linker_sources(SECTIONS SORT_KEY z_end secure_entry_functions.ld)
endif()

# Link the entry veneers library file with the Non-Secure Firmware that needs it.
zephyr_link_libraries_ifdef(CONFIG_ARM_FIRMWARE_USES_SECURE_ENTRY_FUNCS
  ${CMAKE_BINARY_DIR}/${CONFIG_ARM_ENTRY_VENEERS_LIB_NAME}
  )

if(CONFIG_ARM_SECURE_FIRMWARE)
  zephyr_library()

  zephyr_library_sources(arm_core_tz.c)
endif()
