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) if(Git_FOUND)
execute_process( execute_process(
COMMAND \${GIT_EXECUTABLE} rev-parse HEAD COMMAND \${GIT_EXECUTABLE} rev-parse HEAD
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
OUTPUT_VARIABLE TEMP_HEAD OUTPUT_VARIABLE TEMP_HEAD
OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_STRIP_TRAILING_WHITESPACE
RESULT_VARIABLE GIT_HEAD_RESULT RESULT_VARIABLE GIT_HEAD_RESULT
) )
execute_process( execute_process(
COMMAND \${GIT_EXECUTABLE} rev-list --count HEAD COMMAND \${GIT_EXECUTABLE} rev-list --count HEAD
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
OUTPUT_VARIABLE TEMP_COUNT OUTPUT_VARIABLE TEMP_COUNT
OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_STRIP_TRAILING_WHITESPACE
RESULT_VARIABLE GIT_COUNT_RESULT RESULT_VARIABLE GIT_COUNT_RESULT
@ -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_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 # 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_SOURCE_DIR}/.git") if(EXISTS "${CMAKE_CURRENT_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_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 a custom command to generate build-info.h when .git/index changes
add_custom_command( add_custom_command(
OUTPUT "${CMAKE_SOURCE_DIR}/build-info.h" OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/build-info.h"
COMMENT "Updating build-info.h" COMMENT "Generating build details from Git"
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_SOURCE_DIR}/.git/index" DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/.git/index"
VERBATIM VERBATIM
) )
endif() endif()

View file

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