Redo "CMAKE_CURRENT_SOURCE_DIR" and clearer build messages

This commit is contained in:
Danny Daemonic 2023-04-29 09:57:22 -07:00
parent db0b8357b6
commit eac5d689dc
2 changed files with 15 additions and 16 deletions

View file

@ -84,14 +84,14 @@ find_package(Git)
if(Git_FOUND)
execute_process(
COMMAND \${GIT_EXECUTABLE} rev-parse HEAD
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
WORKING_DIRECTORY ${CMAKE_CURRENT_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}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
OUTPUT_VARIABLE TEMP_COUNT
OUTPUT_STRIP_TRAILING_WHITESPACE
RESULT_VARIABLE GIT_COUNT_RESULT
@ -102,7 +102,7 @@ if(Git_FOUND)
endif()
endif()
file(WRITE \"${CMAKE_SOURCE_DIR}/build-info.h\" \"#pragma once\\n#define BUILD_NUMBER \${COUNT}\\n#define BUILD_COMMIT \\\"\${HEAD}\\\"\\n\")
file(WRITE \"${CMAKE_CURRENT_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
@ -110,16 +110,16 @@ execute_process(
COMMAND ${CMAKE_COMMAND} -DGIT_EXECUTABLE=${GIT_EXECUTABLE} -P ${CMAKE_BINARY_DIR}/BUILD_INFO.cmake
)
if(EXISTS "${CMAKE_SOURCE_DIR}/.git")
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_SOURCE_DIR}/build-info.h")
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_SOURCE_DIR}/build-info.h"
COMMENT "Updating build-info.h"
OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/build-info.h"
COMMENT "Generating build details from Git"
COMMAND ${CMAKE_COMMAND} -DGIT_EXECUTABLE=${GIT_EXECUTABLE} -P ${CMAKE_BINARY_DIR}/BUILD_INFO.cmake
DEPENDS "${CMAKE_SOURCE_DIR}/.git/index"
DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/.git/index"
VERBATIM
)
endif()

View file

@ -184,15 +184,15 @@ common.o: examples/common.cpp examples/common.h
$(CXX) $(CXXFLAGS) -c $< -o $@
clean:
rm -vf *.o main quantize quantize-stats perplexity embedding benchmark-matmult
rm -vf *.o main quantize quantize-stats perplexity embedding benchmark-matmult build-info.h
build-info.h: $(GIT_INDEX)
@BUILD_NUMBER=`git rev-list HEAD --count 2>/dev/null`;\
BUILD_COMMIT=`git rev-parse HEAD 2>/dev/null`;\
if [ -z "$$BUILD_NUMBER" ] || [ -z "$$BUILD_COMMIT" ]; then\
BUILD_NUMBER="0";\
BUILD_COMMIT="unknown";\
fi;\
@BUILD_NUMBER="0";\
BUILD_COMMIT="unknown";\
echo "git rev-list HEAD --count"; REV_LIST=`git rev-list HEAD --count`;\
if [ $$? -eq 0 ]; then BUILD_NUMBER=$$REV_LIST; fi;\
echo "git rev-parse HEAD"; REV_PARSE=`git rev-parse HEAD`;\
if [ $$? -eq 0 ]; then BUILD_COMMIT=$$REV_PARSE; fi;\
echo "#ifndef BUILD_INFO_H" > $@;\
echo "#define BUILD_INFO_H" >> $@;\
echo "" >> $@;\
@ -201,7 +201,6 @@ build-info.h: $(GIT_INDEX)
echo "" >> $@;\
echo "#endif // BUILD_INFO_H" >> $@;
main: examples/main/main.cpp build-info.h ggml.o llama.o common.o $(OBJS)
$(CXX) $(CXXFLAGS) $(filter-out build-info.h,$^) -o $@ $(LDFLAGS)
@echo