examples : add compiler version and target to build info
This commit is contained in:
parent
98a6004aa1
commit
64c87bfe8c
12 changed files with 67 additions and 21 deletions
2
Makefile
2
Makefile
|
@ -487,7 +487,7 @@ metal: examples/metal/metal.cpp ggml.o $(OBJS)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
build-info.h: $(wildcard .git/index) scripts/build-info.sh
|
build-info.h: $(wildcard .git/index) scripts/build-info.sh
|
||||||
@sh scripts/build-info.sh > $@.tmp
|
@sh scripts/build-info.sh $(CC) > $@.tmp
|
||||||
@if ! cmp -s $@.tmp $@; then \
|
@if ! cmp -s $@.tmp $@; then \
|
||||||
mv $@.tmp $@; \
|
mv $@.tmp $@; \
|
||||||
else \
|
else \
|
||||||
|
|
|
@ -21,8 +21,9 @@
|
||||||
#define DIRECTORY_SEPARATOR '/'
|
#define DIRECTORY_SEPARATOR '/'
|
||||||
#endif // _WIN32
|
#endif // _WIN32
|
||||||
|
|
||||||
#define print_build_info() do {
|
#define print_build_info() do { \
|
||||||
fprintf(stderr, "%s: build = %d (%s)\n", __func__, BUILD_NUMBER, BUILD_COMMIT); \
|
fprintf(stderr, "%s: build = %d (%s)\n", __func__, BUILD_NUMBER, BUILD_COMMIT); \
|
||||||
|
fprintf(stderr, "%s: built with %s for %s\n", __func__, BUILD_COMPILER, BUILD_TARGET); \
|
||||||
} while(0)
|
} while(0)
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
|
@ -3,6 +3,3 @@ add_executable(${TARGET} beam-search.cpp)
|
||||||
install(TARGETS ${TARGET} RUNTIME)
|
install(TARGETS ${TARGET} RUNTIME)
|
||||||
target_link_libraries(${TARGET} PRIVATE common llama ${CMAKE_THREAD_LIBS_INIT})
|
target_link_libraries(${TARGET} PRIVATE common llama ${CMAKE_THREAD_LIBS_INIT})
|
||||||
target_compile_features(${TARGET} PRIVATE cxx_std_11)
|
target_compile_features(${TARGET} PRIVATE cxx_std_11)
|
||||||
if(TARGET BUILD_INFO)
|
|
||||||
add_dependencies(${TARGET} BUILD_INFO)
|
|
||||||
endif()
|
|
||||||
|
|
|
@ -2,7 +2,7 @@ set(TARGET benchmark)
|
||||||
add_executable(${TARGET} benchmark-matmult.cpp)
|
add_executable(${TARGET} benchmark-matmult.cpp)
|
||||||
install(TARGETS ${TARGET} RUNTIME)
|
install(TARGETS ${TARGET} RUNTIME)
|
||||||
target_link_libraries(${TARGET} PRIVATE llama ${CMAKE_THREAD_LIBS_INIT})
|
target_link_libraries(${TARGET} PRIVATE llama ${CMAKE_THREAD_LIBS_INIT})
|
||||||
target_include_directories(${TARGET} PRIVATE ../common)
|
target_include_directories(${TARGET} PRIVATE ../../common)
|
||||||
target_compile_features(${TARGET} PRIVATE cxx_std_11)
|
target_compile_features(${TARGET} PRIVATE cxx_std_11)
|
||||||
if(TARGET BUILD_INFO)
|
if(TARGET BUILD_INFO)
|
||||||
add_dependencies(${TARGET} BUILD_INFO)
|
add_dependencies(${TARGET} BUILD_INFO)
|
||||||
|
|
|
@ -1,8 +1,7 @@
|
||||||
set(TARGET embdinput)
|
set(TARGET embdinput)
|
||||||
add_library(${TARGET} embd-input-lib.cpp embd-input.h)
|
add_library(${TARGET} embd-input-lib.cpp embd-input.h)
|
||||||
install(TARGETS ${TARGET} LIBRARY)
|
install(TARGETS ${TARGET} LIBRARY)
|
||||||
target_link_libraries(${TARGET} PRIVATE llama ${CMAKE_THREAD_LIBS_INIT})
|
target_link_libraries(${TARGET} PRIVATE common llama ${CMAKE_THREAD_LIBS_INIT})
|
||||||
target_include_directories(${TARGET} PRIVATE ../common)
|
|
||||||
target_compile_features(${TARGET} PRIVATE cxx_std_11)
|
target_compile_features(${TARGET} PRIVATE cxx_std_11)
|
||||||
if(TARGET BUILD_INFO)
|
if(TARGET BUILD_INFO)
|
||||||
add_dependencies(${TARGET} BUILD_INFO)
|
add_dependencies(${TARGET} BUILD_INFO)
|
||||||
|
@ -11,8 +10,7 @@ endif()
|
||||||
set(TARGET embd-input-test)
|
set(TARGET embd-input-test)
|
||||||
add_executable(${TARGET} embd-input-test.cpp)
|
add_executable(${TARGET} embd-input-test.cpp)
|
||||||
install(TARGETS ${TARGET} RUNTIME)
|
install(TARGETS ${TARGET} RUNTIME)
|
||||||
target_link_libraries(${TARGET} PRIVATE llama embdinput ${CMAKE_THREAD_LIBS_INIT})
|
target_link_libraries(${TARGET} PRIVATE common llama embdinput ${CMAKE_THREAD_LIBS_INIT})
|
||||||
target_include_directories(${TARGET} PRIVATE ../common)
|
|
||||||
target_compile_features(${TARGET} PRIVATE cxx_std_11)
|
target_compile_features(${TARGET} PRIVATE cxx_std_11)
|
||||||
if(TARGET BUILD_INFO)
|
if(TARGET BUILD_INFO)
|
||||||
add_dependencies(${TARGET} BUILD_INFO)
|
add_dependencies(${TARGET} BUILD_INFO)
|
||||||
|
|
|
@ -160,6 +160,7 @@ int main(int argc, char ** argv) {
|
||||||
}
|
}
|
||||||
|
|
||||||
LOG_TEE("%s: build = %d (%s)\n", __func__, BUILD_NUMBER, BUILD_COMMIT);
|
LOG_TEE("%s: build = %d (%s)\n", __func__, BUILD_NUMBER, BUILD_COMMIT);
|
||||||
|
LOG_TEE("%s: built with %s for %s\n", __func__, BUILD_COMPILER, BUILD_TARGET);
|
||||||
|
|
||||||
if (params.seed == LLAMA_DEFAULT_SEED) {
|
if (params.seed == LLAMA_DEFAULT_SEED) {
|
||||||
params.seed = time(NULL);
|
params.seed = time(NULL);
|
||||||
|
|
|
@ -2,5 +2,5 @@ set(TARGET quantize-stats)
|
||||||
add_executable(${TARGET} quantize-stats.cpp)
|
add_executable(${TARGET} quantize-stats.cpp)
|
||||||
install(TARGETS ${TARGET} RUNTIME)
|
install(TARGETS ${TARGET} RUNTIME)
|
||||||
target_link_libraries(${TARGET} PRIVATE llama ${CMAKE_THREAD_LIBS_INIT})
|
target_link_libraries(${TARGET} PRIVATE llama ${CMAKE_THREAD_LIBS_INIT})
|
||||||
target_include_directories(${TARGET} PRIVATE ../common)
|
target_include_directories(${TARGET} PRIVATE ../../common)
|
||||||
target_compile_features(${TARGET} PRIVATE cxx_std_11)
|
target_compile_features(${TARGET} PRIVATE cxx_std_11)
|
||||||
|
|
|
@ -2,7 +2,7 @@ set(TARGET quantize)
|
||||||
add_executable(${TARGET} quantize.cpp)
|
add_executable(${TARGET} quantize.cpp)
|
||||||
install(TARGETS ${TARGET} RUNTIME)
|
install(TARGETS ${TARGET} RUNTIME)
|
||||||
target_link_libraries(${TARGET} PRIVATE llama ${CMAKE_THREAD_LIBS_INIT})
|
target_link_libraries(${TARGET} PRIVATE llama ${CMAKE_THREAD_LIBS_INIT})
|
||||||
target_include_directories(${TARGET} PRIVATE ../common)
|
target_include_directories(${TARGET} PRIVATE ../../common)
|
||||||
target_compile_features(${TARGET} PRIVATE cxx_std_11)
|
target_compile_features(${TARGET} PRIVATE cxx_std_11)
|
||||||
if(TARGET BUILD_INFO)
|
if(TARGET BUILD_INFO)
|
||||||
add_dependencies(${TARGET} BUILD_INFO)
|
add_dependencies(${TARGET} BUILD_INFO)
|
||||||
|
|
|
@ -1,8 +1,5 @@
|
||||||
set(TARGET simple)
|
set(TARGET simple)
|
||||||
add_executable(${TARGET} simple.cpp)
|
add_executable(${TARGET} simple.cpp)
|
||||||
install(TARGETS ${TARGET} RUNTIME)
|
install(TARGETS ${TARGET} RUNTIME)
|
||||||
target_link_libraries(${TARGET} PRIVATE llama ${CMAKE_THREAD_LIBS_INIT})
|
target_link_libraries(${TARGET} PRIVATE common llama ${CMAKE_THREAD_LIBS_INIT})
|
||||||
target_compile_features(${TARGET} PRIVATE cxx_std_11)
|
target_compile_features(${TARGET} PRIVATE cxx_std_11)
|
||||||
if(TARGET BUILD_INFO)
|
|
||||||
add_dependencies(${TARGET} BUILD_INFO)
|
|
||||||
endif()
|
|
||||||
|
|
|
@ -2,6 +2,8 @@ set(TEMPLATE_FILE "${CMAKE_CURRENT_SOURCE_DIR}/scripts/build-info.h.in")
|
||||||
set(HEADER_FILE "${CMAKE_CURRENT_SOURCE_DIR}/build-info.h")
|
set(HEADER_FILE "${CMAKE_CURRENT_SOURCE_DIR}/build-info.h")
|
||||||
set(BUILD_NUMBER 0)
|
set(BUILD_NUMBER 0)
|
||||||
set(BUILD_COMMIT "unknown")
|
set(BUILD_COMMIT "unknown")
|
||||||
|
set(BUILD_COMPILER "unknown")
|
||||||
|
set(BUILD_TARGET "unknown")
|
||||||
|
|
||||||
# Look for git
|
# Look for git
|
||||||
find_package(Git)
|
find_package(Git)
|
||||||
|
@ -41,11 +43,45 @@ if(Git_FOUND)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(GIT_HEAD_RESULT EQUAL 0 AND GIT_COUNT_RESULT EQUAL 0)
|
||||||
|
set(BUILD_COMMIT ${HEAD})
|
||||||
|
set(BUILD_NUMBER ${COUNT})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
execute_process(
|
||||||
|
COMMAND sh -c "$@ --version | head -1" _ ${CMAKE_C_COMPILER}
|
||||||
|
OUTPUT_VARIABLE OUT
|
||||||
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||||
|
RESULT_VARIABLE RES
|
||||||
|
)
|
||||||
|
if (RES EQUAL 0)
|
||||||
|
set(BUILD_COMPILER ${OUT})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
execute_process(
|
||||||
|
COMMAND ${CMAKE_C_COMPILER} -dumpmachine
|
||||||
|
OUTPUT_VARIABLE OUT
|
||||||
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||||
|
RESULT_VARIABLE RES
|
||||||
|
)
|
||||||
|
if (RES EQUAL 0)
|
||||||
|
set(BUILD_TARGET ${OUT})
|
||||||
|
endif()
|
||||||
|
|
||||||
# Only write the header if it's changed to prevent unnecessary recompilation
|
# Only write the header if it's changed to prevent unnecessary recompilation
|
||||||
if(EXISTS ${HEADER_FILE})
|
if(EXISTS ${HEADER_FILE})
|
||||||
file(STRINGS ${HEADER_FILE} CONTENTS REGEX "BUILD_COMMIT \"([^\"]*)\"")
|
file(READ ${HEADER_FILE} CONTENTS)
|
||||||
list(GET CONTENTS 0 EXISTING)
|
string(REGEX MATCH "BUILD_COMMIT \"([^\"]*)\"" _ ${CONTENTS})
|
||||||
if(NOT EXISTING STREQUAL "#define BUILD_COMMIT \"${BUILD_COMMIT}\"")
|
set(OLD_COMMIT ${CMAKE_MATCH_1})
|
||||||
|
string(REGEX MATCH "BUILD_COMPILER \"([^\"]*)\"" _ ${CONTENTS})
|
||||||
|
set(OLD_COMPILER ${CMAKE_MATCH_1})
|
||||||
|
string(REGEX MATCH "BUILD_TARGET \"([^\"]*)\"" _ ${CONTENTS})
|
||||||
|
set(OLD_TARGET ${CMAKE_MATCH_1})
|
||||||
|
if (
|
||||||
|
NOT OLD_COMMIT STREQUAL BUILD_COMMIT OR
|
||||||
|
NOT OLD_COMPILER STREQUAL BUILD_COMPILER OR
|
||||||
|
NOT OLD_TARGET STREQUAL BUILD_TARGET
|
||||||
|
)
|
||||||
configure_file(${TEMPLATE_FILE} ${HEADER_FILE})
|
configure_file(${TEMPLATE_FILE} ${HEADER_FILE})
|
||||||
endif()
|
endif()
|
||||||
else()
|
else()
|
||||||
|
|
|
@ -3,5 +3,7 @@
|
||||||
|
|
||||||
#define BUILD_NUMBER @BUILD_NUMBER@
|
#define BUILD_NUMBER @BUILD_NUMBER@
|
||||||
#define BUILD_COMMIT "@BUILD_COMMIT@"
|
#define BUILD_COMMIT "@BUILD_COMMIT@"
|
||||||
|
#define BUILD_COMPILER "@BUILD_COMPILER@"
|
||||||
|
#define BUILD_TARGET "@BUILD_TARGET@"
|
||||||
|
|
||||||
#endif // BUILD_INFO_H
|
#endif // BUILD_INFO_H
|
||||||
|
|
|
@ -1,7 +1,11 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
CC=$1
|
||||||
|
|
||||||
build_number="0"
|
build_number="0"
|
||||||
build_commit="unknown"
|
build_commit="unknown"
|
||||||
|
build_compiler="unknown"
|
||||||
|
build_target="unknown"
|
||||||
|
|
||||||
# git is broken on WSL so we need to strip extra newlines
|
# git is broken on WSL so we need to strip extra newlines
|
||||||
if out=$(git rev-list --count HEAD | tr -d '\n'); then
|
if out=$(git rev-list --count HEAD | tr -d '\n'); then
|
||||||
|
@ -12,10 +16,20 @@ if out=$(git rev-parse --short HEAD | tr -d '\n'); then
|
||||||
build_commit=$out
|
build_commit=$out
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if out=$($CC --version | head -1); then
|
||||||
|
build_compiler=$out
|
||||||
|
fi
|
||||||
|
|
||||||
|
if out=$($CC -dumpmachine); then
|
||||||
|
build_target=$out
|
||||||
|
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_COMMIT \"$build_commit\""
|
echo "#define BUILD_COMMIT \"$build_commit\""
|
||||||
|
echo "#define BUILD_COMPILER \"$build_compiler\""
|
||||||
|
echo "#define BUILD_TARGET \"$build_target\""
|
||||||
echo
|
echo
|
||||||
echo "#endif // BUILD_INFO_H"
|
echo "#endif // BUILD_INFO_H"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue