Commit a5d79cf8 authored by Marek Pieta's avatar Marek Pieta Committed by Andrzej Puzdrowski
Browse files

boot: zephyr: Fix build issue for multiple conf files



Change fixes build issue that occurs if CONF_FILE contains multiple
file paths instead of single file path.

Signed-off-by: default avatarMarek Pieta <Marek.Pieta@nordicsemi.no>
Signed-off-by: default avatarAndrzej Puzdrowski <andrzej.puzdrowski@nordicsemi.no>
parent 48042199
Loading
Loading
Loading
Loading
+16 −3
Original line number Diff line number Diff line
@@ -231,17 +231,30 @@ if(CONFIG_MCUBOOT_SERIAL)
    )
endif()

# CONF_FILE points to the KConfig configuration file of the bootloader
get_filename_component(CONF_DIR ${CONF_FILE} DIRECTORY)
# CONF_FILE points to the KConfig configuration files of the bootloader.
foreach (filepath ${CONF_FILE})
  file(READ ${filepath} temp_text)
  string(FIND "${temp_text}" ${CONFIG_BOOT_SIGNATURE_KEY_FILE} match)
  if (${match} GREATER_EQUAL 0)
    if (NOT DEFINED CONF_DIR)
      get_filename_component(CONF_DIR ${filepath} DIRECTORY)
    else()
      message(FATAL_ERROR "Signature key file defined in multiple conf files")
    endif()
  endif()
endforeach()

if(NOT CONFIG_BOOT_SIGNATURE_KEY_FILE STREQUAL "")
  if(IS_ABSOLUTE ${CONFIG_BOOT_SIGNATURE_KEY_FILE})
    set(KEY_FILE ${CONFIG_BOOT_SIGNATURE_KEY_FILE})
  elseif(EXISTS ${CONF_DIR}/${CONFIG_BOOT_SIGNATURE_KEY_FILE})
  elseif((DEFINED CONF_DIR) AND
	 (EXISTS ${CONF_DIR}/${CONFIG_BOOT_SIGNATURE_KEY_FILE}))
    set(KEY_FILE ${CONF_DIR}/${CONFIG_BOOT_SIGNATURE_KEY_FILE})
  else()
    set(KEY_FILE ${MCUBOOT_DIR}/${CONFIG_BOOT_SIGNATURE_KEY_FILE})
  endif()
  message("MCUBoot bootloader key file: ${KEY_FILE}")

  set(GENERATED_PUBKEY ${ZEPHYR_BINARY_DIR}/autogen-pubkey.c)
  add_custom_command(
    OUTPUT ${GENERATED_PUBKEY}