Nicolas Cannasse преди 8 години
родител
ревизия
e9060c277e
променени са 1 файла, в които са добавени 20 реда и са изтрити 2 реда
  1. 20 2
      other/benchs/Benchs.hx

+ 20 - 2
other/benchs/Benchs.hx

@@ -51,7 +51,7 @@ class Benchs {
 		var targets : Array<Target> = [
 			{ name : "cpp", out : "cpp", cmd : "cpp/$name" + (isWin ? ".exe" : ""), args : [], extraArgs : "-D HXCPP_SILENT" },
 			{ name : "hl", out : "bench.hl", cmd : "hl", args : ["bench.hl"] },
-			{ name : "hlc", out : "bench.c", cmd : isWin ? "hlc":"./hlc", args : [] },
+			{ name : "hlc", out : "bench.c", cmd : isWin ? "hlc.exe":"./hlc", args : [] },
 			{ name : "js", out : "bench.js", cmd : "node", args : ["bench.js"] },
 			{ name : "neko", out : "bench.n", cmd : "neko", args : ["bench.n"] },
 		];
@@ -66,6 +66,20 @@ class Benchs {
 		var gcc = "gcc";
 		if( isWin && is32 )
 			gcc = "i686-pc-cygwin-gcc";
+		
+		var useMSVC = isWin;
+		if( useMSVC ) {
+			var path = Sys.getEnv("PATH").split(";");
+			var found = false;
+			for( p in path )
+				if( sys.FileSystem.exists(p+"/cl.exe") ) {
+					trace(p);
+					found = true;
+					break;
+				}
+			if( !found )
+				useMSVC = false;
+		}
 
 		for( f in all ) {
 
@@ -99,7 +113,11 @@ class Benchs {
 
 				if( t.name == "hlc" ) {
 					// build
-					var cmd = '$gcc -O3 ${is32?'-m32':''} -std=c11 -o hlc -I ../../src -L ../.. bench.c ../../src/hlc_main.c -lhl -lm';
+					var cmd;
+					if( useMSVC )
+						cmd = 'cl.exe /nologo /Ox /I ../../src /o hlc.exe bench.c ../../src/hlc_main.c ../../Release/std.lib';
+					else
+						cmd = '$gcc -O3 ${is32?'-m32':''} -std=c11 -o hlc -I ../../src -L ../.. bench.c ../../src/hlc_main.c -lhl -lm';
 					if( Sys.command(cmd) != 0 ) {
 						Sys.println("Failed to run "+cmd);
 						Sys.println(t.name+" failed to compile");