summaryrefslogtreecommitdiff
path: root/scripts/build-info.cmake
diff options
context:
space:
mode:
authorcebtenzzre <cebtenzzre@gmail.com>2023-11-02 02:50:16 -0400
committerGitHub <noreply@github.com>2023-11-02 08:50:16 +0200
commitb12fa0d1c13596869c512f49a526b979c94787cc (patch)
tree663ddc7bd68e32f219127839e0155a4acca21c53 /scripts/build-info.cmake
parent4d719a6d4e74b9a98e75f826f865f3153717d54b (diff)
build : link against build info instead of compiling against it (#3879)
* cmake : fix build when .git does not exist * cmake : simplify BUILD_INFO target * cmake : add missing dependencies on BUILD_INFO * build : link against build info instead of compiling against it * zig : make build info a .cpp source instead of a header Co-authored-by: Matheus C. França <matheus-catarino@hotmail.com> * cmake : revert change to CMP0115 --------- Co-authored-by: Matheus C. França <matheus-catarino@hotmail.com>
Diffstat (limited to 'scripts/build-info.cmake')
-rw-r--r--scripts/build-info.cmake30
1 files changed, 18 insertions, 12 deletions
diff --git a/scripts/build-info.cmake b/scripts/build-info.cmake
index c86ab437..73853dfa 100644
--- a/scripts/build-info.cmake
+++ b/scripts/build-info.cmake
@@ -1,5 +1,5 @@
-set(TEMPLATE_FILE "${CMAKE_CURRENT_SOURCE_DIR}/scripts/build-info.h.in")
-set(HEADER_FILE "${CMAKE_CURRENT_SOURCE_DIR}/build-info.h")
+set(TEMPLATE_FILE "${CMAKE_CURRENT_SOURCE_DIR}/common/build-info.cpp.in")
+set(OUTPUT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/common/build-info.cpp")
set(BUILD_NUMBER 0)
set(BUILD_COMMIT "unknown")
set(BUILD_COMPILER "unknown")
@@ -24,15 +24,21 @@ if(Git_FOUND)
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
OUTPUT_VARIABLE HEAD
OUTPUT_STRIP_TRAILING_WHITESPACE
+ RESULT_VARIABLE RES
)
+ if (RES EQUAL 0)
+ set(BUILD_COMMIT ${HEAD})
+ endif()
execute_process(
COMMAND ${GIT_EXECUTABLE} rev-list --count HEAD
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
OUTPUT_VARIABLE COUNT
OUTPUT_STRIP_TRAILING_WHITESPACE
+ RESULT_VARIABLE RES
)
- set(BUILD_COMMIT ${HEAD})
- set(BUILD_NUMBER ${COUNT})
+ if (RES EQUAL 0)
+ set(BUILD_NUMBER ${COUNT})
+ endif()
endif()
if(MSVC)
@@ -53,22 +59,22 @@ else()
set(BUILD_TARGET ${OUT})
endif()
-# Only write the header if it's changed to prevent unnecessary recompilation
-if(EXISTS ${HEADER_FILE})
- file(READ ${HEADER_FILE} CONTENTS)
- string(REGEX MATCH "BUILD_COMMIT \"([^\"]*)\"" _ ${CONTENTS})
+# Only write the build info if it changed
+if(EXISTS ${OUTPUT_FILE})
+ file(READ ${OUTPUT_FILE} CONTENTS)
+ string(REGEX MATCH "LLAMA_COMMIT = \"([^\"]*)\";" _ ${CONTENTS})
set(OLD_COMMIT ${CMAKE_MATCH_1})
- string(REGEX MATCH "BUILD_COMPILER \"([^\"]*)\"" _ ${CONTENTS})
+ string(REGEX MATCH "LLAMA_COMPILER = \"([^\"]*)\";" _ ${CONTENTS})
set(OLD_COMPILER ${CMAKE_MATCH_1})
- string(REGEX MATCH "BUILD_TARGET \"([^\"]*)\"" _ ${CONTENTS})
+ string(REGEX MATCH "LLAMA_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} ${OUTPUT_FILE})
endif()
else()
- configure_file(${TEMPLATE_FILE} ${HEADER_FILE})
+ configure_file(${TEMPLATE_FILE} ${OUTPUT_FILE})
endif()