Browse Source

Extract IsPlatformTarget32BitOrAnyCPU into an extension method.

Closes #274
pull/462/head
Daniel Grunwald 11 years ago
parent
commit
2f67a53159
  1. 13
      src/AddIns/Analysis/MachineSpecifications/MachineSpecifications/src/MSpecApplication.cs
  2. 16
      src/AddIns/Analysis/UnitTesting/NUnit/NUnitConsoleApplication.cs
  3. 16
      src/Main/Base/Project/Util/SharpDevelopExtensions.cs

13
src/AddIns/Analysis/MachineSpecifications/MachineSpecifications/src/MSpecApplication.cs

@ -24,6 +24,7 @@ using System.Linq; @@ -24,6 +24,7 @@ using System.Linq;
using System.Text;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Project;
using ICSharpCode.UnitTesting;
@ -103,7 +104,7 @@ namespace ICSharpCode.MachineSpecifications @@ -103,7 +104,7 @@ namespace ICSharpCode.MachineSpecifications
string runnerDirectory = Path.Combine(assemblyDirectory, @"Tools\Machine.Specifications");
string executableName = "mspec";
if (TargetPlatformIs32Bit(project))
if (project.IsPlatformTarget32BitOrAnyCPU())
executableName += "-x86";
if (!ProjectUsesDotnet20Runtime(project))
executableName += "-clr4";
@ -122,16 +123,6 @@ namespace ICSharpCode.MachineSpecifications @@ -122,16 +123,6 @@ namespace ICSharpCode.MachineSpecifications
return false;
}
bool TargetPlatformIs32Bit(IProject project)
{
MSBuildBasedProject msbuildProject = project as MSBuildBasedProject;
if (msbuildProject != null) {
string platformTarget = msbuildProject.GetEvaluatedProperty("PlatformTarget");
return String.Compare(platformTarget, "x86", true) == 0;
}
return false;
}
string WorkingDirectory {
get {
return Path.GetDirectoryName(project.OutputAssemblyFullPath);

16
src/AddIns/Analysis/UnitTesting/NUnit/NUnitConsoleApplication.cs

@ -100,7 +100,7 @@ namespace ICSharpCode.UnitTesting @@ -100,7 +100,7 @@ namespace ICSharpCode.UnitTesting
}
// As SharpDevelop can't debug 64-bit applications yet, use
// 32-bit NUnit even for AnyCPU test projects.
if (IsPlatformTarget32BitOrAnyCPU(project)) {
if (project.IsPlatformTarget32BitOrAnyCPU()) {
exe += "-x86";
}
exe += ".exe";
@ -246,20 +246,6 @@ namespace ICSharpCode.UnitTesting @@ -246,20 +246,6 @@ namespace ICSharpCode.UnitTesting
return b.ToString();
}
/// <summary>
/// Checks that the project's PlatformTarget is x32 for the active configuration.
/// </summary>
static bool IsPlatformTarget32BitOrAnyCPU(IProject project)
{
MSBuildBasedProject msbuildProject = project as MSBuildBasedProject;
if (msbuildProject != null) {
string platformTarget = msbuildProject.GetEvaluatedProperty("PlatformTarget");
return string.IsNullOrEmpty(platformTarget) || String.Equals(platformTarget, "x86", StringComparison.OrdinalIgnoreCase)
|| String.Equals(platformTarget, "AnyCPU", StringComparison.OrdinalIgnoreCase);
}
return false;
}
static bool ProjectUsesDotnet20Runtime(IProject project)
{
var p = project as ICSharpCode.SharpDevelop.Project.Converter.IUpgradableProject;

16
src/Main/Base/Project/Util/SharpDevelopExtensions.cs

@ -1052,5 +1052,21 @@ namespace ICSharpCode.SharpDevelop @@ -1052,5 +1052,21 @@ namespace ICSharpCode.SharpDevelop
return document.GetLineByOffset(offset);
}
#endregion
#region IProject extensions
/// <summary>
/// Checks if the project's output is a .NET executable that can be run in a 32-bit process.
/// </summary>
public static bool IsPlatformTarget32BitOrAnyCPU(this IProject project)
{
MSBuildBasedProject msbuildProject = project as MSBuildBasedProject;
if (msbuildProject != null) {
string platformTarget = msbuildProject.GetEvaluatedProperty("PlatformTarget");
return string.IsNullOrEmpty(platformTarget) || String.Equals(platformTarget, "x86", StringComparison.OrdinalIgnoreCase)
|| String.Equals(platformTarget, "AnyCPU", StringComparison.OrdinalIgnoreCase);
}
return false;
}
#endregion
}
}

Loading…
Cancel
Save