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

Unified Diff: visual_studio/NativeClientVSAddIn/UnitTests/TestUtilities.cs

Issue 14122017: [VS Addin] Add visual studio 2012 support (Closed) Base URL: https://nativeclient-sdk.googlecode.com/svn/trunk/src
Patch Set: now with unit tests Created 7 years, 7 months 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 side-by-side diff with in-line comments
Download patch
Index: visual_studio/NativeClientVSAddIn/UnitTests/TestUtilities.cs
diff --git a/visual_studio/NativeClientVSAddIn/UnitTests/TestUtilities.cs b/visual_studio/NativeClientVSAddIn/UnitTests/TestUtilities.cs
index 03fcd3eef6ba533d5958a893f5a17484e2252598..0e758e70dca870437b1f6816661e970fbb7e7b3c 100644
--- a/visual_studio/NativeClientVSAddIn/UnitTests/TestUtilities.cs
+++ b/visual_studio/NativeClientVSAddIn/UnitTests/TestUtilities.cs
@@ -52,7 +52,12 @@ namespace UnitTests
// to dte which fail because dte is busy.
ComMessageFilter.Register();
- Type visualStudioType = Type.GetTypeFromProgID("VisualStudio.DTE.10.0");
+ Type visualStudioType;
+ if (IsVS2012())
+ visualStudioType = Type.GetTypeFromProgID("VisualStudio.DTE.11.0");
+ else
+ visualStudioType = Type.GetTypeFromProgID("VisualStudio.DTE.10.0");
+
DTE2 visualStudio = Activator.CreateInstance(visualStudioType) as DTE2;
if (visualStudio == null)
{
@@ -84,6 +89,53 @@ namespace UnitTests
}
/// <summary>
+ /// Set the type of the project: Executable, DynamicLibrary, StaticLibrary
+ /// </summary>
+ static void Set2012Tools(Project project, String platformName)
+ {
+ VCConfiguration config;
+ IVCRulePropertyStorage rule;
+
+ config = TestUtilities.GetVCConfiguration(project, "Debug", platformName);
+ rule = config.Rules.Item("ConfigurationGeneral");
+ rule.SetPropertyValue("PlatformToolset", "v110");
+
+ config = TestUtilities.GetVCConfiguration(project, "Release", platformName);
+ rule = config.Rules.Item("ConfigurationGeneral");
+ rule.SetPropertyValue("PlatformToolset", "v110");
+ }
+
+ public static void SetProjectType(Project project, string projectType, string platformName)
+ {
+ VCConfiguration config;
+ IVCRulePropertyStorage rule;
+
+ config = TestUtilities.GetVCConfiguration(project, "Debug", platformName);
+ rule = config.Rules.Item("ConfigurationGeneral");
+ rule.SetPropertyValue("ConfigurationType", projectType);
+
+ config = TestUtilities.GetVCConfiguration(project, "Release", platformName);
+ rule = config.Rules.Item("ConfigurationGeneral");
+ rule.SetPropertyValue("ConfigurationType", projectType);
+ }
+
+ public static bool IsVS2012()
+ {
+#if VS2012
binji 2013/06/07 18:49:19 can only be determined at compile time?
Sam Clegg 2013/06/10 22:38:12 Yup.. http://stackoverflow.com/questions/8517159/
+ return true;
+#else
+ return false;
+#endif
+ }
+
+ static void AddPlatform(Project project, String platform, String copyFrom)
+ {
+ project.ConfigurationManager.AddPlatform(platform, copyFrom, true);
+ //if (IsVS2012())
binji 2013/06/07 18:49:19 unused?
Sam Clegg 2013/06/11 18:53:58 Done.
+ // Set2012Tools(project, platform);
+ }
+
+ /// <summary>
/// Creates a blank valid NaCl project with up-to-date settings. The path to the new solution
/// is returned.
/// </summary>
@@ -96,10 +148,13 @@ namespace UnitTests
public static string CreateBlankValidNaClSolution(
DTE2 dte, string name, string pepperCopyFrom, string naclCopyFrom, TestContext testContext)
{
- const string BlankSolution = "BlankValidSolution";
+ string blankSolution = "BlankValidSolution";
+ string srcSolution = blankSolution;
+ if (IsVS2012())
+ srcSolution += "2012";
string newSolutionDir = Path.Combine(testContext.DeploymentDirectory, name);
- string newSolution = Path.Combine(newSolutionDir, BlankSolution + ".sln");
- CopyDirectory(Path.Combine(testContext.DeploymentDirectory, BlankSolution), newSolutionDir);
+ string newSolution = Path.Combine(newSolutionDir, blankSolution + ".sln");
+ CopyDirectory(Path.Combine(testContext.DeploymentDirectory, srcSolution), newSolutionDir);
try
{
@@ -110,27 +165,33 @@ namespace UnitTests
if (PropertyManager.IsNaClPlatform(pepperCopyFrom))
{
// create nacl platforms first
- proj.ConfigurationManager.AddPlatform(Strings.NaCl64PlatformName, naclCopyFrom, true);
- proj.ConfigurationManager.AddPlatform(Strings.NaCl32PlatformName, naclCopyFrom, true);
- proj.ConfigurationManager.AddPlatform(Strings.NaClARMPlatformName, naclCopyFrom, true);
- proj.ConfigurationManager.AddPlatform(Strings.PNaClPlatformName, naclCopyFrom, true);
- proj.ConfigurationManager.AddPlatform(Strings.PepperPlatformName, pepperCopyFrom, true);
+ AddPlatform(proj, Strings.NaCl64PlatformName, naclCopyFrom);
+ AddPlatform(proj, Strings.NaCl32PlatformName, naclCopyFrom);
+ AddPlatform(proj, Strings.NaClARMPlatformName, naclCopyFrom);
+ AddPlatform(proj, Strings.PNaClPlatformName, naclCopyFrom);
+ AddPlatform(proj, Strings.PepperPlatformName, pepperCopyFrom);
}
else
{
// create pepper platform first
- proj.ConfigurationManager.AddPlatform(Strings.PepperPlatformName, pepperCopyFrom, true);
- proj.ConfigurationManager.AddPlatform(Strings.NaCl64PlatformName, naclCopyFrom, true);
- proj.ConfigurationManager.AddPlatform(Strings.NaCl32PlatformName, naclCopyFrom, true);
- proj.ConfigurationManager.AddPlatform(Strings.NaClARMPlatformName, naclCopyFrom, true);
- proj.ConfigurationManager.AddPlatform(Strings.PNaClPlatformName, naclCopyFrom, true);
+ AddPlatform(proj, Strings.PepperPlatformName, pepperCopyFrom);
+ AddPlatform(proj, Strings.NaCl64PlatformName, naclCopyFrom);
+ AddPlatform(proj, Strings.NaCl32PlatformName, naclCopyFrom);
+ AddPlatform(proj, Strings.NaClARMPlatformName, naclCopyFrom);
+ AddPlatform(proj, Strings.PNaClPlatformName, naclCopyFrom);
}
+ proj.Save();
+
// Set the active solution configuration to Debug|NaCl64.
SetSolutionConfiguration(dte, NaClProjectUniqueName, "Debug", Strings.NaCl64PlatformName);
- proj.Save();
dte.Solution.SaveAs(newSolution);
+
+ SetSolutionConfiguration(dte, NaClProjectUniqueName, "Release", Strings.NaCl64PlatformName);
+
+ dte.Solution.SaveAs(newSolution);
+
}
finally
{

Powered by Google App Engine
This is Rietveld 408576698