diff options
Diffstat (limited to 'main/src/core/MonoDevelop.Core/MonoDevelop.Projects.SharedAssetsProjects/SharedAssetsProjectMSBuildHandler.cs')
-rw-r--r-- | main/src/core/MonoDevelop.Core/MonoDevelop.Projects.SharedAssetsProjects/SharedAssetsProjectMSBuildHandler.cs | 139 |
1 files changed, 0 insertions, 139 deletions
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.SharedAssetsProjects/SharedAssetsProjectMSBuildHandler.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.SharedAssetsProjects/SharedAssetsProjectMSBuildHandler.cs deleted file mode 100644 index d64df4f8e0..0000000000 --- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.SharedAssetsProjects/SharedAssetsProjectMSBuildHandler.cs +++ /dev/null @@ -1,139 +0,0 @@ -// -// SharedProjectMSBuildHandler.cs -// -// Author: -// Lluis Sanchez <lluis@xamarin.com> -// -// Copyright (c) 2014 Xamarin Inc -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. -using System; -using System.Linq; -using System.Xml; -using System.IO; -using MonoDevelop.Core; -using System.Collections.Generic; -using MonoDevelop.Projects.Formats.MSBuild; - -namespace MonoDevelop.Projects.SharedAssetsProjects -{ - class SharedAssetsProjectMSBuildHandler: MSBuildProjectHandler - { - string projitemsFile; - - public SharedAssetsProjectMSBuildHandler () - { - } - - protected override void LoadProject (IProgressMonitor monitor, MSBuildProject msproject) - { - var doc = msproject.Document; - projitemsFile = null; - foreach (var no in doc.DocumentElement.ChildNodes) { - var im = no as XmlElement; - if (im != null && im.LocalName == "Import" && im.GetAttribute ("Label") == "Shared") { - projitemsFile = im.GetAttribute ("Project"); - break; - } - } - if (projitemsFile == null) - return; - - // TODO: load the type from msbuild - ((SharedAssetsProject)EntityItem).LanguageName = "C#"; - - projitemsFile = Path.Combine (Path.GetDirectoryName (msproject.FileName), projitemsFile); - - MSBuildProject p = new MSBuildProject (); - p.Load (projitemsFile); - - MSBuildSerializer ser = CreateSerializer (); - ser.SerializationContext.BaseFile = EntityItem.FileName; - ser.SerializationContext.ProgressMonitor = monitor; - - Item.SetItemHandler (this); - - var cp = p.PropertyGroups.FirstOrDefault (g => g.Label == "Configuration"); - if (cp != null) - ((SharedAssetsProject)EntityItem).DefaultNamespace = cp.GetPropertyValue ("Import_RootNamespace"); - - LoadProjectItems (p, ser, ProjectItemFlags.None); - } - - protected override MSBuildProject SaveProject (IProgressMonitor monitor) - { - MSBuildSerializer ser = CreateSerializer (); - ser.SerializationContext.BaseFile = EntityItem.FileName; - ser.SerializationContext.ProgressMonitor = monitor; - - MSBuildProject projitemsProject = new MSBuildProject (); - MSBuildProject msproject = new MSBuildProject (); - - var newProject = EntityItem.FileName == null || !File.Exists (EntityItem.FileName); - if (newProject) { - var grp = msproject.GetGlobalPropertyGroup (); - if (grp == null) - grp = msproject.AddNewPropertyGroup (false); - grp.SetPropertyValue ("ProjectGuid", EntityItem.ItemId, false); - var import = msproject.AddNewImport (@"$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props"); - import.Condition = @"Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')"; - msproject.AddNewImport (@"$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.Common.Default.props"); - msproject.AddNewImport (@"$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.Common.props"); - import = msproject.AddNewImport (Path.ChangeExtension (EntityItem.FileName.FileName, ".projitems")); - import.Label = "Shared"; - msproject.AddNewImport (@"$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.CSharp.targets"); - } else { - msproject.Load (EntityItem.FileName); - } - - // having no ToolsVersion is equivalent to 2.0, roundtrip that correctly - if (ToolsVersion != "2.0") - msproject.ToolsVersion = ToolsVersion; - else if (string.IsNullOrEmpty (msproject.ToolsVersion)) - msproject.ToolsVersion = null; - else - msproject.ToolsVersion = "2.0"; - - if (projitemsFile == null) - projitemsFile = Path.ChangeExtension (EntityItem.FileName, ".projitems"); - if (File.Exists (projitemsFile)) { - projitemsProject.Load (projitemsFile); - } else { - var grp = projitemsProject.AddNewPropertyGroup (true); - grp.SetPropertyValue ("MSBuildAllProjects", "$(MSBuildAllProjects);$(MSBuildThisFileFullPath)", false); - grp.SetPropertyValue ("HasSharedItems", "true", false); - grp.SetPropertyValue ("SharedGUID", EntityItem.ItemId, false); - } - - var configGrp = projitemsProject.PropertyGroups.FirstOrDefault (g => g.Label == "Configuration"); - if (configGrp == null) { - configGrp = projitemsProject.AddNewPropertyGroup (true); - configGrp.Label = "Configuration"; - } - configGrp.SetPropertyValue ("Import_RootNamespace", ((SharedAssetsProject)EntityItem).DefaultNamespace, false); - - SaveProjectItems (monitor, new MSBuildFileFormatVS12 (), ser, projitemsProject, "$(MSBuildThisFileDirectory)"); - - projitemsProject.Save (projitemsFile); - - return msproject; - } - } -} - |