File size: 1,607 Bytes
fb6457c | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | # Verify reproducible build by computing SHA-256 hashes
# Run from CMake: cmake -P verify_build.cmake
set(BIN_DIR "${CMAKE_BINARY_DIR}/bin")
set(MAIN_BIN "${BIN_DIR}/BSH_Engine.bin")
set(TEST_BIN "${BIN_DIR}/BSH_Test.bin")
message(STATUS "============================================")
message(STATUS "Verifying Reproducible Builds")
message(STATUS "============================================")
# Function to compute SHA-256 (requires OpenSSL)
function(compute_sha256 file hash_var)
if(OPENSSL_FOUND)
execute_process(
COMMAND openssl dgst -sha256 "${file}"
OUTPUT_VARIABLE HASH_OUTPUT
OUTPUT_STRIP_TRAILING_WHITESPACE
)
string(REGEX MATCH "[a-f0-9]{64}" HASH "${HASH_OUTPUT}")
set(${hash_var} "${HASH}" PARENT_SCOPE)
else()
set(${hash_var} "N/A (OpenSSL not found)" PARENT_SCOPE)
endif()
endfunction()
if(EXISTS "${MAIN_BIN}")
file(SIZE "${MAIN_BIN}" FILE_SIZE)
compute_sha256("${MAIN_BIN}" MAIN_HASH)
message(STATUS "Main binary: ${MAIN_BIN}")
message(STATUS " Size: ${FILE_SIZE} bytes")
message(STATUS " SHA-256: ${MAIN_HASH}")
else()
message(WARNING "Main binary not found: ${MAIN_BIN}")
endif()
if(EXISTS "${TEST_BIN}")
file(SIZE "${TEST_BIN}" FILE_SIZE)
compute_sha256("${TEST_BIN}" TEST_HASH)
message(STATUS "Test binary: ${TEST_BIN}")
message(STATUS " Size: ${FILE_SIZE} bytes")
message(STATUS " SHA-256: ${TEST_HASH}")
else()
message(WARNING "Test binary not found: ${TEST_BIN}")
endif()
message(STATUS "============================================")
|