Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 13 additions & 8 deletions scripts/cmake/version.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -60,31 +60,36 @@ if(NOT SOF_TAG)
endif()

# Calculate source hash value, used to check ldc file and firmware compatibility
if(EXISTS ${CMAKE_SOURCE_DIR}/.git/)
if(EXISTS ${SOF_ROOT_SOURCE_DIRECTORY}/.git/)
set(SOURCE_HASH_DIR "${SOF_ROOT_BINARY_DIRECTORY}/source_hash")
file(MAKE_DIRECTORY ${SOURCE_HASH_DIR})
# list tracked files from src directory
execute_process(COMMAND git ls-files src
WORKING_DIRECTORY ${SOF_ROOT_SOURCE_DIRECTORY}
OUTPUT_FILE tracked_file_list
OUTPUT_FILE "${SOURCE_HASH_DIR}/tracked_file_list"
)
# calculate hash of each listed files (from file version saved in file system)
execute_process(COMMAND git hash-object --stdin-paths
WORKING_DIRECTORY ${SOF_ROOT_SOURCE_DIRECTORY}
INPUT_FILE tracked_file_list
OUTPUT_FILE tracked_file_hash_list
INPUT_FILE "${SOURCE_HASH_DIR}/tracked_file_list"
OUTPUT_FILE "${SOURCE_HASH_DIR}/tracked_file_hash_list"
)
# then calculate single hash of previously calculated hash list
execute_process(COMMAND git hash-object --stdin
WORKING_DIRECTORY ${SOF_ROOT_SOURCE_DIRECTORY}
OUTPUT_STRIP_TRAILING_WHITESPACE
INPUT_FILE tracked_file_hash_list
INPUT_FILE "${SOURCE_HASH_DIR}/tracked_file_hash_list"
OUTPUT_VARIABLE SOF_SRC_HASH_LONG
)
file(REMOVE tracked_file_list tracked_file_hash_list)
string(SUBSTRING ${SOF_SRC_HASH_LONG} 0 8 SOF_SRC_HASH)
message(STATUS "Source content hash: ${SOF_SRC_HASH}")
else()
string(SUBSTRING ${GIT_LOG_HASH} 0 8 SOF_SRC_HASH)
message(WARNING "Source content hash can't be calculated, use GIT_LOG_HASH")
if("${GIT_LOG_HASH}")
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is broken, fix submitted in PR #5129

string(SUBSTRING "${GIT_LOG_HASH}" 0 8 SOF_SRC_HASH)
else()
set(SOF_SRC_HASH "0")
endif()
message(WARNING "Source content hash not computed without git, using GIT_LOG_HASH instead")
endif()

# for SOF_BUILD
Expand Down