Skip to content

Commit e0a69da

Browse files
committed
Fix generate_version_cpp target
Create version.cpp in the src dir, where it is picked up. And not in the build dir. Update only if different to avoid needless recompilations. Repro: check bin/cbmc --version for the correct version.
1 parent 9737d59 commit e0a69da

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

src/util/CMakeLists.txt

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,11 @@ if(GIT_FOUND)
1414
OUTPUT_STRIP_TRAILING_WHITESPACE
1515
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
1616
)
17-
configure_file(\${CUR}/version.cpp.in version.cpp)
17+
configure_file(${CMAKE_CURRENT_BINARY_DIR}/version.cpp.in ${CMAKE_CURRENT_BINARY_DIR}/version.cpp.tmp)
18+
execute_process(
19+
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_BINARY_DIR}/version.cpp.tmp version.cpp
20+
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
21+
)
1822
"
1923
)
2024
else()
@@ -24,7 +28,11 @@ else()
2428
config_inc_v REGEX \"CBMC_VERSION *= *[0-9\.]+\")
2529
string(REGEX REPLACE \"^CBMC_VERSION *= *\" \"\" CBMC_RELEASE \${config_inc_v})
2630
set(GIT_INFO \"n/a\")
27-
configure_file(\${CUR}/version.cpp.in version.cpp)
31+
configure_file(${CMAKE_CURRENT_BINARY_DIR}/version.cpp.in ${CMAKE_CURRENT_BINARY_DIR}/version.cpp.tmp)
32+
execute_process(
33+
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_BINARY_DIR}/version.cpp.tmp version.cpp
34+
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
35+
)
2836
"
2937
)
3038
endif()
@@ -33,10 +41,9 @@ file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/version.cpp.in
3341
"const char *CBMC_VERSION=\"@CBMC_RELEASE@ (@GIT_INFO@)\";\n")
3442
add_custom_target(
3543
generate_version_cpp
36-
BYPRODUCTS version.cpp
44+
BYPRODUCTS ${CBMC_SOURCE_DIR}/util/version.cpp
3745
COMMAND ${CMAKE_COMMAND}
3846
-D CBMC_SOURCE_DIR=${CBMC_SOURCE_DIR}
39-
-D CUR=${CMAKE_CURRENT_BINARY_DIR}
4047
-P ${CMAKE_BINARY_DIR}/version.cmake
4148
)
4249

0 commit comments

Comments
 (0)