File tree Expand file tree Collapse file tree 2 files changed +38
-3
lines changed Expand file tree Collapse file tree 2 files changed +38
-3
lines changed Original file line number Diff line number Diff line change @@ -2,6 +2,10 @@ cmake_minimum_required(VERSION 3.10)
22
33cmake_policy (VERSION 3.10...3.14)
44
5+ if (DEFINED ENV{SOURCE_DATE_EPOCH})
6+ set (SOURCE_DATE_EPOCH "$ENV{SOURCE_DATE_EPOCH} " )
7+ endif ()
8+
59set (CMAKE_SKIP_RPATH ON
610 CACHE BOOL "Don't add a build-dir rpath" )
711set (CMAKE_BUILD_WITH_INSTALL_RPATH ON
@@ -941,6 +945,8 @@ foreach(SCRIPT ${TRAVIS_SCRIPTS})
941945 endif ()
942946endforeach ()
943947
944- install (FILES "${CMAKE_BINARY_DIR} /sha256_install_manifest.txt"
945- DESTINATION "${CMAKE_INSTALL_DATADIR} /opencoarrays"
946- OPTIONAL )
948+ # Create and install a manifest of installed files, and another containing their sha256 hashes
949+ foreach (VAR CMAKE_BINARY_DIR CMAKE_INSTALL_DATADIR PROJECT_NAME SOURCE_DATE_EPOCH)
950+ install (CODE "set(${VAR} \" ${${VAR} }\" )" )
951+ endforeach ()
952+ install (SCRIPT "${CMAKE_CURRENT_LIST_DIR} /cmake/InstallFileManifest.cmake" )
Original file line number Diff line number Diff line change 1+ # This script will create and install an install manifest, including SHA256 hashes of each installed file
2+ # Variables passed from CMake must be set with `install(CODE "set(...)")`
3+
4+ message (STATUS "Generating SHA256 checksums for all installed assets" )
5+
6+ # Mimic cmake_install.cmake's handlin of components
7+ if (CMAKE_INSTALL_COMPONENT)
8+ set (HASHED_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT} .SHA256.txt" )
9+ else ()
10+ set (HASHED_INSTALL_MANIFEST "install_manifest.SHA256.txt" )
11+ endif ()
12+
13+ # Clean out any old install manifest on re-installation, if it exists
14+ file (REMOVE "${CMAKE_BINARY_DIR} /${HASHED_INSTALL_MANIFEST} " )
15+
16+ # Loop over files computing hashes
17+ foreach (file IN LISTS CMAKE_INSTALL_MANIFEST_FILES)
18+ file (SHA256 "${file} " _file_sha256)
19+ file (APPEND "${CMAKE_BINARY_DIR} /${HASHED_INSTALL_MANIFEST} " "${_file_sha256} ${file} \n " )
20+ endforeach ()
21+
22+ file (INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX} /${CMAKE_INSTALL_DATADIR} /${PROJECT_NAME} " TYPE FILE PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ FILES
23+ "${CMAKE_BINARY_DIR} /${HASHED_INSTALL_MANIFEST} " )
24+
25+ file (SHA256 "${CMAKE_BINARY_DIR} /${HASHED_INSTALL_MANIFEST} " MANIFEST_SHA256)
26+ message (STATUS
27+ "Global checksum for OpenCoarrays installation:\n ${MANIFEST_SHA256} ${HASHED_INSTALL_MANIFEST} " )
28+ message (STATUS "${PROJECT_NAME} was configured with SOURCE_DATE_EPOCH=${SOURCE_DATE_EPOCH} " )
29+ message (STATUS "The current environment has SOURCE_DATE_EPOCH set to: $ENV{SOURCE_DATE_EPOCH} " )
You can’t perform that action at this time.
0 commit comments