mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 02:46:29 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			36 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
| # If timestamping is used, it can (rarely) fail, when public timestamping service has issues.
 | |
| #
 | |
| # To handle the error gracefully and transparently, we'll retry the signtool command,
 | |
| # second time without "/t URL" parameter
 | |
| SET(SIGNTOOL_PARAMETERS_NO_TIMESTAMP "@SIGNTOOL_PARAMETERS@")
 | |
| LIST(FIND SIGNTOOL_PARAMETERS_NO_TIMESTAMP /t idx)
 | |
| IF(NOT(idx EQUAL -1))
 | |
|  LIST(REMOVE_AT SIGNTOOL_PARAMETERS_NO_TIMESTAMP ${idx})
 | |
|  #remove the URL following /t , as well
 | |
|  LIST(REMOVE_AT SIGNTOOL_PARAMETERS_NO_TIMESTAMP ${idx})
 | |
| ENDIF()
 | |
| 
 | |
| GET_FILENAME_COMPONENT(SIGNTOOL_DIR "@SIGNTOOL_EXECUTABLE@" DIRECTORY)
 | |
| GET_FILENAME_COMPONENT(SIGNTOOL_NAME "@SIGNTOOL_EXECUTABLE@" NAME)
 | |
| 
 | |
| FILE(GLOB_RECURSE files "@CMAKE_BINARY_DIR@/*.signme")
 | |
| MESSAGE(STATUS "signing files")
 | |
| 
 | |
| 
 | |
| FOREACH(f ${files})
 | |
|   STRING(REPLACE ".signme" "" exe_location "${f}")
 | |
| 
 | |
|   string (REPLACE ";" " " params "@SIGNTOOL_PARAMETERS@")
 | |
| 
 | |
|   EXECUTE_PROCESS(COMMAND
 | |
|      cmd /c "${SIGNTOOL_NAME}" sign @SIGNTOOL_PARAMETERS@ "${exe_location}" 2>NUL
 | |
|      || "${SIGNTOOL_NAME}" sign ${SIGNTOOL_PARAMETERS_NO_TIMESTAMP} "${exe_location}"
 | |
|      WORKING_DIRECTORY ${SIGNTOOL_DIR}
 | |
|      RESULT_VARIABLE ERR)
 | |
|   IF(NOT ${ERR} EQUAL 0)
 | |
|     MESSAGE( "Error ${ERR} signing ${exe_location}")
 | |
|   ELSE()
 | |
|     FILE(REMOVE ${f})
 | |
|   ENDIF()
 | |
| 
 | |
| ENDFOREACH()
 | 
