diff options
author | Lluis Sanchez Gual <lluis@xamarin.com> | 2015-07-09 23:01:32 +0300 |
---|---|---|
committer | Lluis Sanchez Gual <lluis@xamarin.com> | 2015-07-09 23:01:32 +0300 |
commit | c6b52e1b1a02dda11d483e4245d25136d405c9c4 (patch) | |
tree | 5bf16fe7b7b6b0ebd348f89285782846d4ab9774 | |
parent | 600030348ed17c2cb3b0301ce09097ea028397d6 (diff) | |
parent | 5c16b401e40fd1c9235d47ace9ab99bd97ad91c3 (diff) |
Merge remote-tracking branch 'origin/master' into roslyn
17 files changed, 666 insertions, 41 deletions
diff --git a/.gitmodules b/.gitmodules index 2cca62b1a3..322dfed8f0 100644 --- a/.gitmodules +++ b/.gitmodules @@ -26,8 +26,8 @@ url = git://github.com/mono/guiunit.git [submodule "main/external/fsharpbinding"] path = main/external/fsharpbinding - url = https://github.com/fsharp/xamarin-monodevelop-fsharp-addin.git - branch = master + url = git://github.com/fsharp/fsharpbinding.git + branch = 5.9 [submodule "main/external/nuget-binary"] path = main/external/nuget-binary url = git://github.com/mono/nuget-binary.git diff --git a/main/src/addins/MacPlatform/MainToolbar/StatusBar.cs b/main/src/addins/MacPlatform/MainToolbar/StatusBar.cs index e8083f9e8f..f79521d144 100644 --- a/main/src/addins/MacPlatform/MainToolbar/StatusBar.cs +++ b/main/src/addins/MacPlatform/MainToolbar/StatusBar.cs @@ -233,6 +233,7 @@ namespace MonoDevelop.MacIntegration.MainToolbar base.Dispose (disposing); } + NSTrackingArea textFieldArea; void ReconstructString () { if (string.IsNullOrEmpty (text)) { @@ -242,6 +243,18 @@ namespace MonoDevelop.MacIntegration.MainToolbar textField.AttributedStringValue = GetStatusString (text, textColor); imageView.Image = image; } + + var width = textField.AttributedStringValue.BoundingRectWithSize (new CGSize (nfloat.MaxValue, textField.Frame.Height), + NSStringDrawingOptions.UsesFontLeading | NSStringDrawingOptions.UsesLineFragmentOrigin).Width; + + if (textFieldArea != null) + RemoveTrackingArea (textFieldArea); + + if (width > textField.Frame.Width) { + textFieldArea = new NSTrackingArea (textField.Frame, NSTrackingAreaOptions.MouseEnteredAndExited | NSTrackingAreaOptions.ActiveInKeyWindow, this, null); + AddTrackingArea (textFieldArea); + } else + textFieldArea = null; } CALayer ProgressLayer { @@ -676,24 +689,20 @@ namespace MonoDevelop.MacIntegration.MainToolbar NSPopover popover; - void CreatePopoverForLayer (CALayer layer) + void CreatePopoverCommon (nfloat width, string text) { popover = new NSPopover { ContentViewController = new NSViewController (null, null), Animates = false }; - string tooltip = layerToStatus [layer.Name].ToolTip; - if (tooltip == null) - return; + var attrString = GetPopoverString (text); - var attrString = GetPopoverString (tooltip); - - var height = attrString.BoundingRectWithSize (new CGSize (230, nfloat.MaxValue), + var height = attrString.BoundingRectWithSize (new CGSize (width, nfloat.MaxValue), NSStringDrawingOptions.UsesFontLeading | NSStringDrawingOptions.UsesLineFragmentOrigin).Height; popover.ContentViewController.View = new NSTextField { - Frame = new CGRect (0, 0, 230, height + 14), + Frame = new CGRect (0, 0, width, height + 14), DrawsBackground = false, Bezeled = true, Editable = false, @@ -702,7 +711,21 @@ namespace MonoDevelop.MacIntegration.MainToolbar ((NSTextField)popover.ContentViewController.View).AttributedStringValue = attrString; } - public void ShowPopoverForLayer (CALayer layer) + void CreatePopoverForLayer (CALayer layer) + { + string tooltip = layerToStatus [layer.Name].ToolTip; + if (tooltip == null) + return; + + CreatePopoverCommon (230, tooltip); + } + + void CreatePopoverForStatusBar () + { + CreatePopoverCommon (Frame.Width, textField.AttributedStringValue.Value); + } + + void ShowPopoverForLayer (CALayer layer) { if (popover != null) return; @@ -714,6 +737,15 @@ namespace MonoDevelop.MacIntegration.MainToolbar popover.Show (layer.Frame, this, NSRectEdge.MinYEdge); } + void ShowPopoverForStatusBar () + { + if (popover != null) + return; + + CreatePopoverForStatusBar (); + popover.Show (textField.Frame, this, NSRectEdge.MinYEdge); + } + void DestroyPopover () { oldLayer = null; @@ -722,9 +754,13 @@ namespace MonoDevelop.MacIntegration.MainToolbar popover = null; } - CALayer LayerForEvent (NSEvent theEvent) + bool InTextField (CGPoint location) + { + return textField.IsMouseInRect (location, textField.Frame); + } + + CALayer LayerForPoint (CGPoint location) { - CGPoint location = ConvertPointFromView (theEvent.LocationInWindow, null); CALayer layer = Layer.PresentationLayer.HitTest (location); return layer != null ? layer.ModelLayer : null; } @@ -734,7 +770,14 @@ namespace MonoDevelop.MacIntegration.MainToolbar { base.MouseEntered (theEvent); - var layer = LayerForEvent (theEvent); + CGPoint location = ConvertPointFromView (theEvent.LocationInWindow, null); + + if (InTextField (location)) { + ShowPopoverForStatusBar (); + return; + } + + var layer = LayerForPoint (location); if (layer == null) return; @@ -755,16 +798,15 @@ namespace MonoDevelop.MacIntegration.MainToolbar { base.MouseExited (theEvent); - if (oldLayer != null) { - DestroyPopover (); - } + DestroyPopover (); } public override void MouseDown (NSEvent theEvent) { base.MouseDown (theEvent); - var layer = LayerForEvent (theEvent); + CGPoint location = ConvertPointFromView (theEvent.LocationInWindow, null); + var layer = LayerForPoint (location); if (layer != null && layer.Name != null) { Xwt.PointerButton button = Xwt.PointerButton.Left; switch ((NSEventType)(long)theEvent.ButtonNumber) { diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/TemplateWizard.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/TemplateWizard.cs index d352b62f42..de44190d15 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/TemplateWizard.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/TemplateWizard.cs @@ -70,23 +70,16 @@ namespace MonoDevelop.Ide.Templates void UpdateSupportedParameters (string parameters) { - if (String.IsNullOrEmpty (parameters)) { - supportedParameters = null; - return; - } - supportedParameters = new List<string> (); - foreach (string part in parameters.Split (new [] {',', ';'}, StringSplitOptions.RemoveEmptyEntries)) { - supportedParameters.Add (part.Trim ()); + if (!string.IsNullOrEmpty (parameters)) { + foreach (string part in parameters.Split (new [] {',', ';'}, StringSplitOptions.RemoveEmptyEntries)) { + supportedParameters.Add (part.Trim ()); + } } } public bool IsSupportedParameter (string name) { - if (supportedParameters == null) { - return true; - } - return supportedParameters.Contains (name); } diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/ProjectOperations.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/ProjectOperations.cs index beabe35aae..aec1f0bf9e 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/ProjectOperations.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/ProjectOperations.cs @@ -1779,9 +1779,15 @@ namespace MonoDevelop.Ide FileService.DeleteFile (filename); } return true; - } - + } + public void TransferFiles (ProgressMonitor monitor, Project sourceProject, FilePath sourcePath, Project targetProject, + FilePath targetPath, bool removeFromSource, bool copyOnlyProjectFiles) + { + TransferFilesInternal (monitor, sourceProject, sourcePath, targetProject, targetPath, removeFromSource, copyOnlyProjectFiles); + } + + internal static void TransferFilesInternal (ProgressMonitor monitor, Project sourceProject, FilePath sourcePath, Project targetProject, FilePath targetPath, bool removeFromSource, bool copyOnlyProjectFiles) { // When transfering directories, targetPath is the directory where the source @@ -1803,11 +1809,9 @@ namespace MonoDevelop.Ide bool sourceIsFolder = Directory.Exists (sourcePath); - bool copyingFolder = sourceIsFolder && ( + bool movingFolder = removeFromSource && sourceIsFolder && ( !copyOnlyProjectFiles || - IsDirectoryHierarchyEmpty (sourcePath)); - - bool movingFolder = removeFromSource && copyingFolder; + ContainsOnlyProjectFiles (sourcePath, sourceProject)); // We need to remove all files + directories from the source project // but when dealing with the VCS addins we need to process only the @@ -1972,8 +1976,8 @@ namespace MonoDevelop.Ide sourceProject.Files.Remove (v); } - // Moving an empty folder. A new folder object has to be added to the project. - if ((movingFolder || copyingFolder) && !targetProject.Files.GetFilesInVirtualPath (targetPath).Any ()) { + // Moving or copying an empty folder. A new folder object has to be added to the project. + if (sourceIsFolder && !targetProject.Files.GetFilesInVirtualPath (targetPath).Any ()) { var folderFile = new ProjectFile (targetPath) { Subtype = Subtype.Directory }; targetProject.Files.Add (folderFile); } @@ -2037,7 +2041,7 @@ namespace MonoDevelop.Ide return " (" + string.Format (sc, n) + ")"; } - void GetAllFilesRecursive (string path, List<ProjectFile> files) + static void GetAllFilesRecursive (string path, List<ProjectFile> files) { if (File.Exists (path)) { files.Add (new ProjectFile (path)); @@ -2053,11 +2057,12 @@ namespace MonoDevelop.Ide } } - bool IsDirectoryHierarchyEmpty (string path) + static bool ContainsOnlyProjectFiles (string path, Project project) { - if (Directory.GetFiles(path).Length > 0) return false; + if (Directory.GetFiles (path).Any (f => project.Files.GetFile (f) == null)) + return false; foreach (string dir in Directory.GetDirectories (path)) - if (!IsDirectoryHierarchyEmpty (dir)) return false; + if (!ContainsOnlyProjectFiles (dir, project)) return false; return true; } diff --git a/main/tests/Ide.Tests/FileTransferTests.cs b/main/tests/Ide.Tests/FileTransferTests.cs new file mode 100644 index 0000000000..1afc72e888 --- /dev/null +++ b/main/tests/Ide.Tests/FileTransferTests.cs @@ -0,0 +1,89 @@ +// +// FileTransferTests.cs +// +// Author: +// Lluis Sanchez Gual <lluis@xamarin.com> +// +// Copyright (c) 2015 Xamarin, Inc (http://www.xamarin.com) +// +// 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 UnitTests;
+using NUnit.Framework; +using MonoDevelop.Projects; +using MonoDevelop.Ide; +using System.IO; +using System.Threading.Tasks;
+
+namespace Ide.Tests +{ + public class FileTransferTests: TestBase + { + [Test] + public async Task MoveEmptyFolder () + { + string solFile = Util.GetSampleProject ("transfer-tests", "console-with-libs.sln"); + var sol = (Solution) await MonoDevelop.Projects.Services.ProjectService.ReadWorkspaceItem (Util.GetMonitor (), solFile); + var lib1 = (DotNetProject) sol.FindProjectByName ("library1"); + var lib2 = (DotNetProject) sol.FindProjectByName ("library2"); + + var sourceDir = lib2.ItemDirectory.Combine ("f2-empty"); + var targetDir = lib1.ItemDirectory.Combine ("f2-empty"); + + Assert.IsTrue (lib2.Files.GetFile (sourceDir) != null); + + ProjectOperations.TransferFilesInternal (Util.GetMonitor (), lib2, sourceDir, lib1, targetDir, true, true); + + Assert.IsTrue (Directory.Exists (targetDir)); + Assert.IsFalse (Directory.Exists (sourceDir)); + + Assert.IsTrue (lib1.Files.GetFile (targetDir) != null); + Assert.IsFalse (lib2.Files.GetFile (sourceDir) != null); + } + + [Test] + public async Task MoveFolder () + { + string solFile = Util.GetSampleProject ("transfer-tests", "console-with-libs.sln"); + var sol = (Solution) await MonoDevelop.Projects.Services.ProjectService.ReadWorkspaceItem (Util.GetMonitor (), solFile); + var lib1 = (DotNetProject) sol.FindProjectByName ("library1"); + var lib2 = (DotNetProject) sol.FindProjectByName ("library2"); + + var sourceDir = lib2.ItemDirectory.Combine ("f2"); + var targetDir = lib1.ItemDirectory.Combine ("f2"); + var sourceFile = sourceDir.Combine ("a.cs"); + var targetFile = targetDir.Combine ("a.cs"); + + Assert.IsTrue (lib2.Files.GetFile (sourceDir) != null); + Assert.IsTrue (lib2.Files.GetFile (sourceFile) != null); + + ProjectOperations.TransferFilesInternal (Util.GetMonitor (), lib2, sourceDir, lib1, targetDir, true, true); + + Assert.IsTrue (Directory.Exists (targetDir)); + Assert.IsTrue (File.Exists (targetFile)); + Assert.IsFalse (Directory.Exists (sourceDir)); + + Assert.IsTrue (lib1.Files.GetFile (targetDir) != null); + Assert.IsTrue (lib1.Files.GetFile (targetFile) != null); + Assert.IsFalse (lib2.Files.GetFile (sourceDir) != null); + Assert.IsFalse (lib2.Files.GetFile (sourceFile) != null); + } + } +} + diff --git a/main/tests/Ide.Tests/Ide.Tests.csproj b/main/tests/Ide.Tests/Ide.Tests.csproj index 48cd1216b9..de1268a5c4 100644 --- a/main/tests/Ide.Tests/Ide.Tests.csproj +++ b/main/tests/Ide.Tests/Ide.Tests.csproj @@ -37,6 +37,7 @@ </ItemGroup> <ItemGroup> <Compile Include="ProjectTemplateTests.cs" /> + <Compile Include="FileTransferTests.cs" /> </ItemGroup> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> <ItemGroup> diff --git a/main/tests/test-projects/transfer-tests/console-with-libs.sln b/main/tests/test-projects/transfer-tests/console-with-libs.sln new file mode 100644 index 0000000000..3a1c54554b --- /dev/null +++ b/main/tests/test-projects/transfer-tests/console-with-libs.sln @@ -0,0 +1,33 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "console-with-libs", "console-with-libs\console-with-libs.csproj", "{EAB80A13-FC3E-4E53-8950-E6B9F19E4C90}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "library1", "library1\library1.csproj", "{7F63CBE6-2FE7-47A7-8930-EA078DA05062}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "library2", "library2\library2.csproj", "{42A9AAF1-DCB8-4F3F-9B20-5F17D4EAAD20}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {42A9AAF1-DCB8-4F3F-9B20-5F17D4EAAD20}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {42A9AAF1-DCB8-4F3F-9B20-5F17D4EAAD20}.Debug|Any CPU.Build.0 = Debug|Any CPU + {42A9AAF1-DCB8-4F3F-9B20-5F17D4EAAD20}.Release|Any CPU.ActiveCfg = Release|Any CPU + {42A9AAF1-DCB8-4F3F-9B20-5F17D4EAAD20}.Release|Any CPU.Build.0 = Release|Any CPU + {7F63CBE6-2FE7-47A7-8930-EA078DA05062}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7F63CBE6-2FE7-47A7-8930-EA078DA05062}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7F63CBE6-2FE7-47A7-8930-EA078DA05062}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7F63CBE6-2FE7-47A7-8930-EA078DA05062}.Release|Any CPU.Build.0 = Release|Any CPU + {EAB80A13-FC3E-4E53-8950-E6B9F19E4C90}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EAB80A13-FC3E-4E53-8950-E6B9F19E4C90}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EAB80A13-FC3E-4E53-8950-E6B9F19E4C90}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EAB80A13-FC3E-4E53-8950-E6B9F19E4C90}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(MonoDevelopProperties) = preSolution + StartupItem = console-with-libs\console-with-libs.csproj + name = console-with-libs + EndGlobalSection +EndGlobal diff --git a/main/tests/test-projects/transfer-tests/console-with-libs/Program.cs b/main/tests/test-projects/transfer-tests/console-with-libs/Program.cs new file mode 100644 index 0000000000..e6ef050783 --- /dev/null +++ b/main/tests/test-projects/transfer-tests/console-with-libs/Program.cs @@ -0,0 +1,38 @@ +// Main.cs +// +// Author: +// Lluis Sanchez Gual <lluis@novell.com> +// +// Copyright (c) 2008 Novell, Inc (http://www.novell.com) +// +// 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; + +namespace consolewithlib +{ + class MainClass + { + public static void Main(string[] args) + { + Console.WriteLine("Hello World!"); + } + } +} diff --git a/main/tests/test-projects/transfer-tests/console-with-libs/Properties/AssemblyInfo.cs b/main/tests/test-projects/transfer-tests/console-with-libs/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000..b0f5040c6e --- /dev/null +++ b/main/tests/test-projects/transfer-tests/console-with-libs/Properties/AssemblyInfo.cs @@ -0,0 +1,51 @@ +// AssemblyInfo.cs +// +// Author: +// Lluis Sanchez Gual <lluis@novell.com> +// +// Copyright (c) 2008 Novell, Inc (http://www.novell.com) +// +// 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.Reflection; +using System.Runtime.CompilerServices; + +// Information about this assembly is defined by the following attributes. +// Change them to the values specific to your project. + +[assembly: AssemblyTitle("console-with-libs")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}". +// If the build and revision are set to '*' they will be updated automatically. + +[assembly: AssemblyVersion("1.0.*")] + +// The following attributes are used to specify the signing key for the assembly, +// if desired. See the Mono documentation for more information about signing. + +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] diff --git a/main/tests/test-projects/transfer-tests/console-with-libs/console-with-libs.csproj b/main/tests/test-projects/transfer-tests/console-with-libs/console-with-libs.csproj new file mode 100644 index 0000000000..403bc71c94 --- /dev/null +++ b/main/tests/test-projects/transfer-tests/console-with-libs/console-with-libs.csproj @@ -0,0 +1,53 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ProductVersion>10.0.0</ProductVersion> + <SchemaVersion>2.0</SchemaVersion> + <ProjectGuid>{EAB80A13-FC3E-4E53-8950-E6B9F19E4C90}</ProjectGuid> + <OutputType>Exe</OutputType> + <AssemblyName>console-with-libs</AssemblyName> + <TargetFrameworkVersion>v4.5</TargetFrameworkVersion> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <DebugSymbols>true</DebugSymbols> + <Optimize>true</Optimize> + <OutputPath>bin\Debug</OutputPath> + <DefineConstants>DEBUG</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + <CheckForOverflowUnderflow>true</CheckForOverflowUnderflow> + <Execution> + <Execution clr-version="Net_2_0" xmlns="" /> + </Execution> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <Optimize>true</Optimize> + <OutputPath>bin\Release</OutputPath> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + <Execution> + <Execution clr-version="Net_2_0" xmlns="" /> + </Execution> + <CheckForOverflowUnderflow>true</CheckForOverflowUnderflow> + </PropertyGroup> + <ItemGroup> + <Compile Include="Program.cs" /> + <Compile Include="Properties\AssemblyInfo.cs" /> + </ItemGroup> + <ItemGroup> + <Reference Include="System" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\library1\library1.csproj"> + <Project>{7F63CBE6-2FE7-47A7-8930-EA078DA05062}</Project> + <Name>library1</Name> + </ProjectReference> + <ProjectReference Include="..\library2\library2.csproj"> + <Project>{42A9AAF1-DCB8-4F3F-9B20-5F17D4EAAD20}</Project> + <Name>library2</Name> + </ProjectReference> + </ItemGroup> + <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> +</Project> diff --git a/main/tests/test-projects/transfer-tests/library1/MyClass.cs b/main/tests/test-projects/transfer-tests/library1/MyClass.cs new file mode 100644 index 0000000000..789d1b07ae --- /dev/null +++ b/main/tests/test-projects/transfer-tests/library1/MyClass.cs @@ -0,0 +1,41 @@ +// MyClass.cs +// +// Author: +// Lluis Sanchez Gual <lluis@novell.com> +// +// Copyright (c) 2008 Novell, Inc (http://www.novell.com) +// +// 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; + +namespace library1 +{ + + + public class MyClass + { + + public MyClass() + { + } + } +} diff --git a/main/tests/test-projects/transfer-tests/library1/Properties/AssemblyInfo.cs b/main/tests/test-projects/transfer-tests/library1/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000..dbc7743054 --- /dev/null +++ b/main/tests/test-projects/transfer-tests/library1/Properties/AssemblyInfo.cs @@ -0,0 +1,51 @@ +// AssemblyInfo.cs +// +// Author: +// Lluis Sanchez Gual <lluis@novell.com> +// +// Copyright (c) 2008 Novell, Inc (http://www.novell.com) +// +// 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.Reflection; +using System.Runtime.CompilerServices; + +// Information about this assembly is defined by the following attributes. +// Change them to the values specific to your project. + +[assembly: AssemblyTitle("library1")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}". +// If the build and revision are set to '*' they will be updated automatically. + +[assembly: AssemblyVersion("1.0.*")] + +// The following attributes are used to specify the signing key for the assembly, +// if desired. See the Mono documentation for more information about signing. + +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] diff --git a/main/tests/test-projects/transfer-tests/library1/library1.csproj b/main/tests/test-projects/transfer-tests/library1/library1.csproj new file mode 100644 index 0000000000..fd1abedb1d --- /dev/null +++ b/main/tests/test-projects/transfer-tests/library1/library1.csproj @@ -0,0 +1,45 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ProductVersion>10.0.0</ProductVersion> + <SchemaVersion>2.0</SchemaVersion> + <ProjectGuid>{7F63CBE6-2FE7-47A7-8930-EA078DA05062}</ProjectGuid> + <OutputType>Library</OutputType> + <AssemblyName>library1</AssemblyName> + <TargetFrameworkVersion>v4.5</TargetFrameworkVersion> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <DebugSymbols>true</DebugSymbols> + <Optimize>true</Optimize> + <OutputPath>bin\Debug</OutputPath> + <DefineConstants>DEBUG</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + <Execution> + <Execution clr-version="Net_2_0" xmlns="" /> + </Execution> + <ConsolePause>false</ConsolePause> + <CheckForOverflowUnderflow>true</CheckForOverflowUnderflow> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <Optimize>true</Optimize> + <OutputPath>bin\Release</OutputPath> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + <Execution> + <Execution clr-version="Net_2_0" xmlns="" /> + </Execution> + <ConsolePause>false</ConsolePause> + <CheckForOverflowUnderflow>true</CheckForOverflowUnderflow> + </PropertyGroup> + <ItemGroup> + <Compile Include="MyClass.cs" /> + <Compile Include="Properties\AssemblyInfo.cs" /> + </ItemGroup> + <ItemGroup> + <Reference Include="System" /> + </ItemGroup> + <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> +</Project>
\ No newline at end of file diff --git a/main/tests/test-projects/transfer-tests/library2/MyClass.cs b/main/tests/test-projects/transfer-tests/library2/MyClass.cs new file mode 100644 index 0000000000..47ce7c5a20 --- /dev/null +++ b/main/tests/test-projects/transfer-tests/library2/MyClass.cs @@ -0,0 +1,41 @@ +// MyClass.cs +// +// Author: +// Lluis Sanchez Gual <lluis@novell.com> +// +// Copyright (c) 2008 Novell, Inc (http://www.novell.com) +// +// 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; + +namespace library2 +{ + + + public class MyClass + { + + public MyClass() + { + } + } +} diff --git a/main/tests/test-projects/transfer-tests/library2/Properties/AssemblyInfo.cs b/main/tests/test-projects/transfer-tests/library2/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000..6eb8385596 --- /dev/null +++ b/main/tests/test-projects/transfer-tests/library2/Properties/AssemblyInfo.cs @@ -0,0 +1,51 @@ +// AssemblyInfo.cs +// +// Author: +// Lluis Sanchez Gual <lluis@novell.com> +// +// Copyright (c) 2008 Novell, Inc (http://www.novell.com) +// +// 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.Reflection; +using System.Runtime.CompilerServices; + +// Information about this assembly is defined by the following attributes. +// Change them to the values specific to your project. + +[assembly: AssemblyTitle("library2")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}". +// If the build and revision are set to '*' they will be updated automatically. + +[assembly: AssemblyVersion("1.0.*")] + +// The following attributes are used to specify the signing key for the assembly, +// if desired. See the Mono documentation for more information about signing. + +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] diff --git a/main/tests/test-projects/transfer-tests/library2/f2/a.cs b/main/tests/test-projects/transfer-tests/library2/f2/a.cs new file mode 100644 index 0000000000..47ce7c5a20 --- /dev/null +++ b/main/tests/test-projects/transfer-tests/library2/f2/a.cs @@ -0,0 +1,41 @@ +// MyClass.cs +// +// Author: +// Lluis Sanchez Gual <lluis@novell.com> +// +// Copyright (c) 2008 Novell, Inc (http://www.novell.com) +// +// 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; + +namespace library2 +{ + + + public class MyClass + { + + public MyClass() + { + } + } +} diff --git a/main/tests/test-projects/transfer-tests/library2/library2.csproj b/main/tests/test-projects/transfer-tests/library2/library2.csproj new file mode 100644 index 0000000000..c32de35edc --- /dev/null +++ b/main/tests/test-projects/transfer-tests/library2/library2.csproj @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ProductVersion>10.0.0</ProductVersion> + <SchemaVersion>2.0</SchemaVersion> + <ProjectGuid>{42A9AAF1-DCB8-4F3F-9B20-5F17D4EAAD20}</ProjectGuid> + <OutputType>Library</OutputType> + <AssemblyName>library2</AssemblyName> + <TargetFrameworkVersion>v4.5</TargetFrameworkVersion> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <DebugSymbols>true</DebugSymbols> + <Optimize>true</Optimize> + <OutputPath>bin\Debug</OutputPath> + <DefineConstants>DEBUG</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + <Execution> + <Execution clr-version="Net_2_0" xmlns="" /> + </Execution> + <ConsolePause>false</ConsolePause> + <CheckForOverflowUnderflow>true</CheckForOverflowUnderflow> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <Optimize>true</Optimize> + <OutputPath>bin\Release</OutputPath> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + <Execution> + <Execution clr-version="Net_2_0" xmlns="" /> + </Execution> + <ConsolePause>false</ConsolePause> + <CheckForOverflowUnderflow>true</CheckForOverflowUnderflow> + </PropertyGroup> + <ItemGroup> + <Compile Include="MyClass.cs" /> + <Compile Include="Properties\AssemblyInfo.cs" /> + <Compile Include="f2\a.cs" /> + </ItemGroup> + <ItemGroup> + <Reference Include="System" /> + </ItemGroup> + <ItemGroup> + <Folder Include="f2\" /> + <Folder Include="f2-empty\" /> + </ItemGroup> + <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> +</Project>
\ No newline at end of file |