Skip to content

Commit

Permalink
Merge xcode12 into d16-8.
Browse files Browse the repository at this point in the history
  • Loading branch information
mandel-macaque committed Sep 18, 2020
2 parents 5c06bdd + 4028e53 commit eb9b690
Show file tree
Hide file tree
Showing 566 changed files with 29,559 additions and 3,023 deletions.
2 changes: 1 addition & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
[submodule "external/macios-binaries"]
path = external/macios-binaries
url = ../../xamarin/macios-binaries
branch = main
branch = d16-8
[submodule "external/opentk"]
path = external/opentk
url = ../../mono/opentk.git
Expand Down
16 changes: 8 additions & 8 deletions Make.config
Original file line number Diff line number Diff line change
Expand Up @@ -111,9 +111,9 @@ WATCHOS_NUGET_VERSION_NO_METADATA=$(WATCHOS_NUGET_VERSION)-$(NUGET_PRERELEASE_ID
WATCHOS_NUGET_VERSION_FULL=$(WATCHOS_NUGET_VERSION_NO_METADATA)+$(NUGET_BUILD_METADATA)

# Xcode version should have both a major and a minor version (even if the minor version is 0)
XCODE_VERSION=11.6
XCODE_URL=http://xamarin-storage/bot-provisioning/xcodes/Xcode_11.6.xip
XCODE_DEVELOPER_ROOT=/Applications/Xcode_11.6.0.app/Contents/Developer
XCODE_VERSION=12.0
XCODE_URL=http://xamarin-storage/bot-provisioning/xcodes/Xcode_12.xip
XCODE_DEVELOPER_ROOT=/Applications/Xcode_12.0.0.app/Contents/Developer
XCODE_PRODUCT_BUILD_VERSION:=$(shell /usr/libexec/PlistBuddy -c 'Print :ProductBuildVersion' $(XCODE_DEVELOPER_ROOT)/../version.plist)

# Mono version embedded in XI/XM (NEEDED_MONO_VERSION/BRANCH) are specified in mk/mono.mk
Expand All @@ -139,12 +139,12 @@ MIN_CMAKE_URL=https://cmake.org/files/v3.6/cmake-3.6.2-Darwin-x86_64.dmg
MIN_CMAKE_VERSION=2.8.8

# ObjectiveSharpie min/max versions
MIN_SHARPIE_VERSION=3.5.37
MIN_SHARPIE_VERSION=3.5.38
MAX_SHARPIE_VERSION=3.5.99
MIN_SHARPIE_URL=https://download.visualstudio.microsoft.com/download/pr/ab6c85e9-be56-4946-9c0d-b0f91c331ceb/0c66b78f532a6a488c98f4219d82be49/objectivesharpie-3.5.37.pkg
MIN_SHARPIE_URL=https://download.visualstudio.microsoft.com/download/pr/83e81fcc-39cd-4c2d-b906-ea635f424aaa/2cd8d79588fbb61fa0f4594c85cccfe6/objectivesharpie-3.5.38.pkg

# Minimum OSX versions for building XI/XM
MIN_OSX_BUILD_VERSION=10.15.2
MIN_OSX_BUILD_VERSION=10.15.4
# Minimum OSX version for executing XI/XM tooling.
MIN_OSX_VERSION_FOR_IOS=10.11
MIN_OSX_VERSION_FOR_MAC=10.11
Expand All @@ -168,7 +168,7 @@ MIN_IOS_SDK_VERSION=7.0
MIN_OSX_SDK_VERSION=10.9
MIN_WATCHOS_SDK_VERSION=2.0
MIN_WATCHOS64_32_SDK_VERSION=5.1
MIN_WATCH_OS_VERSION=1.0
MIN_WATCH_OS_VERSION=2.0
MIN_TVOS_SDK_VERSION=9.0

# The min simulator version available in the Xcode we're using
Expand All @@ -181,7 +181,7 @@ MIN_TVOS_SIMULATOR_VERSION=10.2
EXTRA_SIMULATORS=com.apple.pkg.iPhoneSimulatorSDK10_3 com.apple.pkg.AppleTVSimulatorSDK10_2 com.apple.pkg.WatchSimulatorSDK3_2

INCLUDE_IOS=1
INCLUDE_MAC=1
#INCLUDE_MAC=1
INCLUDE_WATCH=1
INCLUDE_TVOS=1
INCLUDE_DEVICE=1
Expand Down
10 changes: 5 additions & 5 deletions Make.versions
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,8 @@
# line changed in git).
#

IOS_PACKAGE_VERSION=13.22.1.$(IOS_COMMIT_DISTANCE)
MAC_PACKAGE_VERSION=6.22.1.$(MAC_COMMIT_DISTANCE)
IOS_PACKAGE_VERSION=14.1.0.$(IOS_COMMIT_DISTANCE)
MAC_PACKAGE_VERSION=6.99.0.$(MAC_COMMIT_DISTANCE)

#
# ** NuGet package version numbers **
Expand All @@ -66,7 +66,7 @@ MAC_PACKAGE_VERSION=6.22.1.$(MAC_COMMIT_DISTANCE)
# WARNING: Do **not** use versions higher than the available Xcode SDK or else we will have issues with mtouch (See https://github.com/xamarin/xamarin-macios/issues/7705)
# When bumping the major macOS version in MACOS_NUGET_VERSION also update the macOS version where we execute on bots in jenkins/Jenkinsfile (in the 'node' element)

IOS_NUGET_VERSION=13.6.100
TVOS_NUGET_VERSION=13.4.100
WATCHOS_NUGET_VERSION=6.2.100
IOS_NUGET_VERSION=14.0.100
TVOS_NUGET_VERSION=14.0.100
WATCHOS_NUGET_VERSION=7.0.100
MACOS_NUGET_VERSION=10.15.100
4 changes: 4 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ world: check-system

.PHONY: check-system
check-system:
ifdef INCLUDE_MAC
ifdef INCLUDE_IOS
@if [[ "x$(IOS_COMMIT_DISTANCE)" != "x$(MAC_COMMIT_DISTANCE)" ]]; then \
echo "$(COLOR_RED)*** The commit distance for Xamarin.iOS ($(IOS_COMMIT_DISTANCE)) and Xamarin.Mac ($(MAC_COMMIT_DISTANCE)) are different.$(COLOR_CLEAR)"; \
echo "$(COLOR_RED)*** To fix this problem, bump the revision (the third number) for both $(COLOR_GRAY)IOS_PACKAGE_NUMBER$(COLOR_RED) and $(COLOR_GRAY)MAC_PACKAGE_NUMBER$(COLOR_RED) in Make.versions.$(COLOR_CLEAR)"; \
Expand All @@ -29,6 +31,8 @@ check-system:
echo "$(COLOR_RED)*** Once fixed, you need to commit the changes for them to pass this check.$(COLOR_CLEAR)"; \
exit 1; \
fi
endif
endif
@./system-dependencies.sh
@echo "Building the packages:"
@echo " Xamarin.iOS $(IOS_PACKAGE_VERSION)"
Expand Down
4 changes: 3 additions & 1 deletion Versions-ios.plist.in
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@
<string>13.4</string>
<string>13.5</string>
<string>13.6</string>
<string>14.0</string>
</array>
<key>tvOS</key>
<array>
Expand All @@ -63,10 +64,10 @@
<string>13.2</string>
<string>13.3</string>
<string>13.4</string>
<string>14.0</string>
</array>
<key>watchOS</key>
<array>
<string>1.0</string>
<string>2.0</string>
<string>2.1</string>
<string>2.2</string>
Expand All @@ -84,6 +85,7 @@
<string>6.0</string>
<string>6.1</string>
<string>6.2</string>
<string>7.0</string>
</array>
</dict>
<key>RecommendedXcodeVersion</key>
Expand Down
2 changes: 2 additions & 0 deletions Versions-mac.plist.in
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@
<string>10.13</string>
<string>10.14</string>
<string>10.15</string>
<!-- <string>10.16</string> --> <!-- Reverted by Xcode 12 GM -->
<!-- <string>11.0</string> -->
</array>
</dict>
<key>RecommendedXcodeVersion</key>
Expand Down
2 changes: 1 addition & 1 deletion external/Xamarin.MacDev
2 changes: 1 addition & 1 deletion external/macios-binaries
Submodule macios-binaries updated 23 files
+ mlaunch/lib/mlaunch/mlaunch.app/Contents/Info.plist
+ mlaunch/lib/mlaunch/mlaunch.app/Contents/MacOS/mlaunch
+ mlaunch/lib/mlaunch/mlaunch.app/Contents/MacOS/mlaunch.dSYM/Contents/Resources/DWARF/mlaunch
+ mlaunch/lib/mlaunch/mlaunch.app/Contents/MonoBundle/Mono.Security.dll
+ mlaunch/lib/mlaunch/mlaunch.app/Contents/MonoBundle/Mono.Security.pdb
+ mlaunch/lib/mlaunch/mlaunch.app/Contents/MonoBundle/System.Core.dll
+ mlaunch/lib/mlaunch/mlaunch.app/Contents/MonoBundle/System.Core.pdb
+ mlaunch/lib/mlaunch/mlaunch.app/Contents/MonoBundle/System.Numerics.dll
+ mlaunch/lib/mlaunch/mlaunch.app/Contents/MonoBundle/System.Numerics.pdb
+ mlaunch/lib/mlaunch/mlaunch.app/Contents/MonoBundle/System.Xml.dll
+ mlaunch/lib/mlaunch/mlaunch.app/Contents/MonoBundle/System.Xml.pdb
+ mlaunch/lib/mlaunch/mlaunch.app/Contents/MonoBundle/System.dll
+ mlaunch/lib/mlaunch/mlaunch.app/Contents/MonoBundle/System.pdb
+ mlaunch/lib/mlaunch/mlaunch.app/Contents/MonoBundle/Xamarin.Hosting.dll
+ mlaunch/lib/mlaunch/mlaunch.app/Contents/MonoBundle/Xamarin.Hosting.pdb
+ mlaunch/lib/mlaunch/mlaunch.app/Contents/MonoBundle/Xamarin.Mac.dll
+ mlaunch/lib/mlaunch/mlaunch.app/Contents/MonoBundle/Xamarin.Mac.pdb
+ mlaunch/lib/mlaunch/mlaunch.app/Contents/MonoBundle/libMonoPosixHelper.dylib
+ mlaunch/lib/mlaunch/mlaunch.app/Contents/MonoBundle/libmono-native.dylib
+ mlaunch/lib/mlaunch/mlaunch.app/Contents/MonoBundle/mlaunch.exe
+ mlaunch/lib/mlaunch/mlaunch.app/Contents/MonoBundle/mlaunch.pdb
+ mlaunch/lib/mlaunch/mlaunch.app/Contents/MonoBundle/mscorlib.dll
+ mlaunch/lib/mlaunch/mlaunch.app/Contents/MonoBundle/mscorlib.pdb
19 changes: 9 additions & 10 deletions jenkins/Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -434,8 +434,8 @@ def abortExecutingBuilds ()
}

timestamps {
def mainMacOSVersion = 15
node ("xamarin-macios && macos-10.${mainMacOSVersion}") {
def mainMacOSVersion = "10.15"
node ("xamarin-macios && macos-${mainMacOSVersion}") {
try {
timeout (time: 15, unit: 'HOURS') {
// Hard-code a workspace, since branch-based and PR-based
Expand Down Expand Up @@ -864,23 +864,22 @@ timestamps {
def lastOS = sh (returnStdout: true, script: "grep ^MACOS_NUGET_VERSION= '${workspace}/xamarin-macios/Make.versions' | sed -e 's/.*=//' -e 's/.[0-9]*\$//'").trim ().split ("\\.")[1].toInteger ()
def macOSes = []
def excludedOSes = []
for (os = firstOS; os <= lastOS; os++)
macOSes.add (os)
// If any macOS version needs to be excluded manually, it can be done like this (in this case to remove macOS 10.14):
// Any macOS versions excluded like this still get a entry in the Jenkins UI, making it explicit that the OS version was skipped.
// excludedOSes.add (14)
// excludedOSes.add ("10.14")
excludedOSes.add ("11.0") // We have a bot labelled as 10.16 (and we're running there)
// Have in mind that the value in the list is only the minor part of the macOS version number.
for (i = 0; i < macOSes.size (); i++) {
def os = macOSes [i];
def macOS = "${os}" // Need to bind the label variable before the closure
def excluded = false
def nodeText = "XM tests on 10.${macOS}"
def nodeText = "XM tests on ${macOS}"
if (indexOfElement (excludedOSes, os) >= 0) {
excluded = true
nodeText = "ℹ️ XM tests not executed on 10.${macOS} ℹ️"
nodeText = "ℹ️ XM tests not executed on ${macOS} ℹ️"
} else if (os == mainMacOSVersion) {
excluded = true
nodeText = "ℹ️ XM tests not executed on a separate 10.${macOS} bot because they're already executed as a part of the main test run ℹ️"
nodeText = "ℹ️ XM tests not executed on a separate ${macOS} bot because they're already executed as a part of the main test run ℹ️"
}
builders [nodeText] = {
try {
Expand All @@ -896,8 +895,8 @@ timestamps {
}
}
} catch (err) {
currentStage = "Running XM tests on '10.${macOS}'"
def msg = "Xamarin.Mac tests on 10.${macOS} failed: " + err.getMessage ();
currentStage = "Running XM tests on '${macOS}'"
def msg = "Xamarin.Mac tests on ${macOS} failed: " + err.getMessage ();
appendFileComment ("🔥 [${msg}](${env.RUN_DISPLAY_URL}) 🔥\n")
failedStages.add (currentStage)
throw err
Expand Down
28 changes: 28 additions & 0 deletions jenkins/list-macos-platforms.csharp
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
#!/usr/bin/env /Library/Frameworks/Mono.framework/Commands/csharp

using System.IO;
using System.Text;
using System.Xml;

var args = Environment.GetCommandLineArgs ();
var expectedArgumentCount = 1;
if (args.Length != expectedArgumentCount + 2 /* 2 default arguments (executable + script) + 'expectedArgumentCount' arguments we're interested in */) {
// first arg is "/Library/Frameworks/Mono.framework/Versions/4.8.0/lib/mono/4.5/csharp.exe"
// second arg the script itself
// then comes the ones we care about
Console.WriteLine ($"Need {expectedArgumentCount} arguments, got {args.Length - 2}");
Environment.Exit (1);
return;
}

var plistPath = args [2];
var doc = new XmlDocument ();
doc.Load (plistPath);
var nodes = doc.SelectNodes ($"/plist/dict/key[text()='KnownVersions']/following-sibling::dict[1]/key[text()='macOS']/following-sibling::array[1]/string");

var sb = new StringBuilder ();
foreach (XmlNode n in nodes)
sb.Append ($"{n.InnerText} ");
Console.WriteLine (sb);

Environment.Exit (0);
2 changes: 1 addition & 1 deletion mk/xamarin.mk
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ MONO_BRANCH := $(shell cd $(MONO_PATH) 2> /dev/null && git symbolic-ref --sho
endif

ifdef ENABLE_XAMARIN
NEEDED_MACCORE_VERSION := 1a223888bf2891a48132fd3eb83b59933ef822f9
NEEDED_MACCORE_VERSION := c61de641c35509ccb7508847862fa525a4c826b8
NEEDED_MACCORE_BRANCH := d16-8

MACCORE_DIRECTORY := maccore
Expand Down
80 changes: 2 additions & 78 deletions msbuild/Xamarin.iOS.Tasks.Core/Xamarin.iOS.WatchApp.Common.targets
Original file line number Diff line number Diff line change
Expand Up @@ -15,83 +15,7 @@ Copyright (C) 2015-2016 Xamarin. All rights reserved.
-->

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<UsingTask TaskName="Xamarin.iOS.Tasks.ResolveNativeWatchApp" AssemblyFile="Xamarin.iOS.Tasks.dll" />

<Import Project="$(MSBuildThisFileDirectory)$(MSBuildThisFileName).Before.targets"
Condition="Exists('$(MSBuildThisFileDirectory)$(MSBuildThisFileName).Before.targets')"/>

<PropertyGroup>
<IsWatchApp>True</IsWatchApp>
<IsWatch2App>False</IsWatch2App>
</PropertyGroup>

<Import Project="$(MSBuildThisFileDirectory)Xamarin.iOS.Common.targets" />

<Import Project="$(MSBuildThisFileDirectory)Xamarin.iOS.WatchApp.Common.props"
Condition="'$(_XamarinWatchAppCommonPropsHasBeenImported)' != 'true'" />

<Import Project="$(MSBuildThisFileDirectory)$(MSBuildThisFileName).Before.targets"
Condition="Exists('$(MSBuildThisFileDirectory)$(MSBuildThisFileName).Before.targets')"/>

<!-- Override GetTargetPath, Build, and Rebuild -->
<Target Name="GetBundleTargetPath" DependsOnTargets="_GetWatchAppBundlePath;$(GetTargetPathDependsOn)" Outputs="@(_WatchAppBundlePath)" />
<Target Name="Build" Condition="'$(_InvalidConfigurationWarning)' != 'true'" DependsOnTargets="_GetWatchAppBundlePath;$(BuildDependsOn)" Outputs="@(_WatchAppBundlePath)" />
<Target Name="Rebuild" Condition="'$(_InvalidConfigurationWarning)' != 'true'" DependsOnTargets="_GetWatchAppBundlePath;$(RebuildDependsOn)" Outputs="@(_WatchAppBundlePath)" />

<Target Name="_ResolveNativeWatchApp" DependsOnTargets="_DetectSdkLocations;_GenerateBundleName;_ComputeTargetFrameworkMoniker">
<ResolveNativeWatchApp
Condition="'$(IsMacEnabled)' == 'true'"
SessionId="$(BuildSessionId)"
SdkVersion="$(_SdkVersion)"
SdkIsSimulator="$(_SdkIsSimulator)"
TargetFrameworkMoniker="$(_ComputedTargetFrameworkMoniker)"
>
<Output TaskParameter="NativeWatchApp" PropertyName="_NativeWatchApp" />
</ResolveNativeWatchApp>
<Target Name="Build">
<Error Text="Xamarin.iOS 14+ does not support watchOS 1 apps. Please migrate your project to watchOS 2+." />
</Target>

<PropertyGroup>
<_CompileToNativeDependsOn>
$(_CompileToNativeDependsOn);
_ResolveNativeWatchApp
</_CompileToNativeDependsOn>
</PropertyGroup>

<Target Name="_CompileToNative" DependsOnTargets="$(_CompileToNativeDependsOn)" >
<Ditto
SessionId="$(BuildSessionId)"
Condition="'$(IsMacEnabled)'"
ToolExe="$(DittoExe)"
ToolPath="$(DittoPath)"
Source="$(_NativeWatchApp)"
Destination="$(_AppBundlePath)$(AssemblyName)"
/>

<!-- This task must always run, because Apple's toolchain determines if a watch app
must be installed or not depending on the timestamp of the main executable (this means
that if any other file is modified, we must at least touch the main executable as well).
-->
<Touch SessionId="$(BuildSessionId)" Condition="'$(IsMacEnabled)'" Files="$(_AppBundlePath)$(AssemblyName)"/>

<MakeDir SessionId="$(BuildSessionId)" Condition="'$(IsMacEnabled)' == 'true'" Directories="$(_AppBundlePath)_WatchKitStub" />

<Ditto
SessionId="$(BuildSessionId)"
Condition="'$(IsMacEnabled)'"
ToolExe="$(DittoExe)"
ToolPath="$(DittoPath)"
Source="$(_NativeWatchApp)"
Destination="$(_AppBundlePath)_WatchKitStub\WK"
/>

<RemoveDir SessionId="$(BuildSessionId)" Condition="'$(IsMacEnabled)' == 'true'" Directories="$(AppBundleDir).dSYM" />
</Target>

<Target Name="CopyFilesToOutputDirectory" />
<Target Name="CoreCompile" />
<Target Name="CreateIpa"/>

<Import Project="$(MSBuildThisFileDirectory)$(MSBuildThisFileName).After.targets"
Condition="Exists('$(MSBuildThisFileDirectory)$(MSBuildThisFileName).After.targets')"/>

</Project>
6 changes: 6 additions & 0 deletions msbuild/tests/NativeExtensionEmbedding/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
native/build
native/DerivedData
xcshareddata
xcuserdata
bin
obj
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
using Foundation;
using UIKit;

namespace ManagedContainer
{
// The UIApplicationDelegate for the application. This class is responsible for launching the
// User Interface of the application, as well as listening (and optionally responding) to application events from iOS.
[Register ("AppDelegate")]
public class AppDelegate : UIResponder, IUIApplicationDelegate
{

[Export ("window")]
public UIWindow Window { get; set; }

[Export ("application:didFinishLaunchingWithOptions:")]
public bool FinishedLaunching (UIApplication application, NSDictionary launchOptions)
{
// Override point for customization after application launch.
// If not required for your application you can safely delete this method
return true;
}

// UISceneSession Lifecycle

[Export ("application:configurationForConnectingSceneSession:options:")]
public UISceneConfiguration GetConfiguration (UIApplication application, UISceneSession connectingSceneSession, UISceneConnectionOptions options)
{
// Called when a new scene session is being created.
// Use this method to select a configuration to create the new scene with.
return UISceneConfiguration.Create ("Default Configuration", connectingSceneSession.Role);
}

[Export ("application:didDiscardSceneSessions:")]
public void DidDiscardSceneSessions (UIApplication application, NSSet<UISceneSession> sceneSessions)
{
// Called when the user discards a scene session.
// If any sessions were discarded while the application was not running, this will be called shortly after `FinishedLaunching`.
// Use this method to release any resources that were specific to the discarded scenes, as they will not return.
}
}
}

Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
</dict>
</plist>
Loading

0 comments on commit eb9b690

Please sign in to comment.