Author: eliot Date: 2012-04-05 12:21:49 -0700 (Thu, 05 Apr 2012) New Revision: 2546
Added: branches/Cog/scripts/svnciplugins Modified: branches/Cog/platforms/Cross/vm/sqSCCSVersion.h branches/Cog/platforms/Mac OS/vm/sqMacMain.c branches/Cog/platforms/unix/vm/sqUnixMain.c branches/Cog/platforms/win32/vm/sqWin32Intel.c branches/Cog/platforms/win32/vm/sqWin32Window.c Log: Add version infor for the Cross/plugins tree. Add a -version switch to win32.
Modified: branches/Cog/platforms/Cross/vm/sqSCCSVersion.h =================================================================== --- branches/Cog/platforms/Cross/vm/sqSCCSVersion.h 2012-04-05 18:48:38 UTC (rev 2545) +++ branches/Cog/platforms/Cross/vm/sqSCCSVersion.h 2012-04-05 19:21:49 UTC (rev 2546) @@ -21,6 +21,7 @@ #define MERCURIAL 0 #define GIT 0
+#include "../plugins/sqPluginsSCCSVersion.h"
#if SUBVERSION static char SvnRawRevisionString[] = "$Rev$"; @@ -29,9 +30,6 @@ static char SvnRawRepositoryURL[] = "$URL$"; # define URL_START (SvnRawRepositoryURL + 6)
-static long -revisionAsLong() { return atol(REV_START); } - static char * revisionAsString() { @@ -52,9 +50,6 @@ # undef REV_START # undef URL_START #else /* SUBVERSION */ -static long -revisionAsLong() { return -1; } - static char * revisionAsString() { return "?"; }
@@ -64,12 +59,28 @@
static char *sourceVersion = 0;
-static char *sourceVersionString() +static char * +sourceVersionString(char separator) { if (!sourceVersion) { - int len = strlen(revisionAsString()) + strlen(repositoryURL()) + 3; +#if WIN32 + char *fmt = "VM: r%s %s%cPlugins: r%s %s"; + int len = strlen(fmt) + + strlen(revisionAsString()) + + strlen(repositoryURL()) + + strlen(pluginsRevisionAsString()) + + strlen(pluginsRepositoryURL()); sourceVersion = malloc(len); - sprintf(sourceVersion,"r%s %s",revisionAsString(),repositoryURL()); + sprintf(sourceVersion, fmt, + revisionAsString(), repositoryURL(), + separator, + pluginsRevisionAsString(), pluginsRepositoryURL()); +#else + asprintf(&sourceVersion, "VM: r%s %s Plugins: r%s %s", + revisionAsString(), repositoryURL(), + separator, + pluginsRevisionAsString(), pluginsRepositoryURL()); +#endif } return sourceVersion; }
Property changes on: branches/Cog/platforms/Cross/vm/sqSCCSVersion.h ___________________________________________________________________ Modified: checkindate - Tue Apr 3 14:23:49 PDT 2012 + Thu Apr 5 12:21:16 PDT 2012
Modified: branches/Cog/platforms/Mac OS/vm/sqMacMain.c =================================================================== --- branches/Cog/platforms/Mac OS/vm/sqMacMain.c 2012-04-05 18:48:38 UTC (rev 2545) +++ branches/Cog/platforms/Mac OS/vm/sqMacMain.c 2012-04-05 19:21:49 UTC (rev 2546) @@ -611,7 +611,7 @@ #endif
if (id == 1009) /* source tree version info */ - return sourceVersionString(); + return sourceVersionString(' ');
// return "Mac Carbon 3.8.18b4 29-May-08 >02DA4BFD-4050-4372-8DBB-9582DA7D0218<"; // return "Mac Carbon 3.8.18b3 10-Apr-08 >DC0EAF5D-C46C-479D-B2A3-DBD4A2DF95A8<"; @@ -945,7 +945,7 @@ #endif if (verbose) sprintf(info+strlen(info), "Revision: "); - sprintf(info+strlen(info), "%s\n", sourceVersionString()); + sprintf(info+strlen(info), "%s\n", sourceVersionString('\n')); return info; } #if COGVM
Modified: branches/Cog/platforms/unix/vm/sqUnixMain.c =================================================================== --- branches/Cog/platforms/unix/vm/sqUnixMain.c 2012-04-05 18:48:38 UTC (rev 2545) +++ branches/Cog/platforms/unix/vm/sqUnixMain.c 2012-04-05 19:21:49 UTC (rev 2546) @@ -481,7 +481,7 @@ #endif
case 1009: /* source tree version info */ - return sourceVersionString(); + return sourceVersionString(' ');
default: if ((id - 2) < squeakArgCnt) @@ -1506,7 +1506,7 @@ #endif if (verbose) sprintf(info+strlen(info), "Revision: "); - sprintf(info+strlen(info), "%s\n", sourceVersionString()); + sprintf(info+strlen(info), "%s\n", sourceVersionString('\n')); if (verbose) sprintf(info+strlen(info), "Build host: "); sprintf(info+strlen(info), "%s\n", ux_version);
Modified: branches/Cog/platforms/win32/vm/sqWin32Intel.c =================================================================== --- branches/Cog/platforms/win32/vm/sqWin32Intel.c 2012-04-05 18:48:38 UTC (rev 2545) +++ branches/Cog/platforms/win32/vm/sqWin32Intel.c 2012-04-05 19:21:49 UTC (rev 2546) @@ -756,6 +756,58 @@ gdInfoString = _strdup(tmpString); }
+char * +getVersionInfo(int verbose) +{ +#if STACKVM + extern char *__interpBuildInfo; +# define INTERP_BUILD __interpBuildInfo +# if COGVM + extern char *__cogitBuildInfo; +# endif +#else +# define INTERP_BUILD interpreterVersion +#endif + char *info= (char *)malloc(4096); + info[0]= '\0'; + + sprintf(info+strlen(info), "%s\n", vmBuildString); + if (verbose) + sprintf(info+strlen(info), "Built from: "); + sprintf(info+strlen(info), "%s\n", INTERP_BUILD); +#if COGVM + if (verbose) + sprintf(info+strlen(info), "With: "); + sprintf(info+strlen(info), "%s\n", GetAttributeString(1008)); /* __cogitBuildInfo */ +#endif + if (verbose) + sprintf(info+strlen(info), "Revision: "); + sprintf(info+strlen(info), "%s\n", sourceVersionString('\n')); + return info; +} + + +static void +versionInfo(void) +{ +#if 0 + /* we could create a console but to version the non-consoel VM it is + * sufficient to do e.g. Squeak.exe >foo; cat foo. But feel free to + * add the code if you have the energy ;) + */ + DWORD mode; + HANDLE stdouth = GetStdHandle(STD_OUTPUT_HANDLE); + + if (GetConsoleMode(stdouth, &mode) != 0) { + char *vi = getVersionInfo(0); + WriteConsole(stdouth, vi, strlen(vi), 0, 0); + } + else +#endif + printf("%s", getVersionInfo(0)); + exit(0); +} + /****************************************************************************/ /* Error handling */ /****************************************************************************/ @@ -855,7 +907,7 @@ fprintf(f,"Cogit Build: %s\n", __cogitBuildInfo); # endif #endif - fprintf(f,"Source Version: %s\n", sourceVersionString()); + fprintf(f,"Source Version: %s\n", sourceVersionString('\n')); fflush(f); fprintf(f,"\n" "Current byte code: %d\n" @@ -1521,6 +1573,7 @@ if (!strcmp(argv[0], "-help")) { printUsage(1); return 1; } + else if (!strcmp(argv[0], "-version")) { versionInfo(); return 1; } else if (!strcmp(argv[0], "-headless")) { fHeadlessImage = true; return 1; } else if (!strcmp(argv[0], "-headfull")) { fHeadlessImage = false; return 1;} #ifdef VISTA_SECURITY /* IE7/Vista protected mode support */
Modified: branches/Cog/platforms/win32/vm/sqWin32Window.c =================================================================== --- branches/Cog/platforms/win32/vm/sqWin32Window.c 2012-04-05 18:48:38 UTC (rev 2545) +++ branches/Cog/platforms/win32/vm/sqWin32Window.c 2012-04-05 19:21:49 UTC (rev 2546) @@ -2793,7 +2793,7 @@ #endif
case 1009: /* source tree version info */ - return sourceVersionString(); + return sourceVersionString(' ');
/* Windows internals */ case 10001: /* addl. hardware info */
Added: branches/Cog/scripts/svnciplugins =================================================================== --- branches/Cog/scripts/svnciplugins (rev 0) +++ branches/Cog/scripts/svnciplugins 2012-04-05 19:21:49 UTC (rev 2546) @@ -0,0 +1,6 @@ +#!/bin/sh +# checkin script for subverison that serves to cause +# platforms/Cross/plugins/sqPluginsSCCSVersion.h to be checked-in so that its version +# info reflects that of the current check-in. +svn propset checkindate "`date`" platforms/Cross/plugins/sqPluginsSCCSVersion.h +svn ci platforms/Cross/plugins
Property changes on: branches/Cog/scripts/svnciplugins ___________________________________________________________________ Added: svn:executable + *
vm-dev@lists.squeakfoundation.org