"build (hash)" and "CMAKE_SOURCE_DIR" changes

This commit is contained in:
Danny Daemonic 2023-04-29 09:09:51 -07:00
parent fbcfc8446c
commit db0b8357b6
3 changed files with 12 additions and 16 deletions

View file

@ -83,7 +83,7 @@ set(COUNT 0)
find_package(Git) find_package(Git)
if(Git_FOUND) if(Git_FOUND)
execute_process( execute_process(
COMMAND \${GIT_EXECUTABLE} rev-parse --abbrev-ref HEAD COMMAND \${GIT_EXECUTABLE} rev-parse HEAD
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE TEMP_HEAD OUTPUT_VARIABLE TEMP_HEAD
OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_STRIP_TRAILING_WHITESPACE
@ -102,7 +102,7 @@ if(Git_FOUND)
endif() endif()
endif() endif()
file(WRITE \"${CMAKE_SOURCE_DIR}/build-info.h\" \"#pragma once\\n#define BUILD_NUMBER \${COUNT}\\n#define BUILD_BRANCH \\\"\${HEAD}\\\"\\n\") file(WRITE \"${CMAKE_SOURCE_DIR}/build-info.h\" \"#pragma once\\n#define BUILD_NUMBER \${COUNT}\\n#define BUILD_COMMIT \\\"\${HEAD}\\\"\\n\")
") ")
# Call the script to generate build-info.h initially # Call the script to generate build-info.h initially
@ -110,16 +110,16 @@ execute_process(
COMMAND ${CMAKE_COMMAND} -DGIT_EXECUTABLE=${GIT_EXECUTABLE} -P ${CMAKE_BINARY_DIR}/BUILD_INFO.cmake COMMAND ${CMAKE_COMMAND} -DGIT_EXECUTABLE=${GIT_EXECUTABLE} -P ${CMAKE_BINARY_DIR}/BUILD_INFO.cmake
) )
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git") if(EXISTS "${CMAKE_SOURCE_DIR}/.git")
# Add a custom target to regenerate build-info.h when .git/index changes # Add a custom target to regenerate build-info.h when .git/index changes
add_custom_target(BUILD_INFO ALL DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/build-info.h") add_custom_target(BUILD_INFO ALL DEPENDS "${CMAKE_SOURCE_DIR}/build-info.h")
# Add a custom command to generate build-info.h when .git/index changes # Add a custom command to generate build-info.h when .git/index changes
add_custom_command( add_custom_command(
OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/build-info.h" OUTPUT "${CMAKE_SOURCE_DIR}/build-info.h"
COMMENT "Updating build-info.h" COMMENT "Updating build-info.h"
COMMAND ${CMAKE_COMMAND} -DGIT_EXECUTABLE=${GIT_EXECUTABLE} -P ${CMAKE_BINARY_DIR}/BUILD_INFO.cmake COMMAND ${CMAKE_COMMAND} -DGIT_EXECUTABLE=${GIT_EXECUTABLE} -P ${CMAKE_BINARY_DIR}/BUILD_INFO.cmake
DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/.git/index" DEPENDS "${CMAKE_SOURCE_DIR}/.git/index"
VERBATIM VERBATIM
) )
endif() endif()

View file

@ -188,16 +188,16 @@ clean:
build-info.h: $(GIT_INDEX) build-info.h: $(GIT_INDEX)
@BUILD_NUMBER=`git rev-list HEAD --count 2>/dev/null`;\ @BUILD_NUMBER=`git rev-list HEAD --count 2>/dev/null`;\
BUILD_BRANCH=`git rev-parse --abbrev-ref HEAD 2>/dev/null`;\ BUILD_COMMIT=`git rev-parse HEAD 2>/dev/null`;\
if [ -z "$$BUILD_NUMBER" ] || [ -z "$$BUILD_BRANCH" ]; then\ if [ -z "$$BUILD_NUMBER" ] || [ -z "$$BUILD_COMMIT" ]; then\
BUILD_NUMBER="0";\ BUILD_NUMBER="0";\
BUILD_BRANCH="unknown";\ BUILD_COMMIT="unknown";\
fi;\ fi;\
echo "#ifndef BUILD_INFO_H" > $@;\ echo "#ifndef BUILD_INFO_H" > $@;\
echo "#define BUILD_INFO_H" >> $@;\ echo "#define BUILD_INFO_H" >> $@;\
echo "" >> $@;\ echo "" >> $@;\
echo "#define BUILD_NUMBER $$BUILD_NUMBER" >> $@;\ echo "#define BUILD_NUMBER $$BUILD_NUMBER" >> $@;\
echo "#define BUILD_BRANCH \"$$BUILD_BRANCH\"" >> $@;\ echo "#define BUILD_COMMIT \"$$BUILD_COMMIT\"" >> $@;\
echo "" >> $@;\ echo "" >> $@;\
echo "#endif // BUILD_INFO_H" >> $@; echo "#endif // BUILD_INFO_H" >> $@;

View file

@ -53,6 +53,8 @@ int main(int argc, char ** argv) {
return 1; return 1;
} }
fprintf(stderr, "%s: build = %d (%s)\n", __func__, BUILD_NUMBER, BUILD_COMMIT);
// save choice to use color for later // save choice to use color for later
// (note for later: this is a slightly awkward choice) // (note for later: this is a slightly awkward choice)
con_st.use_color = params.use_color; con_st.use_color = params.use_color;
@ -82,12 +84,6 @@ int main(int argc, char ** argv) {
"expect poor results\n", __func__, params.n_ctx); "expect poor results\n", __func__, params.n_ctx);
} }
if (strcmp(BUILD_BRANCH, "master") == 0) {
fprintf(stderr, "%s: build = %d\n", __func__, BUILD_NUMBER);
} else {
fprintf(stderr, "%s: build = %s-%d\n", __func__, BUILD_BRANCH, BUILD_NUMBER);
}
if (params.seed <= 0) { if (params.seed <= 0) {
params.seed = time(NULL); params.seed = time(NULL);
} }