Skip to content
This repository was archived by the owner on Oct 16, 2020. It is now read-only.

Commit 2f67a53

Browse files
committed
Extract IsPlatformTarget32BitOrAnyCPU into an extension method.
Closes #274
1 parent 961c05c commit 2f67a53

3 files changed

Lines changed: 19 additions & 26 deletions

File tree

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

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
using System.Text;
2525

2626
using ICSharpCode.Core;
27+
using ICSharpCode.SharpDevelop;
2728
using ICSharpCode.SharpDevelop.Project;
2829
using ICSharpCode.UnitTesting;
2930

@@ -103,7 +104,7 @@ string ExecutableFileName {
103104
string runnerDirectory = Path.Combine(assemblyDirectory, @"Tools\Machine.Specifications");
104105

105106
string executableName = "mspec";
106-
if (TargetPlatformIs32Bit(project))
107+
if (project.IsPlatformTarget32BitOrAnyCPU())
107108
executableName += "-x86";
108109
if (!ProjectUsesDotnet20Runtime(project))
109110
executableName += "-clr4";
@@ -122,16 +123,6 @@ static bool ProjectUsesDotnet20Runtime(IProject project)
122123
return false;
123124
}
124125

125-
bool TargetPlatformIs32Bit(IProject project)
126-
{
127-
MSBuildBasedProject msbuildProject = project as MSBuildBasedProject;
128-
if (msbuildProject != null) {
129-
string platformTarget = msbuildProject.GetEvaluatedProperty("PlatformTarget");
130-
return String.Compare(platformTarget, "x86", true) == 0;
131-
}
132-
return false;
133-
}
134-
135126
string WorkingDirectory {
136127
get {
137128
return Path.GetDirectoryName(project.OutputAssemblyFullPath);

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

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ public string FileName {
100100
}
101101
// As SharpDevelop can't debug 64-bit applications yet, use
102102
// 32-bit NUnit even for AnyCPU test projects.
103-
if (IsPlatformTarget32BitOrAnyCPU(project)) {
103+
if (project.IsPlatformTarget32BitOrAnyCPU()) {
104104
exe += "-x86";
105105
}
106106
exe += ".exe";
@@ -246,20 +246,6 @@ public string GetArguments()
246246
return b.ToString();
247247
}
248248

249-
/// <summary>
250-
/// Checks that the project's PlatformTarget is x32 for the active configuration.
251-
/// </summary>
252-
static bool IsPlatformTarget32BitOrAnyCPU(IProject project)
253-
{
254-
MSBuildBasedProject msbuildProject = project as MSBuildBasedProject;
255-
if (msbuildProject != null) {
256-
string platformTarget = msbuildProject.GetEvaluatedProperty("PlatformTarget");
257-
return string.IsNullOrEmpty(platformTarget) || String.Equals(platformTarget, "x86", StringComparison.OrdinalIgnoreCase)
258-
|| String.Equals(platformTarget, "AnyCPU", StringComparison.OrdinalIgnoreCase);
259-
}
260-
return false;
261-
}
262-
263249
static bool ProjectUsesDotnet20Runtime(IProject project)
264250
{
265251
var p = project as ICSharpCode.SharpDevelop.Project.Converter.IUpgradableProject;

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

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1052,5 +1052,21 @@ public static IDocumentLine GetLineForOffset(this IDocument document, int offset
10521052
return document.GetLineByOffset(offset);
10531053
}
10541054
#endregion
1055+
1056+
#region IProject extensions
1057+
/// <summary>
1058+
/// Checks if the project's output is a .NET executable that can be run in a 32-bit process.
1059+
/// </summary>
1060+
public static bool IsPlatformTarget32BitOrAnyCPU(this IProject project)
1061+
{
1062+
MSBuildBasedProject msbuildProject = project as MSBuildBasedProject;
1063+
if (msbuildProject != null) {
1064+
string platformTarget = msbuildProject.GetEvaluatedProperty("PlatformTarget");
1065+
return string.IsNullOrEmpty(platformTarget) || String.Equals(platformTarget, "x86", StringComparison.OrdinalIgnoreCase)
1066+
|| String.Equals(platformTarget, "AnyCPU", StringComparison.OrdinalIgnoreCase);
1067+
}
1068+
return false;
1069+
}
1070+
#endregion
10551071
}
10561072
}

0 commit comments

Comments
 (0)