11# This script will create and install an install manifest, including SHA256 hashes of each installed file
22# Variables passed from CMake must be set with `install(CODE "set(...)")`
33
4- message (STATUS "Generating SHA256 checksums for all installed assets" )
4+ message (STATUS "Generating SHA256 checksumed receipt for all installed assets" )
5+
6+ # Set receipt install destination
7+ set (RECEIPT_INSTALL_DIR "${CMAKE_INSTALL_PREFIX} /${CMAKE_INSTALL_DATADIR} /${PROJECT_NAME} " )
58
69# Mimic cmake_install.cmake's handlin of components
710if (CMAKE_INSTALL_COMPONENT)
@@ -16,14 +19,18 @@ file(REMOVE "${CMAKE_BINARY_DIR}/${HASHED_INSTALL_MANIFEST}")
1619# Loop over files computing hashes
1720foreach (file IN LISTS CMAKE_INSTALL_MANIFEST_FILES)
1821 file (SHA256 "${file} " _file_sha256)
19- file (APPEND "${CMAKE_BINARY_DIR} /${HASHED_INSTALL_MANIFEST} " "${_file_sha256} ${file} \n " )
22+ file (RELATIVE_PATH FILE_REL_PATH "${RECEIPT_INSTALL_DIR} " "${file} " )
23+ file (APPEND "${CMAKE_BINARY_DIR} /${HASHED_INSTALL_MANIFEST} " "${_file_sha256} ${FILE_REL_PATH} \n " )
2024endforeach ()
25+ file (APPEND "${CMAKE_BINARY_DIR} /${HASHED_INSTALL_MANIFEST} "
26+ "# Paths relative to \$ {CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATADIR} /${PROJECT_NAME} \n " )
2127
22- file (INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX} / ${CMAKE_INSTALL_DATADIR} / ${PROJECT_NAME } " TYPE FILE PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ FILES
28+ file (INSTALL DESTINATION "${RECEIPT_INSTALL_DIR } " TYPE FILE PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ FILES
2329 "${CMAKE_BINARY_DIR} /${HASHED_INSTALL_MANIFEST} " )
2430
2531file (SHA256 "${CMAKE_BINARY_DIR} /${HASHED_INSTALL_MANIFEST} " MANIFEST_SHA256)
2632message (STATUS
27- "Global checksum for OpenCoarrays installation:\n ${MANIFEST_SHA256} ${HASHED_INSTALL_MANIFEST} " )
33+ "Global checksum for OpenCoarrays installation:
34+ ${MANIFEST_SHA256} ${HASHED_INSTALL_MANIFEST} " )
2835message (STATUS "${PROJECT_NAME} was configured with SOURCE_DATE_EPOCH=${SOURCE_DATE_EPOCH} " )
2936message (STATUS "The current environment has SOURCE_DATE_EPOCH set to: $ENV{SOURCE_DATE_EPOCH} " )
0 commit comments