gen-build-info-cpp.cmake 943 B

123456789101112131415161718192021222324
  1. include(${CMAKE_CURRENT_SOURCE_DIR}/scripts/build-info.cmake)
  2. set(TEMPLATE_FILE "${CMAKE_CURRENT_SOURCE_DIR}/common/build-info.cpp.in")
  3. set(OUTPUT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/common/build-info.cpp")
  4. # Only write the build info if it changed
  5. if(EXISTS ${OUTPUT_FILE})
  6. file(READ ${OUTPUT_FILE} CONTENTS)
  7. string(REGEX MATCH "LLAMA_COMMIT = \"([^\"]*)\";" _ ${CONTENTS})
  8. set(OLD_COMMIT ${CMAKE_MATCH_1})
  9. string(REGEX MATCH "LLAMA_COMPILER = \"([^\"]*)\";" _ ${CONTENTS})
  10. set(OLD_COMPILER ${CMAKE_MATCH_1})
  11. string(REGEX MATCH "LLAMA_BUILD_TARGET = \"([^\"]*)\";" _ ${CONTENTS})
  12. set(OLD_TARGET ${CMAKE_MATCH_1})
  13. if (
  14. NOT OLD_COMMIT STREQUAL BUILD_COMMIT OR
  15. NOT OLD_COMPILER STREQUAL BUILD_COMPILER OR
  16. NOT OLD_TARGET STREQUAL BUILD_TARGET
  17. )
  18. configure_file(${TEMPLATE_FILE} ${OUTPUT_FILE})
  19. endif()
  20. else()
  21. configure_file(${TEMPLATE_FILE} ${OUTPUT_FILE})
  22. endif()