|
|
@@ -23,31 +23,21 @@ if(EXISTS "${PROJECT_SOURCE_DIR}/.git")
|
|
|
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()
|