[dotnet] Build & publish MacCatalyst packs. (#10624)

* [dotnet] Build & publish MacCatalyst packs.

* Add runtime support.
This commit is contained in:
Rolf Bjarne Kvinge 2021-02-12 07:38:43 +01:00 коммит произвёл GitHub
Родитель c3677a0b39
Коммит f4ac99efc0
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
14 изменённых файлов: 66 добавлений и 1 удалений

Просмотреть файл

@ -522,6 +522,7 @@ endif
endif
ifdef INCLUDE_MACCATALYST
DOTNET_PLATFORMS+=MacCatalyst
DOTNET_MACCATALYST_RUNTIME_IDENTIFIERS=maccatalyst-x64
endif

Просмотреть файл

@ -7,6 +7,8 @@ DOTNET_MANIFESTS_PATH=$(DOTNET6_DIR)/sdk-manifests/$(DOTNET6_VERSION_BAND)
DOTNET_PACKS_PATH=$(DOTNET6_DIR)/packs
TMP_PKG_DIR=_pkg
DOTNET_PLATFORMS_UPPERCASE:=$(shell echo $(DOTNET_PLATFORMS) | tr a-z A-Z)
# Create variables prefixed with the correctly cased platform name from the upper-cased platform name. This makes some of the next sections somewhat simpler.
$(foreach platform,$(DOTNET_PLATFORMS),$(eval $(platform)_NUGET_VERSION_NO_METADATA:=$($(shell echo $(platform) | tr a-z A-Z)_NUGET_VERSION_NO_METADATA)))

Просмотреть файл

@ -0,0 +1,3 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\targets\Microsoft.MacCatalyst.Sdk.DefaultItems.props" />
</Project>

Просмотреть файл

@ -0,0 +1,3 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildThisFileDirectory)..\targets\Microsoft.MacCatalyst.Sdk.props" />
</Project>

Просмотреть файл

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<_PlatformName>MacCatalyst</_PlatformName>
</PropertyGroup>
<Import Project="Xamarin.Shared.Sdk.props" />
</Project>

Просмотреть файл

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="Xamarin.Shared.Sdk.targets" />
</Project>

Просмотреть файл

@ -0,0 +1,3 @@
<Project>
<Import Project="Sdk.props" Sdk="Microsoft.MacCatalyst.Sdk" Condition="'$(TargetPlatformIdentifier)' == 'MacCatalyst'" />
</Project>

Просмотреть файл

@ -0,0 +1,8 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<_PlatformName>MacCatalyst</_PlatformName>
</PropertyGroup>
<Import Project="../microsoft.ref.csproj" />
</Project>

Просмотреть файл

@ -0,0 +1,9 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<_PlatformName>MacCatalyst</_PlatformName>
<_RuntimeIdentifier>maccatalyst-arm64</_RuntimeIdentifier>
</PropertyGroup>
<Import Project="../microsoft.runtime.csproj" />
</Project>

Просмотреть файл

@ -0,0 +1,9 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<_PlatformName>MacCatalyst</_PlatformName>
<_RuntimeIdentifier>maccatalyst-x64</_RuntimeIdentifier>
</PropertyGroup>
<Import Project="../microsoft.runtime.csproj" />
</Project>

Просмотреть файл

@ -0,0 +1,8 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<_PlatformName>MacCatalyst</_PlatformName>
</PropertyGroup>
<Import Project="../microsoft.sdk.csproj" />
</Project>

Просмотреть файл

@ -23,6 +23,7 @@
<_AssemblyInfix Condition="'$(_PlatformName)' == 'tvOS'">TVOS</_AssemblyInfix>
<_AssemblyInfix Condition="'$(_PlatformName)' == 'watchOS'">WatchOS</_AssemblyInfix>
<_AssemblyInfix Condition="'$(_PlatformName)' == 'macOS'">Mac</_AssemblyInfix>
<_AssemblyInfix Condition="'$(_PlatformName)' == 'MacCatalyst'">MacCatalyst</_AssemblyInfix>
</PropertyGroup>
<ItemGroup>

Просмотреть файл

@ -101,6 +101,7 @@
<_PlatformAssemblyName Condition=" '$(_PlatformName)' == 'tvOS' ">Xamarin.TVOS</_PlatformAssemblyName>
<_PlatformAssemblyName Condition=" '$(_PlatformName)' == 'watchOS' ">Xamarin.WatchOS</_PlatformAssemblyName>
<_PlatformAssemblyName Condition=" '$(_PlatformName)' == 'macOS' ">Xamarin.Mac</_PlatformAssemblyName>
<_PlatformAssemblyName Condition=" '$(_PlatformName)' == 'MacCatalyst' ">Xamarin.MacCatalyst</_PlatformAssemblyName>
<!-- We have to set DebuggerSupport before importing Microsoft.NET.Sdk -->
<!-- That means we have to set _BundlerDebug before that, because DebuggerSupport depends on it -->

Просмотреть файл

@ -216,6 +216,8 @@ ifdef INCLUDE_DEVICE
$(eval $(call PlatformTemplate,iphoneos,IPHONEOS,armv7 armv7s arm64))
endif
$(eval $(call PlatformTemplate,iphonesimulator,IOSSIMULATOR,x86 x86_64))
endif
ifdef INCLUDE_MACCATALYST
$(eval $(call PlatformTemplate,maccatalyst,MACCATALYST,x86_64))
endif
@ -616,6 +618,9 @@ $(eval $(call DotNetLipoLibTemplate,watchOS,watchos-arm,watchos,armv7k arm64_32)
endif
endif
$(eval $(call DotNetCopyLibTemplate,macOS,osx-x64,mac,x86_64))
ifdef INCLUDE_MACCATALYST
$(eval $(call DotNetCopyLibTemplate,MacCatalyst,maccatalyst-x64,maccatalyst,x86_64))
endif
define DotNetFrameworkTemplate
DOTNET_TARGETS += \
@ -648,7 +653,7 @@ $(DOTNET_DESTDIR)/Microsoft.$(1).Runtime.$(2)/runtimes/$(2)/native/Frameworks/%:
endef
# macOS does not have the Xamarin[-debug].framework frameworks
$(foreach platform,$(filter-out macOS,$(DOTNET_PLATFORMS)),$(foreach rid,$(DOTNET_$(platform)_RUNTIME_IDENTIFIERS),$(eval $(call DotNetFrameworkTemplate,$(platform),$(rid)))))
$(foreach platform,$(filter-out macOS MacCatalyst,$(DOTNET_PLATFORMS)),$(foreach rid,$(DOTNET_$(platform)_RUNTIME_IDENTIFIERS),$(eval $(call DotNetFrameworkTemplate,$(platform),$(rid)))))
# If the RID represents fewer architectures than the library in .libs, then use the LipoTemplate, otherwise the CopyTemplate
ifdef INCLUDE_IOS