Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(319)

Side by Side Diff: visual_studio/NativeClientVSAddIn/NaCl.Build.CPPTasks/SDKUtilities.cs

Issue 11475048: [NaCl SDK Addin] Fix detection of PNaCl toolchain. (Closed) Base URL: http://nativeclient-sdk.googlecode.com/svn/trunk/src
Patch Set: Created 8 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 namespace NaCl.Build.CPPTasks 5 namespace NaCl.Build.CPPTasks
6 { 6 {
7 using System; 7 using System;
8 using System.IO; 8 using System.IO;
9 using System.Collections.Generic; 9 using System.Collections.Generic;
10 10
11 /// <summary> 11 /// <summary>
12 /// TODO: Update summary. 12 /// TODO: Update summary.
13 /// </summary> 13 /// </summary>
14 public class SDKUtilities 14 public class SDKUtilities
15 { 15 {
16 // The first version of pepper with a known working PNaCl toolchain 16 // The first version of pepper with a known working PNaCl toolchain
17 public const int MinPNaCLSDKVersion = 166868; 17 public const int MinPNaCLSDKVersion = 24;
18 public const int MinPNaCLSDKRevision = 166868;
18 19
19 /// <summary> 20 /// <summary>
20 /// Find python executable in user's PATH. 21 /// Find python executable in user's PATH.
21 /// </summary> 22 /// </summary>
22 public static bool FindPython() 23 public static bool FindPython()
23 { 24 {
24 string envvar = Environment.GetEnvironmentVariable("Path", Environme ntVariableTarget.Process); 25 string envvar = Environment.GetEnvironmentVariable("Path", Environme ntVariableTarget.Process);
25 List<string> pathList = new List<string>(envvar.Split(';')); 26 List<string> pathList = new List<string>(envvar.Split(';'));
26 foreach (string path in pathList) 27 foreach (string path in pathList)
27 { 28 {
28 string testPath = Path.Combine(path, "python.bat"); 29 string testPath = Path.Combine(path, "python.bat");
29 if (File.Exists(testPath)) 30 if (File.Exists(testPath))
30 { 31 {
31 return true; 32 return true;
32 } 33 }
33 testPath = Path.Combine(path, "python.exe"); 34 testPath = Path.Combine(path, "python.exe");
34 if (File.Exists(testPath)) 35 if (File.Exists(testPath))
35 { 36 {
36 return true; 37 return true;
37 38
38 } 39 }
39 } 40 }
40 return false; 41 return false;
41 } 42 }
42 43
43 /// <summary> 44 /// <summary>
44 /// Retrieve the version and revsion of the current NaCl SDK located 45 /// Retrieve the version and revsion of the given NaCl SDK root.
45 /// at $NACL_SDK_ROOT.
46 /// </summary> 46 /// </summary>
47 public static int GetSDKVersion(string root, out int revision) 47 public static int GetSDKVersion(string root, out int revision)
48 { 48 {
49 // Determine version by parsing top level README file. 49 // Determine version by parsing top level README file.
50 string[] lines = File.ReadAllLines(Path.Combine(root, "README")); 50 string[] lines = File.ReadAllLines(Path.Combine(root, "README"));
51 int version = -1; 51 int version = -1;
52 revision = -1; 52 revision = -1;
53 foreach (var line in lines) 53 foreach (var line in lines)
54 { 54 {
55 if (line.StartsWith("Revision")) 55 if (line.StartsWith("Revision"))
56 revision = Convert.ToInt32(line.Split(':')[1]); 56 revision = Convert.ToInt32(line.Split(':')[1]);
57 if (line.StartsWith("Version")) 57 if (line.StartsWith("Version"))
58 version = Convert.ToInt32(line.Split(':')[1]); 58 version = Convert.ToInt32(line.Split(':')[1]);
59 } 59 }
60 return version; 60 return version;
61 } 61 }
62
63 /// <summary>
64 /// Retrun true if the NaCl SDK at the given location supports
65 /// the PNaCl toolchain.
66 /// </summary>
67 public static bool SupportsPNaCl(string root)
68 {
69 int revision;
70 int version = SDKUtilities.GetSDKVersion(root, out revision);
71 if (version > SDKUtilities.MinPNaCLSDKVersion)
72 return true;
73 if (version == SDKUtilities.MinPNaCLSDKVersion && revision >= SDKUti lities.MinPNaCLSDKRevision)
noelallen1 2012/12/08 00:50:23 wrap
74 return true;
75 return false;
76 }
62 } 77 }
63 } 78 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698