1 #! /usr/bin/env perl 2 # Copyright 2006-2020 The OpenSSL Project Authors. All Rights Reserved. 3 # 4 # Licensed under the Apache License 2.0 (the "License"). You may not use 5 # this file except in compliance with the License. You can obtain a copy 6 # in the file LICENSE in the source distribution or at 7 # https://www.openssl.org/source/license.html 8 9 use strict; 10 use warnings; 11 use lib "."; 12 use configdata; 13 14 my $cversion = "$config{version}"; 15 my $version = "$config{full_version}"; 16 17 # RC syntax for versions uses commas as separators, rather than period, 18 # and it must have exactly 4 numbers (16-bit integers). 19 my @vernums = ( split(/\./, $cversion), 0, 0, 0, 0 ); 20 $cversion = join(',', @vernums[0..3]); 21 22 my $filename = $ARGV[0]; 23 my $description = "OpenSSL library"; 24 my $vft = "VFT_DLL"; 25 if ( $filename =~ /openssl/i ) { 26 $description = "OpenSSL application"; 27 $vft = "VFT_APP"; 28 } 29 30 my $YEAR = [gmtime($ENV{SOURCE_DATE_EPOCH} || time())]->[5] + 1900; 31 print <<___; 32 #include <winver.h> 33 34 LANGUAGE 0x09,0x01 35 36 1 VERSIONINFO 37 FILEVERSION $cversion 38 PRODUCTVERSION $cversion 39 FILEFLAGSMASK 0x3fL 40 #ifdef _DEBUG 41 FILEFLAGS 0x01L 42 #else 43 FILEFLAGS 0x00L 44 #endif 45 FILEOS VOS__WINDOWS32 46 FILETYPE $vft 47 FILESUBTYPE 0x0L 48 BEGIN 49 BLOCK "StringFileInfo" 50 BEGIN 51 BLOCK "040904b0" 52 BEGIN 53 // Required: 54 VALUE "CompanyName", "The OpenSSL Project, https://www.openssl.org/\\0" 55 VALUE "FileDescription", "$description\\0" 56 VALUE "FileVersion", "$version\\0" 57 VALUE "InternalName", "$filename\\0" 58 VALUE "OriginalFilename", "$filename\\0" 59 VALUE "ProductName", "The OpenSSL Toolkit\\0" 60 VALUE "ProductVersion", "$version\\0" 61 // Optional: 62 //VALUE "Comments", "\\0" 63 VALUE "LegalCopyright", "Copyright 1998-$YEAR The OpenSSL Authors. All rights reserved.\\0" 64 //VALUE "LegalTrademarks", "\\0" 65 //VALUE "PrivateBuild", "\\0" 66 //VALUE "SpecialBuild", "\\0" 67 END 68 END 69 BLOCK "VarFileInfo" 70 BEGIN 71 VALUE "Translation", 0x409, 0x4b0 72 END 73 END 74 ___ 75