1
1
# This script will create and install an install manifest, including SHA256 hashes of each installed file
2
2
# Variables passed from CMake must be set with `install(CODE "set(...)")`
3
3
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} " )
5
8
6
9
# Mimic cmake_install.cmake's handlin of components
7
10
if (CMAKE_INSTALL_COMPONENT )
@@ -16,14 +19,18 @@ file(REMOVE "${CMAKE_BINARY_DIR}/${HASHED_INSTALL_MANIFEST}")
16
19
# Loop over files computing hashes
17
20
foreach (file IN LISTS CMAKE_INSTALL_MANIFEST_FILES )
18
21
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 " )
20
24
endforeach ()
25
+ file (APPEND "${CMAKE_BINARY_DIR} /${HASHED_INSTALL_MANIFEST} "
26
+ "# Paths relative to \$ {CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATADIR} /${PROJECT_NAME} \n " )
21
27
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
23
29
"${CMAKE_BINARY_DIR} /${HASHED_INSTALL_MANIFEST} " )
24
30
25
31
file (SHA256 "${CMAKE_BINARY_DIR} /${HASHED_INSTALL_MANIFEST} " MANIFEST_SHA256 )
26
32
message (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} " )
28
35
message (STATUS "${PROJECT_NAME} was configured with SOURCE_DATE_EPOCH=${SOURCE_DATE_EPOCH} " )
29
36
message (STATUS "The current environment has SOURCE_DATE_EPOCH set to: $ENV{SOURCE_DATE_EPOCH} " )
0 commit comments