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