CMakeLists.txt 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. cmake_minimum_required(VERSION 3.5)
  2. set(EXTRA_COMPONENT_DIRS components/platform_console/app_recovery components/platform_console/app_squeezelite )
  3. include($ENV{IDF_PATH}/tools/cmake/project.cmake)
  4. message(WARNING "Building RECOVERY")
  5. project(recovery)
  6. set_property(TARGET recovery.elf PROPERTY RECOVERY_BUILD 0 )
  7. set_property(TARGET recovery.elf PROPERTY RECOVERY_PREFIX app_recovery )
  8. #
  9. #message(WARNING "Building SQUEEZELITE")
  10. #set(project_name squeezelite)
  11. #__project(${project_name} C CXX ASM)
  12. #
  13. set(squeezelite_project_elf squeezelite.elf)
  14. #
  15. # # Create a dummy file to work around CMake requirement of having a source
  16. # # file while adding an executable
  17. set(squeezelite_project_elf_src ${CMAKE_BINARY_DIR}/squeezelite_project_elf_src.c)
  18. add_custom_command(OUTPUT ${squeezelite_project_elf_src}
  19. COMMAND ${CMAKE_COMMAND} -E touch ${squeezelite_project_elf_src}
  20. VERBATIM)
  21. add_custom_command(OUTPUT "${build_dir}/.squeezelite_bin_timestamp"
  22. COMMAND echo ${ESPTOOLPY} elf2image ${ESPTOOLPY_FLASH_OPTIONS} ${esptool_elf2image_args}
  23. COMMAND ${ESPTOOLPY} elf2image ${ESPTOOLPY_FLASH_OPTIONS} ${esptool_elf2image_args}
  24. -o "${build_dir}/squeezelite.bin" "squeezelite.elf"
  25. COMMAND ${CMAKE_COMMAND} -E echo "Generated ${build_dir}/squeezelite.bin"
  26. COMMAND ${CMAKE_COMMAND} -E md5sum "${build_dir}/squeezelite.bin" > "${build_dir}/.squeezelite_bin_timestamp"
  27. VERBATIM
  28. WORKING_DIRECTORY ${build_dir}
  29. COMMENT "Generating binary image from built executable"
  30. )
  31. add_custom_target(_squeezelite_project_elf_src DEPENDS "${squeezelite_project_elf_src}" "${build_dir}/.squeezelite_bin_timestamp")
  32. add_executable(${squeezelite_project_elf} "${squeezelite_project_elf_src}")
  33. add_dependencies(${squeezelite_project_elf} _squeezelite_project_elf_src)
  34. set_property(TARGET ${squeezelite_project_elf} PROPERTY RECOVERY_BUILD 0 )
  35. set_property(TARGET ${squeezelite_project_elf} PROPERTY RECOVERY_PREFIX app_squeezelite)
  36. idf_build_get_property(bca BUILD_COMPONENT_ALIASES)
  37. target_link_libraries(${squeezelite_project_elf} ${bca})
  38. set(squeezelite_mapfile "${CMAKE_BINARY_DIR}/squeezelite.map")
  39. target_link_libraries(${squeezelite_project_elf} "-Wl,--cref -Wl,--Map=${squeezelite_mapfile}")
  40. set_property(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" APPEND PROPERTY
  41. ADDITIONAL_MAKE_CLEAN_FILES
  42. "${squeezelite_mapfile}" "${squeezelite_project_elf_src}")
  43. partition_table_get_partition_info(otaapp_offset "--partition-type app --partition-subtype ota_0" "offset")
  44. esptool_py_flash_project_args(squeezelite ${otaapp_offset} ${build_dir}/squeezelite.bin FLASH_IN_PROJECT)