213 строки
9.7 KiB
Plaintext
213 строки
9.7 KiB
Plaintext
@using System.Linq
|
|
<Project Sdk="MSBuild.Sdk.Extras/2.0.54">
|
|
|
|
<PropertyGroup>
|
|
<TargetFramework>MonoAndroid90</TargetFramework>
|
|
<IsBindingProject>true</IsBindingProject>
|
|
@if (!string.IsNullOrEmpty(Model.AssemblyName)) {
|
|
<AssemblyName>@(Model.AssemblyName)</AssemblyName>
|
|
} else {
|
|
<AssemblyName>@(Model.NuGetPackageId)</AssemblyName>
|
|
}
|
|
<MonoAndroidResourcePrefix>Resources</MonoAndroidResourcePrefix>
|
|
<MonoAndroidAssetsPrefix>Assets</MonoAndroidAssetsPrefix>
|
|
<AndroidUseLatestPlatformSdk>False</AndroidUseLatestPlatformSdk>
|
|
<AndroidUseIntermediateDesignerFile>True</AndroidUseIntermediateDesignerFile>
|
|
<AndroidResgenFile>Resources\Resource.designer.cs</AndroidResgenFile>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup>
|
|
<PackageId>@(Model.NuGetPackageId)</PackageId>
|
|
<Title>Xamarin Android Support Library - @(Model.Name)</Title>
|
|
<Summary>Xamarin.Android bindings for Android Support Library - @(Model.Name)</Summary>
|
|
<Description>Xamarin.Android bindings for Android Support Library - @(Model.Name)</Description>
|
|
<PackageTags>Xamarin Android Xamarin.Android Support</PackageTags>
|
|
<Authors>Microsoft</Authors>
|
|
<Owners>Microsoft</Owners>
|
|
<Copyright>© Microsoft Corporation. All rights reserved.</Copyright>
|
|
<PackageProjectUrl>https://go.microsoft.com/fwlink/?linkid=865352</PackageProjectUrl>
|
|
<PackageLicenseUrl>https://go.microsoft.com/fwlink/?linkid=865381</PackageLicenseUrl>
|
|
<PackageIconUrl>https://raw.githubusercontent.com/xamarin/AndroidSupportComponents/master/icons/@(Model.Name)_128x128.png</PackageIconUrl>
|
|
<PackageVersion>@(Model.NuGetVersion)</PackageVersion>
|
|
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
|
|
<!-- Include symbol files (*.pdb) in the built .nupkg -->
|
|
<AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup>
|
|
<AndroidClassParser>class-parse</AndroidClassParser>
|
|
<AndroidCodegenTarget>XAJavaInterop1</AndroidCodegenTarget>
|
|
</PropertyGroup>
|
|
|
|
<ItemGroup>
|
|
@foreach (var art in @Model.MavenArtifacts) {
|
|
<TransformFile Include="..\..\externals\@(art.MavenGroupId).@(art.MavenArtifactId)-paramnames.xml" Condition="Exists('..\..\..\externals\@(art.MavenGroupId).@(art.MavenArtifactId)-paramnames.xml')" />
|
|
}
|
|
</ItemGroup>
|
|
|
|
@*<ItemGroup>
|
|
@foreach (var art in @Model.MavenArtifacts) {
|
|
<JavaSourceJar Include="..\..\externals\@(art.MavenGroupId).@(art.MavenArtifactId)-sources.jar" Condition="Exists('..\..\..\externals\@(art.MavenGroupId).@(art.MavenArtifactId)-sources.jar')" />
|
|
}
|
|
</ItemGroup>*@
|
|
|
|
|
|
<ItemGroup>
|
|
@foreach (var art in @Model.MavenArtifacts) {
|
|
<_AndroidDocumentationPath Include="..\..\externals\@(art.MavenGroupId).@(art.MavenArtifactId)-paramnames.txt" Condition="Exists('..\..\..\externals\@(art.MavenGroupId).@(art.MavenArtifactId)-paramnames.txt')" />
|
|
}
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<None Include="@(Model.NuGetPackageId).targets" Pack="True" PackagePath="build\$(TargetFramework)" />
|
|
</ItemGroup>
|
|
|
|
@if (@Model.MavenArtifacts.Count > 0) {
|
|
<ItemGroup>
|
|
@foreach (var art in @Model.MavenArtifacts) {
|
|
if (art.ProguardFile != null) {
|
|
<None Include="..\..\@(art.ProguardFile)" Pack="True" PackagePath="proguard\" />
|
|
}
|
|
}
|
|
</ItemGroup>
|
|
}
|
|
|
|
<ItemGroup>
|
|
@foreach (var art in @Model.MavenArtifacts) {
|
|
if (art.MavenArtifactPackaging == "aar") {
|
|
<LibraryProjectZip Include="..\..\externals\@(art.MavenGroupId)\@(art.MavenGroupId).@(art.MavenArtifactId).aar" />
|
|
}
|
|
}
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<Folder Include="Additions\" />
|
|
<Folder Include="Jars\" />
|
|
<Folder Include="Transforms\" />
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<Compile Include="..\..\source\AssemblyInfo.cs" />
|
|
<Compile Include="..\..\source\@(Model.MavenGroupId)\@(Model.Name)\additions\*.cs">
|
|
<Link>Additions/%(RecursiveDir)/%(Filename)%(Extension)</Link>
|
|
</Compile>
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<TransformFile Include="..\..\source\Metadata.common.xml" >
|
|
<Link>Transforms/Metadata.common.xml</Link>
|
|
</TransformFile>
|
|
<TransformFile Include="..\..\source\@(Model.MavenGroupId)\@(Model.Name)\transforms\*.xml">
|
|
<Link>Transforms/%(RecursiveDir)/%(Filename)%(Extension)</Link>
|
|
</TransformFile>
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
@foreach (var art in @Model.MavenArtifacts) {
|
|
if (1==2 && art.MavenArtifactPackaging == "aar") {
|
|
<None Include="..\..\externals\@(art.MavenGroupId).@(art.MavenArtifactId).aar" Pack="True" PackagePath="aar\" />
|
|
}
|
|
}
|
|
</ItemGroup>
|
|
|
|
|
|
@if (@Model.MavenArtifacts.Count > 0) {
|
|
<ItemGroup>
|
|
@foreach (var art in @Model.MavenArtifacts) {
|
|
if (art.MavenArtifactPackaging == "aar") {
|
|
<InputJar Include="..\..\externals\@(art.MavenGroupId).@(art.MavenArtifactId)\classes.jar" />
|
|
<!-- For those artifacts with lib/ folder -->
|
|
<InputJar
|
|
Condition="Exists('..\..\externals\@(art.MavenGroupId).@(art.MavenArtifactId)\libs\')"
|
|
Include="..\..\externals\@(art.MavenGroupId).@(art.MavenArtifactId)\libs\*.jar"
|
|
/>
|
|
} else {
|
|
<EmbeddedJar Include="..\..\externals\@(art.MavenGroupId)\@(art.MavenGroupId).@(art.MavenArtifactId).jar" />
|
|
}
|
|
}
|
|
</ItemGroup>
|
|
}
|
|
|
|
<ItemGroup>
|
|
<!-- ProjectReference -->
|
|
@foreach (var dep in @Model.NuGetDependencies) {
|
|
if (dep.IsProjectReference) {
|
|
<ProjectReference Include="..\..\generated\@(dep.MavenArtifact.MavenGroupId).@(dep.MavenArtifact.MavenArtifactId)\@(dep.MavenArtifact.MavenGroupId).@(dep.MavenArtifact.MavenArtifactId).csproj" PrivateAssets="none" />
|
|
}
|
|
}
|
|
<!-- some additional fixes -->
|
|
@if (@Model.NuGetPackageId == "Xamarin.Android.Support.Transition")
|
|
{
|
|
<ProjectReference Include="..\com.android.support.support-fragment\com.android.support.support-fragment.csproj" PrivateAssets="none" />
|
|
}
|
|
</ItemGroup>
|
|
|
|
|
|
<ItemGroup>
|
|
<!-- PackageReference -->
|
|
@foreach (var dep in @Model.NuGetDependencies) {
|
|
if (!dep.IsProjectReference) {
|
|
<PackageReference Include="@(dep.NuGetPackageId)" Version="@(dep.NuGetVersion)" />
|
|
}
|
|
}
|
|
</ItemGroup>
|
|
|
|
@if (@Model.NuGetPackageId == "Xamarin.Android.Support.Annotations")
|
|
{
|
|
<ItemGroup>
|
|
<None Include="..\..\source\buildtasks\support-annotations\bin\$(Configuration)\Xamarin.Android.Support.BuildTasks.dll" Pack="True" PackagePath="build\$(TargetFramework)" />
|
|
</ItemGroup>
|
|
}
|
|
|
|
@if (@Model.NuGetPackageId == "Xamarin.Android.Support.Vector.Drawable")
|
|
{
|
|
<ItemGroup>
|
|
<None Include="..\..\source\buildtasks\support-vector-drawable\bin\$(Configuration)\Xamarin.Android.Support.Tasks.VectorDrawable.dll" Pack="True" PackagePath="build\$(TargetFramework)" />
|
|
</ItemGroup>
|
|
}
|
|
|
|
@if (1==2 && @Model.NuGetPackageId == "Xamarin.Android.Support.v4")
|
|
{
|
|
<Target Name="AndroidSupportLibrariesTypeForwardersGenerationWithGenAPI" BeforeTargets="Build">
|
|
<Message Text="AndroidSupportLibrariesTypeForwardersGenerationWithGenAPI" ></Message>
|
|
<PropertyGroup>
|
|
<GenAPITargetFramework>$(TargetFramework)</GenAPITargetFramework>
|
|
<GenAPITargetFramework Condition=" '$(GenAPITargetFramework)' == '' ">$(TargetFrameworks)</GenAPITargetFramework>
|
|
<GenAPIPath>$(MSBuildProjectDirectory)\..\..\tools\microsoft.dotnet.buildtools.genapi.1.0.0-beta-00081\Microsoft.DotNet.BuildTools.GenAPI\tools\GenAPI.exe</GenAPIPath>
|
|
|
|
<GenAPIIntermediateOutputPath>bin\Release\MonoAndroid90\</GenAPIIntermediateOutputPath>
|
|
|
|
<GenAPILibPaths Condition=" '$(OS)' == 'Windows_NT' ">$(VsInstallRoot)\Common7\IDE\ReferenceAssemblies\Microsoft\Framework\MonoAndroid\v1.0,$(VsInstallRoot)\Common7\IDE\ReferenceAssemblies\Microsoft\Framework\MonoAndroid\v9.0</GenAPILibPaths>
|
|
<GenAPILibPaths Condition=" '$(OS)' != 'Windows_NT' ">/Library/Frameworks/Xamarin.Android.Framework/Libraries/mono/2.1,/Library/Frameworks/Xamarin.Android.framework/Libraries/mandroid/platforms/android-28</GenAPILibPaths>
|
|
|
|
<GenAPICommand Condition=" '$(OS)' == 'Windows_NT'">"$(GenAPIPath)"</GenAPICommand>
|
|
<GenAPICommand Condition=" '$(OS)' != 'Windows_NT'">mono --runtime=v4.0.30319 "$(GenAPIPath)"</GenAPICommand>
|
|
</PropertyGroup>
|
|
|
|
<ItemGroup>
|
|
@foreach (var dep in @Model.NuGetDependencies)
|
|
{
|
|
if (dep.IsProjectReference)
|
|
{
|
|
<GenAPIItemBase
|
|
Include="$(MSBuildProjectDirectory)\..\@(dep.MavenArtifact.MavenGroupId).@(dep.MavenArtifact.MavenArtifactId)\">
|
|
<GenAPIAssembly>$(GenAPIIntermediateOutputPath)@(dep.NuGetPackageId).dll</GenAPIAssembly>
|
|
<GenAPICSCode>$(MSBuildProjectDirectory)\Additions\@(dep.NuGetPackageId).cs</GenAPICSCode>
|
|
</GenAPIItemBase>
|
|
}
|
|
}
|
|
</ItemGroup>
|
|
|
|
<Message Text=" GenAPIItemBase = %(GenAPIItemBase.Identity) %0A %(GenAPIItemBase.GenAPICSCode) %0A %(GenAPIItemBase.GenAPIAssembly)"></Message>
|
|
<!--
|
|
// For some reason GenAPI.exe can't handle absolute paths on mac/unix properly, so always make them relative
|
|
// GenAPI.exe -libPath:$(MONOANDROID) -out:Some.generated.cs -w:TypeForwards ./relative/path/to/Assembly.dll
|
|
-->
|
|
<MakeDir Directories="$(MSBuildProjectDirectory)\Additions" />
|
|
<Exec
|
|
Command="$(GenAPIPath) -libPath:"$(GenAPILibPaths)" -out:"%(GenAPIItemBase.GenAPICSCode)" -w:TypeForwards "%(GenAPIItemBase.Identity)%(GenAPIItemBase.GenAPIAssembly)""
|
|
/>
|
|
</Target>
|
|
}
|
|
|
|
</Project>
|