ExtractVersion.cmake 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. ### if code is from Component Registry, generate from coprocessor_fw_version.txt
  2. ### if code is from git, generate from top level idf_component.yml
  3. if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/main/coprocessor_fw_version.txt")
  4. file(READ "${CMAKE_CURRENT_LIST_DIR}/main/coprocessor_fw_version.txt" VERSION_CONTENTS)
  5. set(VERSION_REGEX "^([0-9]+).([0-9]+).([0-9]+)")
  6. string(REGEX MATCH "${VERSION_REGEX}" VERSION_MATCH "${VERSION_CONTENTS}")
  7. if(VERSION_MATCH)
  8. set(VERSION_GENERATOR "coprocessor_fw_version.txt")
  9. else()
  10. message(FATAL_ERROR "version info not found in coprocessor_fw_version.txt")
  11. endif()
  12. elseif(EXISTS "${CMAKE_CURRENT_LIST_DIR}/../idf_component.yml")
  13. file(READ "${CMAKE_CURRENT_LIST_DIR}/../idf_component.yml" VERSION_CONTENTS)
  14. set(VERSION_REGEX "^version: \"([0-9]+).([0-9]+).([0-9]+)\"")
  15. string(REGEX MATCH "${VERSION_REGEX}" VERSION_MATCH "${VERSION_CONTENTS}")
  16. if(VERSION_MATCH)
  17. set(VERSION_GENERATOR "idf_component.yml")
  18. else()
  19. message(FATAL_ERROR "version info not found in idf_component.yml")
  20. endif()
  21. else()
  22. message(FATAL_ERROR "idf_component.yml not found")
  23. endif()
  24. # generate header file from the version info
  25. file(WRITE "${CMAKE_CURRENT_LIST_DIR}/main/coprocessor_fw_version.h"
  26. "/* this is a generated file - do not modify\n"
  27. " * generated from ${VERSION_GENERATOR} */\n"
  28. "#ifndef __COPROCESSOR_FW_VERSION_H__\n"
  29. "#define __COPROCESSOR_FW_VERSION_H__\n"
  30. "#define PROJECT_VERSION_MAJOR_1 ${CMAKE_MATCH_1}\n"
  31. "#define PROJECT_VERSION_MINOR_1 ${CMAKE_MATCH_2}\n"
  32. "#define PROJECT_VERSION_PATCH_1 ${CMAKE_MATCH_3}\n"
  33. "#endif\n")
  34. set(PROJECT_VERSION_MAJOR_1 "${CMAKE_MATCH_1}")
  35. set(PROJECT_VERSION_MINOR_1 "${CMAKE_MATCH_2}")
  36. set(PROJECT_VERSION_PATCH_1 "${CMAKE_MATCH_3}")
  37. message(*************************************************************************************)
  38. message(" Building ESP-Hosted-MCU FW :: ${PROJECT_VERSION_MAJOR_1}.${PROJECT_VERSION_MINOR_1}.${PROJECT_VERSION_PATCH_1} ")
  39. message(*************************************************************************************)