Skip to content

Commit ea8658b

Browse files
committed
cmake: Simplify build-info.cpp generation
The rebuild of build-info.cpp still gets triggered when .git/index gets changes.
1 parent ed52f36 commit ea8658b

File tree

2 files changed

+6
-40
lines changed

2 files changed

+6
-40
lines changed

common/CMakeLists.txt

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -23,29 +23,19 @@ 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_SOURCE_DIR}/build-info.cpp")
37+
configure_file(${TEMPLATE_FILE} ${OUTPUT_FILE})
38+
4939
set(TARGET build_info)
5040
add_library(${TARGET} OBJECT build-info.cpp)
5141
if (BUILD_SHARED_LIBS)

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

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

0 commit comments

Comments
 (0)