Add git-based build information for better issue tracking
This commit is contained in:
parent
7ff0dcd320
commit
8272f4aed8
5 changed files with 81 additions and 2 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -32,6 +32,7 @@ models/*
|
|||
/vdot
|
||||
/Pipfile
|
||||
|
||||
build-info.h
|
||||
arm_neon.h
|
||||
compile_commands.json
|
||||
|
||||
|
|
|
@ -72,6 +72,58 @@ option(LLAMA_CLBLAST "llama: use CLBlast"
|
|||
option(LLAMA_BUILD_TESTS "llama: build tests" ${LLAMA_STANDALONE})
|
||||
option(LLAMA_BUILD_EXAMPLES "llama: build examples" ${LLAMA_STANDALONE})
|
||||
|
||||
#
|
||||
# Build info header
|
||||
#
|
||||
|
||||
file(WRITE ${CMAKE_BINARY_DIR}/BUILD_INFO.cmake "\
|
||||
set(HEAD \"unknown\")
|
||||
set(COUNT 0)
|
||||
|
||||
find_package(Git)
|
||||
if(Git_FOUND)
|
||||
execute_process(
|
||||
COMMAND \${GIT_EXECUTABLE} rev-parse --abbrev-ref HEAD
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
OUTPUT_VARIABLE TEMP_HEAD
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
RESULT_VARIABLE GIT_HEAD_RESULT
|
||||
)
|
||||
execute_process(
|
||||
COMMAND \${GIT_EXECUTABLE} rev-list --count HEAD
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
OUTPUT_VARIABLE TEMP_COUNT
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
RESULT_VARIABLE GIT_COUNT_RESULT
|
||||
)
|
||||
if(GIT_HEAD_RESULT EQUAL 0 AND GIT_COUNT_RESULT EQUAL 0)
|
||||
set(HEAD \${TEMP_HEAD})
|
||||
set(COUNT \${TEMP_COUNT})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
file(WRITE \"${CMAKE_SOURCE_DIR}/build-info.h\" \"#pragma once\\n#define BUILD_NUMBER \${COUNT}\\n#define BUILD_BRANCH \\\"\${HEAD}\\\"\\n\")
|
||||
")
|
||||
|
||||
# Call the script to generate build-info.h initially
|
||||
execute_process(
|
||||
COMMAND ${CMAKE_COMMAND} -DGIT_EXECUTABLE=${GIT_EXECUTABLE} -P ${CMAKE_BINARY_DIR}/BUILD_INFO.cmake
|
||||
)
|
||||
|
||||
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git")
|
||||
# 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 a custom command to generate build-info.h when .git/index changes
|
||||
add_custom_command(
|
||||
OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/build-info.h"
|
||||
COMMENT "Updating build-info.h"
|
||||
COMMAND ${CMAKE_COMMAND} -DGIT_EXECUTABLE=${GIT_EXECUTABLE} -P ${CMAKE_BINARY_DIR}/BUILD_INFO.cmake
|
||||
DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/.git/index"
|
||||
VERBATIM
|
||||
)
|
||||
endif()
|
||||
|
||||
#
|
||||
# Compile flags
|
||||
#
|
||||
|
|
20
Makefile
20
Makefile
|
@ -16,6 +16,8 @@ endif
|
|||
CCV := $(shell $(CC) --version | head -n 1)
|
||||
CXXV := $(shell $(CXX) --version | head -n 1)
|
||||
|
||||
GIT_INDEX = $(wildcard .git/index)
|
||||
|
||||
# Mac OS + Arm can report x86_64
|
||||
# ref: https://github.com/ggerganov/whisper.cpp/issues/66#issuecomment-1282546789
|
||||
ifeq ($(UNAME_S),Darwin)
|
||||
|
@ -184,7 +186,23 @@ common.o: examples/common.cpp examples/common.h
|
|||
clean:
|
||||
rm -vf *.o main quantize quantize-stats perplexity embedding benchmark-matmult
|
||||
|
||||
main: examples/main/main.cpp ggml.o llama.o common.o $(OBJS)
|
||||
build-info.h: $(GIT_INDEX)
|
||||
@BUILD_NUMBER=`git rev-list HEAD --count 2>/dev/null`;\
|
||||
BUILD_BRANCH=`git rev-parse --abbrev-ref HEAD 2>/dev/null`;\
|
||||
if [ -z "$$BUILD_NUMBER" ] || [ -z "$$BUILD_BRANCH" ]; then\
|
||||
BUILD_NUMBER="0";\
|
||||
BUILD_BRANCH="unknown";\
|
||||
fi;\
|
||||
echo "#ifndef BUILD_INFO_H" > $@;\
|
||||
echo "#define BUILD_INFO_H" >> $@;\
|
||||
echo "" >> $@;\
|
||||
echo "#define BUILD_NUMBER $$BUILD_NUMBER" >> $@;\
|
||||
echo "#define BUILD_BRANCH \"$$BUILD_BRANCH\"" >> $@;\
|
||||
echo "" >> $@;\
|
||||
echo "#endif // BUILD_INFO_H" >> $@;
|
||||
|
||||
|
||||
main: examples/main/main.cpp build-info.h ggml.o llama.o common.o $(OBJS)
|
||||
$(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGS)
|
||||
@echo
|
||||
@echo '==== Run ./main -h for help. ===='
|
||||
|
|
|
@ -2,3 +2,4 @@ set(TARGET main)
|
|||
add_executable(${TARGET} main.cpp)
|
||||
target_link_libraries(${TARGET} PRIVATE common llama ${CMAKE_THREAD_LIBS_INIT})
|
||||
target_compile_features(${TARGET} PRIVATE cxx_std_11)
|
||||
add_dependencies(${TARGET} BUILD_INFO)
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
|
||||
#include "common.h"
|
||||
#include "llama.h"
|
||||
#include "build-info.h"
|
||||
|
||||
#include <cassert>
|
||||
#include <cinttypes>
|
||||
|
@ -81,11 +82,17 @@ int main(int argc, char ** argv) {
|
|||
"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) {
|
||||
params.seed = time(NULL);
|
||||
}
|
||||
|
||||
fprintf(stderr, "%s: seed = %d\n", __func__, params.seed);
|
||||
fprintf(stderr, "%s: seed = %d\n", __func__, params.seed);
|
||||
|
||||
std::mt19937 rng(params.seed);
|
||||
if (params.random_prompt) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue