Browse Source

Solution fix to load multiple platforms solutions

Adding ProjectConfigurations item group in new vcxproj files

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@4437 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Tomasz Tretkowski 17 years ago
parent
commit
251e5f7b2f
  1. 1
      src/AddIns/BackendBindings/CppBinding/CppBinding/CppBinding.csproj
  2. 19
      src/AddIns/BackendBindings/CppBinding/CppBinding/Project/CppProject.cs
  3. 4
      src/Main/Base/Project/Src/Project/Solution/Solution.cs

1
src/AddIns/BackendBindings/CppBinding/CppBinding/CppBinding.csproj

@ -53,6 +53,7 @@ @@ -53,6 +53,7 @@
</PropertyGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" />
<ItemGroup>
<Reference Include="Microsoft.Build" />
<Reference Include="System" />
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>

19
src/AddIns/BackendBindings/CppBinding/CppBinding/Project/CppProject.cs

@ -1,4 +1,6 @@ @@ -1,4 +1,6 @@
using System.IO;
using Microsoft.Build.Construction;
using System.Collections.Generic;
using System.IO;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Internal.Templates;
@ -13,6 +15,7 @@ namespace ICSharpCode.CppBinding.Project @@ -13,6 +15,7 @@ namespace ICSharpCode.CppBinding.Project
AddImport(DefaultPropsFile, null);
AddImport(PropsFile, null);
AddImport(DefaultTargetsFile, null);
AddProjectConfigurationsItemGroup();
}
public CppProject(ProjectLoadInformation info) : base(info)
@ -76,5 +79,19 @@ namespace ICSharpCode.CppBinding.Project @@ -76,5 +79,19 @@ namespace ICSharpCode.CppBinding.Project
public const string DefaultTargetsFile = @"$(VCTargetsPath)\Microsoft.Cpp.Targets";
public const string DefaultPropsFile = @"$(VCTargetsPath)\Microsoft.Cpp.Default.props";
public const string PropsFile = @"$(VCTargetsPath)\Microsoft.Cpp.props";
/// <summary>
/// Adds the item group containting the ProjectConfiguration items to a new project.
/// </summary>
private void AddProjectConfigurationsItemGroup() {
ProjectRootElement file = MSBuildProjectFile;
ProjectItemGroupElement configItemGroup = file.AddItemGroup();
configItemGroup.Label = "ProjectConfigurations";
foreach (string target in new string[] {"Debug|Win32", "Release|Win32"}) {
ProjectItemElement prjConfiguration = configItemGroup.AddItem("ProjectConfiguration", target);
prjConfiguration.AddMetadata("Configuration", GetConfigurationNameFromKey(target));
prjConfiguration.AddMetadata("Platform", GetPlatformNameFromKey(target));
}
}
}
}

4
src/Main/Base/Project/Src/Project/Solution/Solution.cs

@ -683,7 +683,7 @@ namespace ICSharpCode.SharpDevelop.Project @@ -683,7 +683,7 @@ namespace ICSharpCode.SharpDevelop.Project
string key = configuration + "|" + platform;
configurations.Add(key);
string searchKey = guid + "." + key + ".Build.0";
string searchKey = guid + "." + key + ".ActiveCfg";
if (!prjSec.Items.Exists(item => item.Name == searchKey)) {
prjSec.Items.Add(new SolutionItem(searchKey, key));
changed = true;
@ -869,7 +869,7 @@ namespace ICSharpCode.SharpDevelop.Project @@ -869,7 +869,7 @@ namespace ICSharpCode.SharpDevelop.Project
foreach (SolutionItem item in prjSec.Items) {
dict[item.Name] = item;
}
string searchKeyPostFix = "." + solutionConfiguration + "|" + solutionPlatform + ".Build.0";
string searchKeyPostFix = "." + solutionConfiguration + "|" + solutionPlatform + ".ActiveCfg";
foreach (IProject p in Projects) {
string searchKey = p.IdGuid + searchKeyPostFix;
SolutionItem solutionItem;

Loading…
Cancel
Save