You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							136 lines
						
					
					
						
							4.9 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							136 lines
						
					
					
						
							4.9 KiB
						
					
					
				| // Copyright 2005-2013 Intel Corporation.  All Rights Reserved. | |
| // | |
| // This file is part of Threading Building Blocks. | |
| // | |
| // Threading Building Blocks is free software; you can redistribute it | |
| // and/or modify it under the terms of the GNU General Public License | |
| // version 2 as published by the Free Software Foundation. | |
| // | |
| // Threading Building Blocks is distributed in the hope that it will be | |
| // useful, but WITHOUT ANY WARRANTY; without even the implied warranty | |
| // of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | |
| // GNU General Public License for more details. | |
| // | |
| // You should have received a copy of the GNU General Public License | |
| // along with Threading Building Blocks; if not, write to the Free Software | |
| // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA | |
| // | |
| // As a special exception, you may use this file as part of a free software | |
| // library without restriction.  Specifically, if other files instantiate | |
| // templates or use macros or inline functions from this file, or you compile | |
| // this file and link it with other files to produce an executable, this | |
| // file does not by itself cause the resulting executable to be covered by | |
| // the GNU General Public License.  This exception does not however | |
| // invalidate any other reasons why the executable file might be covered by | |
| // the GNU General Public License. | |
|  | |
| var WshShell = WScript.CreateObject("WScript.Shell"); | |
| 
 | |
| var tmpExec; | |
| 
 | |
| WScript.Echo("#define __TBB_VERSION_STRINGS(N) \\"); | |
| 
 | |
| //Getting BUILD_HOST | |
| WScript.echo( "#N \": BUILD_HOST\\t\\t" +  | |
|               WshShell.ExpandEnvironmentStrings("%COMPUTERNAME%") + | |
|               "\" ENDL \\" ); | |
| 
 | |
| //Getting BUILD_OS | |
| tmpExec = WshShell.Exec("cmd /c ver"); | |
| while ( tmpExec.Status == 0 ) { | |
|     WScript.Sleep(100); | |
| } | |
| tmpExec.StdOut.ReadLine(); | |
| 
 | |
| WScript.echo( "#N \": BUILD_OS\\t\\t" +  | |
|               tmpExec.StdOut.ReadLine() + | |
|               "\" ENDL \\" ); | |
| 
 | |
| if ( WScript.Arguments(0).toLowerCase().match("gcc") ) { | |
|     tmpExec = WshShell.Exec(WScript.Arguments(0) + " --version"); | |
|     WScript.echo( "#N \": BUILD_COMPILER\\t" +  | |
|                   tmpExec.StdOut.ReadLine() +  | |
|                   "\" ENDL \\" ); | |
| 
 | |
| } else { // MS / Intel compilers | |
|     //Getting BUILD_CL | |
|     tmpExec = WshShell.Exec("cmd /c echo #define 0 0>empty.cpp"); | |
|     tmpExec = WshShell.Exec("cl -c empty.cpp "); | |
|     while ( tmpExec.Status == 0 ) { | |
|         WScript.Sleep(100); | |
|     } | |
|     var clVersion = tmpExec.StdErr.ReadLine(); | |
|     WScript.echo( "#N \": BUILD_CL\\t\\t" +  | |
|                   clVersion + | |
|                   "\" ENDL \\" ); | |
| 
 | |
|     //Getting BUILD_COMPILER | |
|     if ( WScript.Arguments(0).toLowerCase().match("icl") ) { | |
|         tmpExec = WshShell.Exec("icl -c empty.cpp "); | |
|         while ( tmpExec.Status == 0 ) { | |
|             WScript.Sleep(100); | |
|         } | |
|         WScript.echo( "#N \": BUILD_COMPILER\\t" +  | |
|                       tmpExec.StdErr.ReadLine() +  | |
|                       "\" ENDL \\" ); | |
|     } else { | |
|         WScript.echo( "#N \": BUILD_COMPILER\\t\\t" +  | |
|                       clVersion + | |
|                       "\" ENDL \\" ); | |
|     } | |
|     tmpExec = WshShell.Exec("cmd /c del /F /Q empty.obj empty.cpp"); | |
| } | |
| 
 | |
| //Getting BUILD_TARGET | |
| WScript.echo( "#N \": BUILD_TARGET\\t" +  | |
|               WScript.Arguments(1) +  | |
|               "\" ENDL \\" ); | |
| 
 | |
| //Getting BUILD_COMMAND | |
| WScript.echo( "#N \": BUILD_COMMAND\\t" + WScript.Arguments(2) + "\" ENDL" ); | |
| 
 | |
| //Getting __TBB_DATETIME and __TBB_VERSION_YMD | |
| var date = new Date(); | |
| WScript.echo( "#define __TBB_DATETIME \"" + date.toUTCString() + "\"" ); | |
| WScript.echo( "#define __TBB_VERSION_YMD " + date.getUTCFullYear() + ", " +  | |
|               (date.getUTCMonth() > 8 ? (date.getUTCMonth()+1):("0"+(date.getUTCMonth()+1))) +  | |
|               (date.getUTCDate() > 9 ? date.getUTCDate():("0"+date.getUTCDate())) ); | |
| 
 | |
| 
 | |
| /* | |
|  | |
| Original strings | |
|  | |
| #define __TBB_VERSION_STRINGS \ | |
| "TBB: BUILD_HOST\t\tvpolin-mobl1 (ia32)" ENDL \ | |
| "TBB: BUILD_OS\t\tMicrosoft Windows XP [Version 5.1.2600]" ENDL \ | |
| "TBB: BUILD_CL\t\tMicrosoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.3077 for 80x86" ENDL \ | |
| "TBB: BUILD_COMPILER\tIntel(R) C++ Compiler for 32-bit applications, Version 9.1 Build 20070109Z Package ID: W_CC_C_9.1.034 " ENDL \ | |
| "TBB: BUILD_TARGET\t" ENDL \ | |
| "TBB: BUILD_COMMAND\t" ENDL \ | |
|  | |
| #define __TBB_DATETIME "Mon Jun 4 10:16:07 UTC 2007" | |
| #define __TBB_VERSION_YMD 2007, 0604 | |
|  | |
|  | |
|  | |
| # The script must be run from two directory levels below this level. | |
| x='"TBB: ' | |
| y='" ENDL \' | |
| echo "#define __TBB_VERSION_STRINGS \\" | |
| echo $x "BUILD_HOST\t\t"`hostname`" ("`../../arch.exe`")"$y | |
| echo $x "BUILD_OS\t\t"`../../win_version.bat|grep -i 'Version'`$y | |
| echo >empty.cpp | |
| echo $x "BUILD_CL\t\t"`cl -c empty.cpp 2>&1 | grep -i Version`$y | |
| echo $x "BUILD_COMPILER\t"`icl -c empty.cpp 2>&1 | grep -i Version`$y | |
| echo $x "BUILD_TARGET\t"$TBB_ARCH$y | |
| echo $x "BUILD_COMMAND\t"$*$y | |
| echo "" | |
| # A workaround for MKS 8.6 where `date -u` crashes. | |
| date -u > date.tmp | |
| echo "#define __TBB_DATETIME \""`cat date.tmp`"\"" | |
| echo "#define __TBB_VERSION_YMD "`date '+%Y, %m%d'` | |
| rm empty.cpp | |
| rm empty.obj | |
| rm date.tmp | |
| */
 |