endif()
if(EXISTS "${GIT_DIR}/index")
- set(GIT_INDEX "${GIT_DIR}/index")
+ # For build-info.cpp below
+ set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS "${GIT_DIR}/index")
else()
message(WARNING "Git index not found in git repository.")
- set(GIT_INDEX "")
endif()
else()
message(WARNING "Git repository not found; to enable automatic generation of build info, make sure Git is installed and the project is a Git repository.")
- set(GIT_INDEX "")
endif()
-# Add a custom command to rebuild build-info.cpp when .git/index changes
-add_custom_command(
- OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/build-info.cpp"
- COMMENT "Generating build details from Git"
- COMMAND ${CMAKE_COMMAND} -DMSVC=${MSVC} -DCMAKE_C_COMPILER_VERSION=${CMAKE_C_COMPILER_VERSION}
- -DCMAKE_C_COMPILER_ID=${CMAKE_C_COMPILER_ID} -DCMAKE_VS_PLATFORM_NAME=${CMAKE_VS_PLATFORM_NAME}
- -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
- -DCMAKE_SYSTEM_NAME=${CMAKE_SYSTEM_NAME} -DCMAKE_SYSTEM_PROCESSOR=${CMAKE_SYSTEM_PROCESSOR}
- -P "${CMAKE_CURRENT_SOURCE_DIR}/cmake/build-info-gen-cpp.cmake"
- WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}"
- DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/build-info.cpp.in" ${GIT_INDEX}
- VERBATIM
-)
+set(TEMPLATE_FILE "${CMAKE_CURRENT_SOURCE_DIR}/build-info.cpp.in")
+set(OUTPUT_FILE "${CMAKE_CURRENT_BINARY_DIR}/build-info.cpp")
+configure_file(${TEMPLATE_FILE} ${OUTPUT_FILE})
+
set(TARGET build_info)
-add_library(${TARGET} OBJECT build-info.cpp)
+add_library(${TARGET} OBJECT ${OUTPUT_FILE})
if (BUILD_SHARED_LIBS)
set_target_properties(${TARGET} PROPERTIES POSITION_INDEPENDENT_CODE ON)
endif()
+++ /dev/null
-include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/build-info.cmake)
-
-set(TEMPLATE_FILE "${CMAKE_CURRENT_SOURCE_DIR}/common/build-info.cpp.in")
-set(OUTPUT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/common/build-info.cpp")
-
-# Only write the build info if it changed
-if(EXISTS ${OUTPUT_FILE})
- file(READ ${OUTPUT_FILE} CONTENTS)
- string(REGEX MATCH "LLAMA_COMMIT = \"([^\"]*)\";" _ ${CONTENTS})
- set(OLD_COMMIT ${CMAKE_MATCH_1})
- string(REGEX MATCH "LLAMA_COMPILER = \"([^\"]*)\";" _ ${CONTENTS})
- set(OLD_COMPILER ${CMAKE_MATCH_1})
- string(REGEX MATCH "LLAMA_BUILD_TARGET = \"([^\"]*)\";" _ ${CONTENTS})
- set(OLD_TARGET ${CMAKE_MATCH_1})
- if (
- NOT OLD_COMMIT STREQUAL BUILD_COMMIT OR
- NOT OLD_COMPILER STREQUAL BUILD_COMPILER OR
- NOT OLD_TARGET STREQUAL BUILD_TARGET
- )
- configure_file(${TEMPLATE_FILE} ${OUTPUT_FILE})
- endif()
-else()
- configure_file(${TEMPLATE_FILE} ${OUTPUT_FILE})
-endif()