1#!/usr/bin/env perl
2
3use strict;
4use warnings;
5
6use File::Basename;
7
8my $scriptpath = dirname($0);
9my $outfile = $ARGV[0];
10my $mergebase = $ARGV[1];
11
12$mergebase or $mergebase = "";
13
14mkdir dirname($outfile);
15
16$_ = (open(IN, "<", "$scriptpath/release_ver") ? <IN>
17        : die "No Git, and $scriptpath/release_ver doesn't exist.\n")
18    or die "couldn't get the version information\n";
19
20chomp;
21
22/v?(([0-9]+\.[0-9]+)(?:\.[0-9]+)?(?:-([a-zA-Z]+[0-9]+))?)(?:-[0-9]+-g[a-fA-F0-9]+)?/
23    or die "Version string '$_' is malformed.\n";
24
25my ($major, $tag, $pretyp) = ($2, $1, $3);
26
27my $rel = defined($pretyp) ? $pretyp le "b" ? "ALPHA" : "BETA" : "FINAL";
28
29my $prefix = "CRAWL";
30
31open OUT, ">", "$outfile" or die $!;
32print OUT <<__eof__;
33#define ${prefix}_VERSION_MAJOR "$major"
34#define ${prefix}_VERSION_RELEASE VER_$rel
35#define ${prefix}_VERSION_SHORT "$tag"
36#define ${prefix}_VERSION_LONG "$_"
37__eof__
38close OUT or die $!;
39