bsh-harness / scripts /verify_build.cmake
SNAPKITTYWEST's picture
October 2026 main drop: mirror from GitHub
fb6457c verified
Raw History Blame Contribute Delete
1.61 kB
# 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 "============================================")