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)
2
2
3
3
cmake_policy (VERSION 3.10...3.14 )
4
4
5
+ if (DEFINED ENV{SOURCE_DATE_EPOCH} )
6
+ set (SOURCE_DATE_EPOCH "$ENV{SOURCE_DATE_EPOCH} " )
7
+ endif ()
8
+
5
9
set (CMAKE_SKIP_RPATH ON
6
10
CACHE BOOL "Don't add a build-dir rpath" )
7
11
set (CMAKE_BUILD_WITH_INSTALL_RPATH ON
@@ -941,6 +945,8 @@ foreach(SCRIPT ${TRAVIS_SCRIPTS})
941
945
endif ()
942
946
endforeach ()
943
947
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