Skip to content

Commit 09cf2c7

Browse files
authored
cmake : Improve build-info.cpp generation (#14156)
* cmake: Simplify build-info.cpp generation The rebuild of build-info.cpp still gets triggered when .git/index gets changes. * cmake: generate build-info.cpp in build dir
1 parent c33fe8b commit 09cf2c7

File tree

2 files changed

+7
-41
lines changed

2 files changed

+7
-41
lines changed

common/CMakeLists.txt

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -23,31 +23,21 @@ if(EXISTS "${PROJECT_SOURCE_DIR}/.git")
2323
endif()
2424

2525
if(EXISTS "${GIT_DIR}/index")
26-
set(GIT_INDEX "${GIT_DIR}/index")
26+
# For build-info.cpp below
27+
set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS "${GIT_DIR}/index")
2728
else()
2829
message(WARNING "Git index not found in git repository.")
29-
set(GIT_INDEX "")
3030
endif()
3131
else()
3232
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.")
33-
set(GIT_INDEX "")
3433
endif()
3534

36-
# Add a custom command to rebuild build-info.cpp when .git/index changes
37-
add_custom_command(
38-
OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/build-info.cpp"
39-
COMMENT "Generating build details from Git"
40-
COMMAND ${CMAKE_COMMAND} -DMSVC=${MSVC} -DCMAKE_C_COMPILER_VERSION=${CMAKE_C_COMPILER_VERSION}
41-
-DCMAKE_C_COMPILER_ID=${CMAKE_C_COMPILER_ID} -DCMAKE_VS_PLATFORM_NAME=${CMAKE_VS_PLATFORM_NAME}
42-
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
43-
-DCMAKE_SYSTEM_NAME=${CMAKE_SYSTEM_NAME} -DCMAKE_SYSTEM_PROCESSOR=${CMAKE_SYSTEM_PROCESSOR}
44-
-P "${CMAKE_CURRENT_SOURCE_DIR}/cmake/build-info-gen-cpp.cmake"
45-
WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}"
46-
DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/build-info.cpp.in" ${GIT_INDEX}
47-
VERBATIM
48-
)
35+
set(TEMPLATE_FILE "${CMAKE_CURRENT_SOURCE_DIR}/build-info.cpp.in")
36+
set(OUTPUT_FILE "${CMAKE_CURRENT_BINARY_DIR}/build-info.cpp")
37+
configure_file(${TEMPLATE_FILE} ${OUTPUT_FILE})
38+
4939
set(TARGET build_info)
50-
add_library(${TARGET} OBJECT build-info.cpp)
40+
add_library(${TARGET} OBJECT ${OUTPUT_FILE})
5141
if (BUILD_SHARED_LIBS)
5242
set_target_properties(${TARGET} PROPERTIES POSITION_INDEPENDENT_CODE ON)
5343
endif()

common/cmake/build-info-gen-cpp.cmake

Lines changed: 0 additions & 24 deletions
This file was deleted.

0 commit comments

Comments
 (0)