Home | History | Annotate | Line # | Download | only in util
      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