From 92f5548b14882979e0f67e7bad4fb8f0f3d7f0b1 Mon Sep 17 00:00:00 2001 From: Rolf Bjarne Kvinge Date: Tue, 14 Jan 2020 00:02:00 +0100 Subject: [PATCH 01/12] Bump Xamarin.MacDev. New commits in xamarin/Xamarin.MacDev: * xamarin/Xamarin.MacDev@210c664 Adds net451 to Xamarin.MacDev.csproj * xamarin/Xamarin.MacDev@64db365 [winios] Changes provisioning profiles default path * xamarin/Xamarin.MacDev@d34430a Switch to short-form projects and build for both net461 and netstandard2.0. (#68) Diff: https://github.com/xamarin/Xamarin.MacDev/compare/0f578f51e63b6ff93014782dbc9378e6b6bc6d75..210c664e56117d3a1a7f6dd002109eb444dbdc17 --- external/Xamarin.MacDev | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/external/Xamarin.MacDev b/external/Xamarin.MacDev index 0f578f51e63b..210c664e5611 160000 --- a/external/Xamarin.MacDev +++ b/external/Xamarin.MacDev @@ -1 +1 @@ -Subproject commit 0f578f51e63b6ff93014782dbc9378e6b6bc6d75 +Subproject commit 210c664e56117d3a1a7f6dd002109eb444dbdc17 From 2bbc50233a3c13f18f561de56f2cf193a63cec45 Mon Sep 17 00:00:00 2001 From: Rolf Bjarne Kvinge Date: Fri, 10 Jan 2020 23:13:08 +0100 Subject: [PATCH 02/12] [msbuild] Update to latest Mono.Cecil. The older version doesn't support netstandard2.0. No code changes were required. --- msbuild/Xamarin.MacDev.Tasks/Xamarin.MacDev.Tasks.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/msbuild/Xamarin.MacDev.Tasks/Xamarin.MacDev.Tasks.csproj b/msbuild/Xamarin.MacDev.Tasks/Xamarin.MacDev.Tasks.csproj index a9c20828f93c..efdbe3adc3dc 100644 --- a/msbuild/Xamarin.MacDev.Tasks/Xamarin.MacDev.Tasks.csproj +++ b/msbuild/Xamarin.MacDev.Tasks/Xamarin.MacDev.Tasks.csproj @@ -5,7 +5,7 @@ false - + From 4a6c15eb9a38abd2708407577bd55c226fc292ee Mon Sep 17 00:00:00 2001 From: Rolf Bjarne Kvinge Date: Sat, 11 Jan 2020 01:53:18 +0100 Subject: [PATCH 03/12] [msbuild] Remove unused usings. --- msbuild/tests/Xamarin.iOS.Tasks.Tests/TestHelpers/Logger.cs | 1 - msbuild/tests/Xamarin.iOS.Tasks.Tests/TestHelpers/TestEngine.cs | 1 - 2 files changed, 2 deletions(-) diff --git a/msbuild/tests/Xamarin.iOS.Tasks.Tests/TestHelpers/Logger.cs b/msbuild/tests/Xamarin.iOS.Tasks.Tests/TestHelpers/Logger.cs index 7845a8da7214..325508f4c975 100644 --- a/msbuild/tests/Xamarin.iOS.Tasks.Tests/TestHelpers/Logger.cs +++ b/msbuild/tests/Xamarin.iOS.Tasks.Tests/TestHelpers/Logger.cs @@ -2,7 +2,6 @@ using System.Collections; using System.Collections.Generic; using System.IO; -using System.Runtime.Remoting; using System.Runtime.Serialization.Formatters.Binary; using System.Threading; using Microsoft.Build.Framework; diff --git a/msbuild/tests/Xamarin.iOS.Tasks.Tests/TestHelpers/TestEngine.cs b/msbuild/tests/Xamarin.iOS.Tasks.Tests/TestHelpers/TestEngine.cs index a75805752df8..258925ee444d 100644 --- a/msbuild/tests/Xamarin.iOS.Tasks.Tests/TestHelpers/TestEngine.cs +++ b/msbuild/tests/Xamarin.iOS.Tasks.Tests/TestHelpers/TestEngine.cs @@ -2,7 +2,6 @@ using System.Collections; using System.Collections.Generic; using System.IO; -using System.Runtime.Remoting; using System.Runtime.Serialization.Formatters.Binary; using System.Threading; using Microsoft.Build.Framework; From 00cd4e219f2ab527bc34f4afac6fa63c377fde14 Mon Sep 17 00:00:00 2001 From: Rolf Bjarne Kvinge Date: Mon, 13 Jan 2020 17:53:40 +0100 Subject: [PATCH 04/12] [msbuild] Make ILMerge work when building for netstandard2.0. Also unify/deduplicate the ILMerge logic between Xamarin.iOS and Xamarin.Mac. --- msbuild/ILMerge.targets | 58 +++++++++++++++++++ .../Xamarin.Mac.Tasks.csproj | 34 +---------- .../Xamarin.iOS.Tasks.csproj | 34 +---------- 3 files changed, 60 insertions(+), 66 deletions(-) create mode 100644 msbuild/ILMerge.targets diff --git a/msbuild/ILMerge.targets b/msbuild/ILMerge.targets new file mode 100644 index 000000000000..adb7226893a7 --- /dev/null +++ b/msbuild/ILMerge.targets @@ -0,0 +1,58 @@ + + + + + + + + + + + + @(NetstandardPath) + + + + + + + + + + + + + + + + + + + + + + + + + /keyfile:"$(AssemblyOriginatorKeyFile)" + $(ILRepackArgs) @(LibDir -> '/lib:"%(Identity)."', ' ') + $(ILRepackArgs) /out:"@(IntermediateAssembly -> '%(FullPath)')" + $(ILRepackArgs) "@(IntermediateAssembly -> '%(FullPath)')" + $(ILRepackArgs) @(MergedAssemblies -> '"%(FullPath)"', ' ') + $(ILRepackArgs) "/lib:$(NetstandardDirectory)" + + + + + + + + + + + + diff --git a/msbuild/Xamarin.Mac.Tasks/Xamarin.Mac.Tasks.csproj b/msbuild/Xamarin.Mac.Tasks/Xamarin.Mac.Tasks.csproj index d9e8cd34fe25..71705ac6a302 100644 --- a/msbuild/Xamarin.Mac.Tasks/Xamarin.Mac.Tasks.csproj +++ b/msbuild/Xamarin.Mac.Tasks/Xamarin.Mac.Tasks.csproj @@ -10,9 +10,6 @@ - - - PreserveNewest @@ -25,34 +22,5 @@ - - - - - - - - - /keyfile:"$(AssemblyOriginatorKeyFile)" - $(ILRepackArgs) @(LibDir -> '/lib:"%(Identity)."', ' ') - $(ILRepackArgs) /out:"@(IntermediateAssembly -> '%(FullPath)')" - $(ILRepackArgs) "@(IntermediateAssembly -> '%(FullPath)')" - $(ILRepackArgs) @(MergedAssemblies -> '"%(FullPath)"', ' ') - $(ILRepackArgs) "/lib:$(FrameworkPathOverride)/Facades" - - - - - - - - - - - + diff --git a/msbuild/Xamarin.iOS.Tasks/Xamarin.iOS.Tasks.csproj b/msbuild/Xamarin.iOS.Tasks/Xamarin.iOS.Tasks.csproj index 64f76de01732..213c6555c932 100644 --- a/msbuild/Xamarin.iOS.Tasks/Xamarin.iOS.Tasks.csproj +++ b/msbuild/Xamarin.iOS.Tasks/Xamarin.iOS.Tasks.csproj @@ -10,9 +10,6 @@ - - - @@ -21,34 +18,5 @@ - - - - - - - - - /keyfile:"$(AssemblyOriginatorKeyFile)" - $(ILRepackArgs) @(LibDir -> '/lib:"%(Identity)."', ' ') - $(ILRepackArgs) /out:"@(IntermediateAssembly -> '%(FullPath)')" - $(ILRepackArgs) "@(IntermediateAssembly -> '%(FullPath)')" - $(ILRepackArgs) @(MergedAssemblies -> '"%(FullPath)"', ' ') - $(ILRepackArgs) "/lib:$(FrameworkPathOverride)/Facades" - - - - - - - - - - - + From fee8b3166940196c5c252974de81f65909d1a088 Mon Sep 17 00:00:00 2001 From: Rolf Bjarne Kvinge Date: Mon, 13 Jan 2020 17:54:55 +0100 Subject: [PATCH 05/12] [msbuild] Build for netstandard2.0 in addition to net461. --- msbuild/Xamarin.Mac.Tasks.Core/Xamarin.Mac.Tasks.Core.csproj | 2 +- msbuild/Xamarin.Mac.Tasks/Xamarin.Mac.Tasks.csproj | 2 +- .../Xamarin.MacDev.Tasks.Core.csproj | 2 +- msbuild/Xamarin.MacDev.Tasks/Xamarin.MacDev.Tasks.csproj | 4 ++-- msbuild/Xamarin.iOS.Tasks.Core/Xamarin.iOS.Tasks.Core.csproj | 2 +- msbuild/Xamarin.iOS.Tasks/Xamarin.iOS.Tasks.csproj | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/msbuild/Xamarin.Mac.Tasks.Core/Xamarin.Mac.Tasks.Core.csproj b/msbuild/Xamarin.Mac.Tasks.Core/Xamarin.Mac.Tasks.Core.csproj index 63bcd88bd59c..09d5139368eb 100644 --- a/msbuild/Xamarin.Mac.Tasks.Core/Xamarin.Mac.Tasks.Core.csproj +++ b/msbuild/Xamarin.Mac.Tasks.Core/Xamarin.Mac.Tasks.Core.csproj @@ -1,7 +1,7 @@  - net461 + net461;netstandard2.0 false diff --git a/msbuild/Xamarin.Mac.Tasks/Xamarin.Mac.Tasks.csproj b/msbuild/Xamarin.Mac.Tasks/Xamarin.Mac.Tasks.csproj index 71705ac6a302..bde87fbdcabf 100644 --- a/msbuild/Xamarin.Mac.Tasks/Xamarin.Mac.Tasks.csproj +++ b/msbuild/Xamarin.Mac.Tasks/Xamarin.Mac.Tasks.csproj @@ -1,7 +1,7 @@ - net461 + net461;netstandard2.0 false diff --git a/msbuild/Xamarin.MacDev.Tasks.Core/Xamarin.MacDev.Tasks.Core.csproj b/msbuild/Xamarin.MacDev.Tasks.Core/Xamarin.MacDev.Tasks.Core.csproj index e8729df04f1a..09c44d915fc3 100644 --- a/msbuild/Xamarin.MacDev.Tasks.Core/Xamarin.MacDev.Tasks.Core.csproj +++ b/msbuild/Xamarin.MacDev.Tasks.Core/Xamarin.MacDev.Tasks.Core.csproj @@ -1,7 +1,7 @@ - net461 + net461;netstandard2.0 false true diff --git a/msbuild/Xamarin.MacDev.Tasks/Xamarin.MacDev.Tasks.csproj b/msbuild/Xamarin.MacDev.Tasks/Xamarin.MacDev.Tasks.csproj index efdbe3adc3dc..88f72a72de2f 100644 --- a/msbuild/Xamarin.MacDev.Tasks/Xamarin.MacDev.Tasks.csproj +++ b/msbuild/Xamarin.MacDev.Tasks/Xamarin.MacDev.Tasks.csproj @@ -1,11 +1,11 @@ - net461 + net461;netstandard2.0 false - + diff --git a/msbuild/Xamarin.iOS.Tasks.Core/Xamarin.iOS.Tasks.Core.csproj b/msbuild/Xamarin.iOS.Tasks.Core/Xamarin.iOS.Tasks.Core.csproj index a07536950a6f..ea98631a2689 100644 --- a/msbuild/Xamarin.iOS.Tasks.Core/Xamarin.iOS.Tasks.Core.csproj +++ b/msbuild/Xamarin.iOS.Tasks.Core/Xamarin.iOS.Tasks.Core.csproj @@ -1,7 +1,7 @@ - net461 + net461;netstandard2.0 false diff --git a/msbuild/Xamarin.iOS.Tasks/Xamarin.iOS.Tasks.csproj b/msbuild/Xamarin.iOS.Tasks/Xamarin.iOS.Tasks.csproj index 213c6555c932..df1778df5773 100644 --- a/msbuild/Xamarin.iOS.Tasks/Xamarin.iOS.Tasks.csproj +++ b/msbuild/Xamarin.iOS.Tasks/Xamarin.iOS.Tasks.csproj @@ -1,7 +1,7 @@ - net461 + net461;netstandard2.0 false From c354658b27c835d0dcdcc6d9c1c104dfb23aca76 Mon Sep 17 00:00:00 2001 From: Rolf Bjarne Kvinge Date: Mon, 13 Jan 2020 17:55:55 +0100 Subject: [PATCH 06/12] [msbuild] Use custom project configurations to support running the tests for both netstandard2.0 and net461. Use custom project configurations to support running the tests for when the tasks assembly is built for netstandard2.0 and net461. --- msbuild/Xamarin.MacDev.Tasks.sln | 34 ++++++++++++++ .../Xamarin.iOS.Tasks.Tests.csproj | 47 +++++++++++++++++-- 2 files changed, 78 insertions(+), 3 deletions(-) diff --git a/msbuild/Xamarin.MacDev.Tasks.sln b/msbuild/Xamarin.MacDev.Tasks.sln index 365f34055478..d50212f3dc12 100644 --- a/msbuild/Xamarin.MacDev.Tasks.sln +++ b/msbuild/Xamarin.MacDev.Tasks.sln @@ -23,40 +23,74 @@ Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU + Debug-net461|Any CPU = Debug-net461|Any CPU + Debug-netstandard2.0|Any CPU = Debug-netstandard2.0|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {93E12FA0-089C-4BC8-840F-43CFBC7927C7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {93E12FA0-089C-4BC8-840F-43CFBC7927C7}.Debug|Any CPU.Build.0 = Debug|Any CPU {93E12FA0-089C-4BC8-840F-43CFBC7927C7}.Release|Any CPU.ActiveCfg = Release|Any CPU {93E12FA0-089C-4BC8-840F-43CFBC7927C7}.Release|Any CPU.Build.0 = Release|Any CPU + {93E12FA0-089C-4BC8-840F-43CFBC7927C7}.Debug-net461|Any CPU.ActiveCfg = Debug|Any CPU + {93E12FA0-089C-4BC8-840F-43CFBC7927C7}.Debug-net461|Any CPU.Build.0 = Debug|Any CPU + {93E12FA0-089C-4BC8-840F-43CFBC7927C7}.Debug-netstandard2.0|Any CPU.ActiveCfg = Debug|Any CPU + {93E12FA0-089C-4BC8-840F-43CFBC7927C7}.Debug-netstandard2.0|Any CPU.Build.0 = Debug|Any CPU {EDB0E879-5AE6-4E2B-925D-F59023A6AA8D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {EDB0E879-5AE6-4E2B-925D-F59023A6AA8D}.Debug|Any CPU.Build.0 = Debug|Any CPU {EDB0E879-5AE6-4E2B-925D-F59023A6AA8D}.Release|Any CPU.ActiveCfg = Release|Any CPU {EDB0E879-5AE6-4E2B-925D-F59023A6AA8D}.Release|Any CPU.Build.0 = Release|Any CPU + {EDB0E879-5AE6-4E2B-925D-F59023A6AA8D}.Debug-net461|Any CPU.ActiveCfg = Debug-netstandard2.0|Any CPU + {EDB0E879-5AE6-4E2B-925D-F59023A6AA8D}.Debug-net461|Any CPU.Build.0 = Debug-netstandard2.0|Any CPU + {EDB0E879-5AE6-4E2B-925D-F59023A6AA8D}.Debug-netstandard2.0|Any CPU.ActiveCfg = Debug-netstandard2.0|Any CPU + {EDB0E879-5AE6-4E2B-925D-F59023A6AA8D}.Debug-netstandard2.0|Any CPU.Build.0 = Debug-netstandard2.0|Any CPU {CC3D9353-20C4-467A-8522-A9DED6F0C753}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {CC3D9353-20C4-467A-8522-A9DED6F0C753}.Debug|Any CPU.Build.0 = Debug|Any CPU {CC3D9353-20C4-467A-8522-A9DED6F0C753}.Release|Any CPU.ActiveCfg = Release|Any CPU {CC3D9353-20C4-467A-8522-A9DED6F0C753}.Release|Any CPU.Build.0 = Release|Any CPU + {CC3D9353-20C4-467A-8522-A9DED6F0C753}.Debug-net461|Any CPU.ActiveCfg = Debug|Any CPU + {CC3D9353-20C4-467A-8522-A9DED6F0C753}.Debug-net461|Any CPU.Build.0 = Debug|Any CPU + {CC3D9353-20C4-467A-8522-A9DED6F0C753}.Debug-netstandard2.0|Any CPU.ActiveCfg = Debug|Any CPU + {CC3D9353-20C4-467A-8522-A9DED6F0C753}.Debug-netstandard2.0|Any CPU.Build.0 = Debug|Any CPU {534D7C5A-0E1C-4C58-9E48-21B1A98919EB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {534D7C5A-0E1C-4C58-9E48-21B1A98919EB}.Debug|Any CPU.Build.0 = Debug|Any CPU {534D7C5A-0E1C-4C58-9E48-21B1A98919EB}.Release|Any CPU.ActiveCfg = Release|Any CPU {534D7C5A-0E1C-4C58-9E48-21B1A98919EB}.Release|Any CPU.Build.0 = Release|Any CPU + {534D7C5A-0E1C-4C58-9E48-21B1A98919EB}.Debug-net461|Any CPU.ActiveCfg = Debug|Any CPU + {534D7C5A-0E1C-4C58-9E48-21B1A98919EB}.Debug-net461|Any CPU.Build.0 = Debug|Any CPU + {534D7C5A-0E1C-4C58-9E48-21B1A98919EB}.Debug-netstandard2.0|Any CPU.ActiveCfg = Debug|Any CPU + {534D7C5A-0E1C-4C58-9E48-21B1A98919EB}.Debug-netstandard2.0|Any CPU.Build.0 = Debug|Any CPU {C8D98DC1-5122-4B10-A152-17196C7BD9AC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C8D98DC1-5122-4B10-A152-17196C7BD9AC}.Debug|Any CPU.Build.0 = Debug|Any CPU {C8D98DC1-5122-4B10-A152-17196C7BD9AC}.Release|Any CPU.ActiveCfg = Debug|Any CPU {C8D98DC1-5122-4B10-A152-17196C7BD9AC}.Release|Any CPU.Build.0 = Debug|Any CPU + {C8D98DC1-5122-4B10-A152-17196C7BD9AC}.Debug-net461|Any CPU.ActiveCfg = Debug|Any CPU + {C8D98DC1-5122-4B10-A152-17196C7BD9AC}.Debug-net461|Any CPU.Build.0 = Debug|Any CPU + {C8D98DC1-5122-4B10-A152-17196C7BD9AC}.Debug-netstandard2.0|Any CPU.ActiveCfg = Debug|Any CPU + {C8D98DC1-5122-4B10-A152-17196C7BD9AC}.Debug-netstandard2.0|Any CPU.Build.0 = Debug|Any CPU {44605724-8002-48E1-895F-7CB068099B6A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {44605724-8002-48E1-895F-7CB068099B6A}.Debug|Any CPU.Build.0 = Debug|Any CPU {44605724-8002-48E1-895F-7CB068099B6A}.Release|Any CPU.ActiveCfg = Release|Any CPU {44605724-8002-48E1-895F-7CB068099B6A}.Release|Any CPU.Build.0 = Release|Any CPU + {44605724-8002-48E1-895F-7CB068099B6A}.Debug-net461|Any CPU.ActiveCfg = Debug|Any CPU + {44605724-8002-48E1-895F-7CB068099B6A}.Debug-net461|Any CPU.Build.0 = Debug|Any CPU + {44605724-8002-48E1-895F-7CB068099B6A}.Debug-netstandard2.0|Any CPU.ActiveCfg = Debug|Any CPU + {44605724-8002-48E1-895F-7CB068099B6A}.Debug-netstandard2.0|Any CPU.Build.0 = Debug|Any CPU {7B095849-6FDB-4BD2-9B59-569D81A1A809}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {7B095849-6FDB-4BD2-9B59-569D81A1A809}.Debug|Any CPU.Build.0 = Debug|Any CPU {7B095849-6FDB-4BD2-9B59-569D81A1A809}.Release|Any CPU.ActiveCfg = Release|Any CPU {7B095849-6FDB-4BD2-9B59-569D81A1A809}.Release|Any CPU.Build.0 = Release|Any CPU + {7B095849-6FDB-4BD2-9B59-569D81A1A809}.Debug-net461|Any CPU.ActiveCfg = Debug|Any CPU + {7B095849-6FDB-4BD2-9B59-569D81A1A809}.Debug-net461|Any CPU.Build.0 = Debug|Any CPU + {7B095849-6FDB-4BD2-9B59-569D81A1A809}.Debug-netstandard2.0|Any CPU.ActiveCfg = Debug|Any CPU + {7B095849-6FDB-4BD2-9B59-569D81A1A809}.Debug-netstandard2.0|Any CPU.Build.0 = Debug|Any CPU {AF1AC7C3-F6DD-4E46-B897-9DBB90B158EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {AF1AC7C3-F6DD-4E46-B897-9DBB90B158EC}.Debug|Any CPU.Build.0 = Debug|Any CPU {AF1AC7C3-F6DD-4E46-B897-9DBB90B158EC}.Release|Any CPU.ActiveCfg = Debug|Any CPU {AF1AC7C3-F6DD-4E46-B897-9DBB90B158EC}.Release|Any CPU.Build.0 = Debug|Any CPU + {AF1AC7C3-F6DD-4E46-B897-9DBB90B158EC}.Debug-net461|Any CPU.ActiveCfg = Debug|Any CPU + {AF1AC7C3-F6DD-4E46-B897-9DBB90B158EC}.Debug-net461|Any CPU.Build.0 = Debug|Any CPU + {AF1AC7C3-F6DD-4E46-B897-9DBB90B158EC}.Debug-netstandard2.0|Any CPU.ActiveCfg = Debug|Any CPU + {AF1AC7C3-F6DD-4E46-B897-9DBB90B158EC}.Debug-netstandard2.0|Any CPU.Build.0 = Debug|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/msbuild/tests/Xamarin.iOS.Tasks.Tests/Xamarin.iOS.Tasks.Tests.csproj b/msbuild/tests/Xamarin.iOS.Tasks.Tests/Xamarin.iOS.Tasks.Tests.csproj index 598bdcf5776f..8b14088ce635 100644 --- a/msbuild/tests/Xamarin.iOS.Tasks.Tests/Xamarin.iOS.Tasks.Tests.csproj +++ b/msbuild/tests/Xamarin.iOS.Tasks.Tests/Xamarin.iOS.Tasks.Tests.csproj @@ -6,15 +6,59 @@ true + + + + netstandard2.0 + Debug + + + net461 + Debug + + + + netstandard2.0 + Debug + + + + + + + @@ -25,9 +69,6 @@ PreserveNewest - - - Configuration.cs From 9125ba923bc00cabbae3c080e213c33034aa49da Mon Sep 17 00:00:00 2001 From: Rolf Bjarne Kvinge Date: Mon, 13 Jan 2020 17:56:55 +0100 Subject: [PATCH 07/12] [tests] Make command-line based 'make test-ios-tasks' run tests for both netstandard2.0 and net461. --- tests/Makefile | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/tests/Makefile b/tests/Makefile index 379c9c49ba11..e13dc2b7218b 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -207,11 +207,12 @@ killall: @killall Touch.Server >/dev/null 2>&1 || true NUNIT_MSBUILD_DIR=$(TOP)/packages/NUnit.Runners.2.6.4/tools/lib -test-ios-tasks: verify-system-vsmac-xcode-match - $(SYSTEM_XIBUILD) -- $(TOP)/msbuild/Xamarin.MacDev.Tasks.sln - cd $(TOP)/msbuild/tests/Xamarin.iOS.Tasks.Tests && $(SYSTEM_XIBUILD) -t -- $(abspath $(TOP)/tools/nunit3-console-3.10.0) $(abspath $(TOP)/msbuild/tests/Xamarin.iOS.Tasks.Tests/bin/Debug/net461/Xamarin.iOS.Tasks.Tests.dll) "--result=$(abspath $(CURDIR)/TestResults_Xamarin.iOS.Tasks.Tests.xml);format=nunit2" -labels=All $(TEST_FIXTURE) || touch .failed-stamp - @[[ -z "$$BUILD_REPOSITORY" ]] || ( xsltproc $(TOP)/tests/HtmlTransform.xslt $(NUNIT_MSBUILD_DIR)/TestResults_Xamarin.iOS.Tasks.Tests.xml > $(TOP)/tests/index.html && echo "@MonkeyWrench: AddFile: $$PWD/index.html" ) - @if test -e $(NUNIT_MSBUILD_DIR)/.failed-stamp; then rm $(NUNIT_MSBUILD_DIR)/.failed-stamp; exit 1; fi +test-ios-tasks: test-ios-tasks-net461 test-ios-tasks-netstandard2.0 +test-ios-tasks-%: verify-system-vsmac-xcode-match + $(SYSTEM_MSBUILD) $(TOP)/msbuild/tests/Xamarin.iOS.Tasks.Tests/Xamarin.iOS.Tasks.Tests.csproj /p:Configuration=Debug-$* + cd $(TOP)/msbuild/tests/Xamarin.iOS.Tasks.Tests && $(SYSTEM_XIBUILD) -t -- $(abspath $(TOP)/tools/nunit3-console-3.10.0) $(abspath $(TOP)/msbuild/tests/Xamarin.iOS.Tasks.Tests/bin/Debug-$*/net461/Xamarin.iOS.Tasks.Tests.dll) "--result=$(abspath $(CURDIR)/TestResults_$*_Xamarin.iOS.Tasks.Tests.xml);format=nunit2" -labels=All $(TEST_FIXTURE) || touch .failed-stamp + @[[ -z "$$BUILD_REPOSITORY" ]] || ( xsltproc $(TOP)/tests/HtmlTransform.xslt $(CURDIR)/TestResults_$*_Xamarin.iOS.Tasks.Tests.xml > $(TOP)/tests/index-$*.html && echo "@MonkeyWrench: AddFile: $$PWD/index-$*.html" ) + @if test -e $(CURDIR)/.$@-failed-stamp; then rm $(CURDIR)/.$@-failed-stamp; exit 1; fi test-install-sources: $(SYSTEM_XIBUILD) -- $(TOP)/tools/install-source/InstallSourcesTests/InstallSourcesTests.csproj From 3667af0777d19cc65b1a2dec3c01180472edde67 Mon Sep 17 00:00:00 2001 From: Rolf Bjarne Kvinge Date: Mon, 13 Jan 2020 17:57:45 +0100 Subject: [PATCH 08/12] [xharness] Add test configuration to run iOS MSBuild tests using either netstandard2.0 or net461. --- tests/xharness/Jenkins.cs | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/tests/xharness/Jenkins.cs b/tests/xharness/Jenkins.cs index 8c08a8fd645a..20378f49df89 100644 --- a/tests/xharness/Jenkins.cs +++ b/tests/xharness/Jenkins.cs @@ -897,18 +897,33 @@ Task PopulateTasksAsync () Platform = TestPlatform.iOS, UseMSBuild = true, }; + buildiOSMSBuild.SolutionPath = buildiOSMSBuild.TestProject.Path; var nunitExecutioniOSMSBuild = new NUnitExecuteTask (buildiOSMSBuild) { - TestLibrary = Path.Combine (Harness.RootDirectory, "..", "msbuild", "tests", "Xamarin.iOS.Tasks.Tests", "bin", "Debug", "net461", "Xamarin.iOS.Tasks.Tests.dll"), + TestLibrary = Path.Combine (Harness.RootDirectory, "..", "msbuild", "tests", "Xamarin.iOS.Tasks.Tests", "bin", "Debug-net461", "net461", "Xamarin.iOS.Tasks.Tests.dll"), TestProject = new TestProject (Path.Combine (Path.GetDirectoryName (buildiOSMSBuild.TestProject.Path), "tests", "Xamarin.iOS.Tasks.Tests", "Xamarin.iOS.Tasks.Tests.csproj")), + ProjectConfiguration = "Debug-net461", Platform = TestPlatform.iOS, TestName = "MSBuild tests", - Mode = "iOS", + Mode = "iOS (net461)", Timeout = TimeSpan.FromMinutes (60), Ignored = !IncludeiOSMSBuild, + SupportsParallelExecution = false, }; Tasks.Add (nunitExecutioniOSMSBuild); - + var nunitExecutioniOSMSBuild_netstandard2 = new NUnitExecuteTask (buildiOSMSBuild) { + TestLibrary = Path.Combine (Harness.RootDirectory, "..", "msbuild", "tests", "Xamarin.iOS.Tasks.Tests", "bin", "Debug-netstandard2.0", "net461", "Xamarin.iOS.Tasks.Tests.dll"), + TestProject = new TestProject (Path.Combine (Path.GetDirectoryName (buildiOSMSBuild.TestProject.Path), "tests", "Xamarin.iOS.Tasks.Tests", "Xamarin.iOS.Tasks.Tests.csproj")), + ProjectConfiguration = "Debug-netstandard2.0", + Platform = TestPlatform.iOS, + TestName = "MSBuild tests", + Mode = "iOS (netstandard2.0)", + Timeout = TimeSpan.FromMinutes (60), + Ignored = !IncludeiOSMSBuild, + SupportsParallelExecution = false, + }; + Tasks.Add (nunitExecutioniOSMSBuild_netstandard2); + var buildInstallSources = new XBuildTask () { Jenkins = this, From 14921d8511cefac48efc7c3975e217d458cab9df Mon Sep 17 00:00:00 2001 From: Rolf Bjarne Kvinge Date: Mon, 13 Jan 2020 17:58:00 +0100 Subject: [PATCH 09/12] [msbuild] Make the netstandard2.0-buils task assemblies the default. --- msbuild/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/msbuild/Makefile b/msbuild/Makefile index d924971a76c1..b963c05cb94a 100644 --- a/msbuild/Makefile +++ b/msbuild/Makefile @@ -22,7 +22,7 @@ MSBUILD_TASK_ASSEMBLIES = ALL_SOURCES:= $(shell git ls-files | sed 's/ /\\ /g') $(wildcard $(XAMARIN_MACDEV_PATH)/Xamarin.MacDev/*.cs) $(wildcard $(XAMARIN_MACDEV_PATH)/Xamarin.MacDev/*.csproj) CONFIG = Debug -TARGETFRAMEWORK = net461 +TARGETFRAMEWORK = netstandard2.0 ## ## XI definitions From 9eef11115d179c084298af2ef22e0723eb90c2a7 Mon Sep 17 00:00:00 2001 From: Rolf Bjarne Kvinge Date: Wed, 15 Jan 2020 01:14:15 +0100 Subject: [PATCH 10/12] [msbuild] ILRepack lib assemblies, not ref assemblies. Ask MSBuild to copy lib assemblies to the output folder when building for netstandard2.0, this way we can easily find the actual implementation libraries to pass to ILRepack. --- msbuild/ILMerge.targets | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/msbuild/ILMerge.targets b/msbuild/ILMerge.targets index adb7226893a7..212427144d08 100644 --- a/msbuild/ILMerge.targets +++ b/msbuild/ILMerge.targets @@ -1,10 +1,14 @@ + + true + + - + @@ -18,9 +22,15 @@ - - - + + + + + + + + + From 73156959ba497b49f26a8f408443cec24eb3c216 Mon Sep 17 00:00:00 2001 From: Rolf Bjarne Kvinge Date: Wed, 15 Jan 2020 08:19:35 +0100 Subject: [PATCH 11/12] [msbuild] Merge System.Text.Encodings.Web.dll as well. --- msbuild/ILMerge.targets | 1 + 1 file changed, 1 insertion(+) diff --git a/msbuild/ILMerge.targets b/msbuild/ILMerge.targets index 212427144d08..1c2abc719a26 100644 --- a/msbuild/ILMerge.targets +++ b/msbuild/ILMerge.targets @@ -30,6 +30,7 @@ + From db07b408acb4b2edb993b835245ee678726005ce Mon Sep 17 00:00:00 2001 From: Rolf Bjarne Kvinge Date: Wed, 15 Jan 2020 08:19:58 +0100 Subject: [PATCH 12/12] [xharness] Fix build of MSBuild tests for iOS. --- tests/xharness/Jenkins.cs | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/tests/xharness/Jenkins.cs b/tests/xharness/Jenkins.cs index 20378f49df89..c6fac1e857b1 100644 --- a/tests/xharness/Jenkins.cs +++ b/tests/xharness/Jenkins.cs @@ -888,20 +888,22 @@ Task PopulateTasksAsync () //Tasks.AddRange (await CreateRunSimulatorTasksAsync ()); - var buildiOSMSBuild = new XBuildTask () + var buildiOSMSBuild_net461 = new XBuildTask () { Jenkins = this, - TestProject = new TestProject (Path.GetFullPath (Path.Combine (Harness.RootDirectory, "..", "msbuild", "Xamarin.MacDev.Tasks.sln"))), + TestProject = new TestProject (Path.GetFullPath (Path.Combine (Harness.RootDirectory, "..", "msbuild", "tests", "Xamarin.iOS.Tasks.Tests", "Xamarin.iOS.Tasks.Tests.csproj"))), SpecifyPlatform = false, - SpecifyConfiguration = false, + SpecifyConfiguration = true, + ProjectConfiguration = "Debug-net461", Platform = TestPlatform.iOS, UseMSBuild = true, + SolutionPath = Path.GetFullPath (Path.Combine (Harness.RootDirectory, "..", "msbuild", "Xamarin.MacDev.Tasks.sln")), + SupportsParallelExecution = false, }; - buildiOSMSBuild.SolutionPath = buildiOSMSBuild.TestProject.Path; - var nunitExecutioniOSMSBuild = new NUnitExecuteTask (buildiOSMSBuild) + var nunitExecutioniOSMSBuild_net461 = new NUnitExecuteTask (buildiOSMSBuild_net461) { TestLibrary = Path.Combine (Harness.RootDirectory, "..", "msbuild", "tests", "Xamarin.iOS.Tasks.Tests", "bin", "Debug-net461", "net461", "Xamarin.iOS.Tasks.Tests.dll"), - TestProject = new TestProject (Path.Combine (Path.GetDirectoryName (buildiOSMSBuild.TestProject.Path), "tests", "Xamarin.iOS.Tasks.Tests", "Xamarin.iOS.Tasks.Tests.csproj")), + TestProject = buildiOSMSBuild_net461.TestProject, ProjectConfiguration = "Debug-net461", Platform = TestPlatform.iOS, TestName = "MSBuild tests", @@ -910,10 +912,22 @@ Task PopulateTasksAsync () Ignored = !IncludeiOSMSBuild, SupportsParallelExecution = false, }; - Tasks.Add (nunitExecutioniOSMSBuild); - var nunitExecutioniOSMSBuild_netstandard2 = new NUnitExecuteTask (buildiOSMSBuild) { + Tasks.Add (nunitExecutioniOSMSBuild_net461); + + var buildiOSMSBuild_netstandard2 = new XBuildTask () { + Jenkins = this, + TestProject = new TestProject (Path.GetFullPath (Path.Combine (Harness.RootDirectory, "..", "msbuild", "tests", "Xamarin.iOS.Tasks.Tests", "Xamarin.iOS.Tasks.Tests.csproj"))), + SpecifyPlatform = false, + SpecifyConfiguration = true, + ProjectConfiguration = "Debug-netstandard2.0", + Platform = TestPlatform.iOS, + UseMSBuild = true, + SolutionPath = Path.GetFullPath (Path.Combine (Harness.RootDirectory, "..", "msbuild", "Xamarin.MacDev.Tasks.sln")), + SupportsParallelExecution = false, + }; + var nunitExecutioniOSMSBuild_netstandard2 = new NUnitExecuteTask (buildiOSMSBuild_netstandard2) { TestLibrary = Path.Combine (Harness.RootDirectory, "..", "msbuild", "tests", "Xamarin.iOS.Tasks.Tests", "bin", "Debug-netstandard2.0", "net461", "Xamarin.iOS.Tasks.Tests.dll"), - TestProject = new TestProject (Path.Combine (Path.GetDirectoryName (buildiOSMSBuild.TestProject.Path), "tests", "Xamarin.iOS.Tasks.Tests", "Xamarin.iOS.Tasks.Tests.csproj")), + TestProject = buildiOSMSBuild_netstandard2.TestProject, ProjectConfiguration = "Debug-netstandard2.0", Platform = TestPlatform.iOS, TestName = "MSBuild tests",