Stop commit hash being a global compiler definition to reduce build time

This commit is contained in:
sentientstardust
2026-05-13 04:41:33 +01:00
parent aea4282633
commit cf129f9ded
4 changed files with 13 additions and 5 deletions

View File

@@ -85,6 +85,7 @@ else ()
endif ()
find_package(Git)
set(GIT_COMMIT_HASH "0000000")
if(DEFINED ENV{git_commit_hash} AND NOT "$ENV{git_commit_hash}" STREQUAL "")
message(STATUS "Specified git commit hash: $ENV{git_commit_hash}")
if(GIT_FOUND AND EXISTS "${CMAKE_SOURCE_DIR}/.git")
@@ -99,7 +100,6 @@ if(DEFINED ENV{git_commit_hash} AND NOT "$ENV{git_commit_hash}" STREQUAL "")
# No .git directory (e.g., Flatpak sandbox) — truncate directly
string(SUBSTRING "$ENV{git_commit_hash}" 0 7 GIT_COMMIT_HASH)
endif()
add_definitions("-DGIT_COMMIT_HASH=\"${GIT_COMMIT_HASH}\"")
elseif(GIT_FOUND AND EXISTS "${CMAKE_SOURCE_DIR}/.git")
# Check current Git commit hash
execute_process(
@@ -108,7 +108,6 @@ elseif(GIT_FOUND AND EXISTS "${CMAKE_SOURCE_DIR}/.git")
OUTPUT_VARIABLE GIT_COMMIT_HASH
OUTPUT_STRIP_TRAILING_WHITESPACE
)
add_definitions("-DGIT_COMMIT_HASH=\"${GIT_COMMIT_HASH}\"")
endif()
if(DEFINED ENV{SLIC3R_STATIC})

View File

@@ -6,6 +6,10 @@ if(NOT DEFINED OUTPUT)
message(FATAL_ERROR "OUTPUT is required")
endif()
if(NOT DEFINED GIT_COMMIT_HASH)
set(GIT_COMMIT_HASH "0000000")
endif()
file(STRINGS "${INPUT}" SOFTFEVER_VERSION LIMIT_COUNT 1)
string(STRIP "${SOFTFEVER_VERSION}" SOFTFEVER_VERSION)
@@ -19,6 +23,11 @@ const char* softfever_version()
return "@SOFTFEVER_VERSION@";
}
const char* git_commit_hash()
{
return "@GIT_COMMIT_HASH@";
}
} // namespace Slic3r
]=])
string(CONFIGURE "${CONTENT}" CONTENT @ONLY)

View File

@@ -14,6 +14,7 @@ add_custom_command(
COMMAND ${CMAKE_COMMAND}
"-DINPUT=${SOFTFEVER_VERSION_FILE}"
"-DOUTPUT=${LIBSLIC3R_VERSION_CPP}"
"-DGIT_COMMIT_HASH=${GIT_COMMIT_HASH}"
-P "${CMAKE_SOURCE_DIR}/cmake/GenerateSoftFeverVersion.cmake"
DEPENDS "${SOFTFEVER_VERSION_FILE}" "${CMAKE_SOURCE_DIR}/cmake/GenerateSoftFeverVersion.cmake"
VERBATIM

View File

@@ -5,10 +5,9 @@
#define SLIC3R_APP_KEY "@SLIC3R_APP_KEY@"
#define SLIC3R_VERSION "@SLIC3R_VERSION@"
namespace Slic3r { const char* softfever_version(); }
namespace Slic3r { const char* git_commit_hash(); }
#define SoftFever_VERSION (Slic3r::softfever_version())
#ifndef GIT_COMMIT_HASH
#define GIT_COMMIT_HASH "0000000" // 0000000 means uninitialized
#endif
#define GIT_COMMIT_HASH (Slic3r::git_commit_hash())
#define SLIC3R_BUILD_ID "@SLIC3R_BUILD_ID@"
//#define SLIC3R_RC_VERSION "@SLIC3R_VERSION@"
#define BBL_INTERNAL_TESTING @BBL_INTERNAL_TESTING@