core/group/genver.pl
changeset 0 7f656887cf89
child 25 482757737e59
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/core/group/genver.pl	Wed Jun 23 15:52:26 2010 +0100
@@ -0,0 +1,85 @@
+# genver.pl
+# 
+# Copyright (c) 2010 Accenture. All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+# 
+# Initial Contributors:
+# Accenture - Initial contribution
+#
+use strict;
+use lib "../../tools";
+use fshu;
+
+my $platform = shift @ARGV;
+my $version = fshu::Version();
+my $localTime = scalar(localtime);
+my $gmTime = scalar(gmtime);
+my $builder = $ENV{USERNAME};
+my $compilerVersion = CompilerVersion();
+
+
+print "
+#include <fshell/iocli.h>
+
+extern void PrintVersionInfo(RIoWriteHandle& aOut, TBool aVerbose)
+	{
+	if (aVerbose)
+		{
+		aOut.Write(_L(\"Version:              $version\\r\\n\"));
+		aOut.Write(_L(\"Local build time:     $localTime\\r\\n\"));
+		aOut.Write(_L(\"GMT build time:       $gmTime\\r\\n\"));
+		aOut.Write(_L(\"User-name of builder: $builder\\r\\n\"));
+		aOut.Write(_L(\"Compiler version:     $compilerVersion\\r\\n\"));
+#ifdef _DEBUG
+		aOut.Write(_L(\"Build configuration:  debug\\r\\n\"));
+#else
+		aOut.Write(_L(\"Build configuration:  release\\r\\n\"));
+#endif
+		}
+	else
+		{
+		aOut.Write(_L(\"$version\\r\\n\"));
+		}
+	}
+";
+
+sub CompilerVersion {
+  my $version = 'Unknown';
+  if ($platform =~ /^armv5$/i) {
+    open (COMPILER, "armcc 2>&1 |") or die "Couldn't run \"armcc\": $!\n";
+    while (my $line = <COMPILER>) {
+      if ($line =~ /\[Build\s+\d+\]/) {
+	chomp $line;
+	$version = $line;
+	last;
+      }
+    }
+    close (COMPILER);
+  }
+  elsif ($platform =~ /^gcce$/i) {
+    open (COMPILER, "arm-none-symbianelf-gcc.exe -v 2>&1 |") or die "Couldn't run \"arm-none-symbianelf-gcc.exe -v\": $!\n";
+    while (my $line = <COMPILER>) {
+      if ($line =~ /^gcc version/) {
+	chomp $line;
+	$version = $line;
+	last;
+      }
+    }
+    close (COMPILER);
+  }
+  elsif ($platform =~ /^(arm4|armi|thumb)$/i) {
+    open (COMPILER, "gcc.exe -v 2>&1 |") or die "Couldn't run \"gcc.exe -v\": $!\n";
+    while (my $line = <COMPILER>) {
+      if ($line =~ /^gcc version/) {
+	chomp $line;
+	$version = $line;
+	last;
+      }
+    }
+    close (COMPILER);
+  }
+  return $version;
+}