]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/commitdiff
fix build-info.h for git submodules (#1289)
authorkuvaus <redacted>
Wed, 3 May 2023 00:43:43 +0000 (03:43 +0300)
committerGitHub <redacted>
Wed, 3 May 2023 00:43:43 +0000 (02:43 +0200)
* make git build info work with submodules

---------

Co-authored-by: Green Sky <redacted>
CMakeLists.txt
scripts/build-info.cmake
scripts/build-info.h.in [new file with mode: 0644]

index 53d48a6c55e12d38010f11f41bce99c906dbaa97..48e3238dfa52e44706f39ae07b3322c85676cb53 100644 (file)
@@ -76,21 +76,19 @@ option(LLAMA_BUILD_EXAMPLES         "llama: build examples" ${LLAMA_STANDALONE})
 # Build info header
 #
 
-# Write header template to binary dir to keep source directory clean
-file(WRITE "${CMAKE_BINARY_DIR}/BUILD_INFO.h.in" "\
-#ifndef BUILD_INFO_H\n\
-#define BUILD_INFO_H\n\
-\n\
-#define BUILD_NUMBER @BUILD_NUMBER@\n\
-#define BUILD_COMMIT \"@BUILD_COMMIT@\"\n\
-\n\
-#endif // BUILD_INFO_H\n\
-")
-
 # Generate initial build-info.h
 include(${CMAKE_CURRENT_SOURCE_DIR}/scripts/build-info.cmake)
 
 if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git")
+    set(GIT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/.git")
+
+    # Is git submodule
+    if(NOT IS_DIRECTORY "${GIT_DIR}")
+        file(READ ${GIT_DIR} REAL_GIT_DIR_LINK)
+        string(REGEX REPLACE "gitdir: (.*)\n$" "\\1" REAL_GIT_DIR ${REAL_GIT_DIR_LINK})
+        set(GIT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/${REAL_GIT_DIR}")
+    endif()
+
     # Add a custom target for build-info.h
     add_custom_target(BUILD_INFO ALL DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/build-info.h")
 
@@ -100,7 +98,7 @@ if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git")
         COMMENT "Generating build details from Git"
         COMMAND ${CMAKE_COMMAND} -P "${CMAKE_CURRENT_SOURCE_DIR}/scripts/build-info.cmake"
         WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
-        DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/.git/index"
+        DEPENDS "${GIT_DIR}/index"
         VERBATIM
     )
 else()
index fb46ed2b5939ef0c396137ecb926911885c4deee..5023b77abf95e5a3a1a40fa5233bbd9322fb79df 100644 (file)
@@ -1,4 +1,4 @@
-set(TEMPLATE_FILE "${CMAKE_BINARY_DIR}/BUILD_INFO.h.in")
+set(TEMPLATE_FILE "${CMAKE_CURRENT_SOURCE_DIR}/scripts/build-info.h.in")
 set(HEADER_FILE "${CMAKE_CURRENT_SOURCE_DIR}/build-info.h")
 set(BUILD_NUMBER 0)
 set(BUILD_COMMIT "unknown")
diff --git a/scripts/build-info.h.in b/scripts/build-info.h.in
new file mode 100644 (file)
index 0000000..75d1e16
--- /dev/null
@@ -0,0 +1,7 @@
+#ifndef BUILD_INFO_H
+#define BUILD_INFO_H
+
+#define BUILD_NUMBER @BUILD_NUMBER@
+#define BUILD_COMMIT "@BUILD_COMMIT@"
+
+#endif // BUILD_INFO_H