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 9use strict; 10use warnings; 11use lib "."; 12use configdata; 13 14my $cversion = "$config{version}"; 15my $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). 19my @vernums = ( split(/\./, $cversion), 0, 0, 0, 0 ); 20$cversion = join(',', @vernums[0..3]); 21 22my $filename = $ARGV[0]; 23my $description = "OpenSSL library"; 24my $vft = "VFT_DLL"; 25if ( $filename =~ /openssl/i ) { 26 $description = "OpenSSL application"; 27 $vft = "VFT_APP"; 28} 29 30my $YEAR = [gmtime($ENV{SOURCE_DATE_EPOCH} || time())]->[5] + 1900; 31print <<___; 32#include <winver.h> 33 34LANGUAGE 0x09,0x01 35 361 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 48BEGIN 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 73END 74___ 75