CMakeLists.txt 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. set(COMPONENT_SRCS "src/bootloader_clock.c"
  2. "src/bootloader_common.c"
  3. "src/bootloader_flash.c"
  4. "src/bootloader_flash_config.c"
  5. "src/bootloader_random.c"
  6. "src/bootloader_sha.c"
  7. "src/bootloader_utility.c"
  8. "src/esp_image_format.c"
  9. "src/flash_encrypt.c"
  10. "src/flash_partitions.c"
  11. "src/flash_qio_mode.c"
  12. "src/secure_boot.c"
  13. "src/secure_boot_signatures.c")
  14. if(${BOOTLOADER_BUILD})
  15. set(COMPONENT_ADD_INCLUDEDIRS "include include_bootloader")
  16. set(COMPONENT_REQUIRES)
  17. set(COMPONENT_PRIV_REQUIRES spi_flash micro-ecc efuse)
  18. list(APPEND COMPONENT_SRCS "src/bootloader_init.c")
  19. if(CONFIG_SECURE_SIGNED_APPS)
  20. get_filename_component(secure_boot_verification_key
  21. "signature_verification_key.bin"
  22. ABSOLUTE BASE_DIR "${CMAKE_BINARY_DIR}")
  23. if(CONFIG_SECURE_BOOT_BUILD_SIGNED_BINARIES)
  24. add_custom_command(OUTPUT "${secure_boot_verification_key}"
  25. COMMAND ${ESPSECUREPY}
  26. extract_public_key --keyfile "${secure_boot_signing_key}"
  27. "${secure_boot_verification_key}"
  28. DEPENDS gen_secure_boot_signing_key
  29. VERBATIM)
  30. else()
  31. get_filename_component(orig_secure_boot_verification_key
  32. "${CONFIG_SECURE_BOOT_VERIFICATION_KEY}"
  33. ABSOLUTE BASE_DIR "${main_project_path}")
  34. if(NOT EXISTS ${orig_secure_boot_verification_key})
  35. message(FATAL_ERROR
  36. "Secure Boot Verification Public Key ${CONFIG_SECURE_BOOT_VERIFICATION_KEY} does not exist."
  37. "\nThis can be extracted from the private signing key."
  38. "\nSee docs/security/secure-boot.rst for details.")
  39. endif()
  40. add_custom_command(OUTPUT "${secure_boot_verification_key}"
  41. COMMAND ${CMAKE_COMMAND} -E copy "${orig_secure_boot_verification_key}"
  42. "${secure_boot_verification_key}"
  43. DEPENDS "${orig_secure_boot_verification_key}"
  44. VERBATIM)
  45. endif()
  46. set(COMPONENT_EMBED_FILES "${secure_boot_verification_key}")
  47. set_property(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
  48. APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES
  49. "${secure_boot_verification_key}")
  50. endif()
  51. else()
  52. set(COMPONENT_ADD_INCLUDEDIRS "include")
  53. set(COMPONENT_PRIV_INCLUDEDIRS "include_bootloader")
  54. set(COMPONENT_REQUIRES)
  55. set(COMPONENT_PRIV_REQUIRES spi_flash mbedtls micro-ecc efuse)
  56. endif()
  57. register_component()