diff --git a/.gitignore b/.gitignore index 0c3e29fdf..faff81fd1 100644 --- a/.gitignore +++ b/.gitignore @@ -9,9 +9,10 @@ tools/ .gradle packages/ externals/ -output/ +output*/ Resource.designer.cs -generated/ +generated*/ +data/timings/ # User-specific files *.suo diff --git a/build/cake/binderate.cake b/build/cake/binderate.cake index b355bdf51..28ec0a757 100644 --- a/build/cake/binderate.cake +++ b/build/cake/binderate.cake @@ -7,6 +7,8 @@ Task ("binderate") .IsDependentOn ("javadocs-gps") .Does (() => { + EnsureDirectoryExists("./output"); + var configFile = MakeAbsolute (new FilePath ("./config.json")).FullPath; var basePath = MakeAbsolute (new DirectoryPath ("./")).FullPath; diff --git a/build/cake/build-and-package.cake b/build/cake/build-and-package.cake index 0e372ab6a..624fdc2b0 100644 --- a/build/cake/build-and-package.cake +++ b/build/cake/build-and-package.cake @@ -20,6 +20,27 @@ Task ("nuget") ); }); +Task ("nuget-pack-without-build") + .Does + ( + () => + { + var settings = new DotNetMSBuildSettings () + .SetConfiguration (CONFIGURATION) + .EnableBinaryLogger ($"./output/nuget-pack-without-build.{CONFIGURATION}.binlog") + .WithProperty ("NoBuild", "true") + .WithProperty ("PackageOutputPath", MakeAbsolute ((DirectoryPath)"./output/").FullPath) + .WithTarget ("Pack"); + + DotNetBuild + ( + "./generated/AndroidX.sln", + new DotNetBuildSettings { MSBuildSettings = settings } + ); + } + ); + + // Builds the .csproj projects Task ("libs") .IsDependentOn("metadata-verify") diff --git a/build/ci/build.yml b/build/ci/build.yml index e8468dd96..34cc3a946 100644 --- a/build/ci/build.yml +++ b/build/ci/build.yml @@ -4,7 +4,7 @@ parameters: buildPool: # VM pool information # Build Parameters - timeoutInMinutes: 300 # Max job runtime in minutes + timeoutInMinutes: 600 # Max job runtime in minutes runAPIScan: false # Run APIScan analysis runDotnetNextTest: false use1ESTemplate: true diff --git a/build/ci/setup-environment.yml b/build/ci/setup-environment.yml index 7ce398567..5dd422e0d 100644 --- a/build/ci/setup-environment.yml +++ b/build/ci/setup-environment.yml @@ -92,18 +92,11 @@ steps: jdkSourceOption: 'PreInstalled' - ${{ if eq(parameters.installAndroidDependencies, true) }}: - - task: DotNetCoreCLI@2 - displayName: Create android template - inputs: - command: custom - custom: new - arguments: android -o $(Agent.TempDirectory)/TempDroid - - task: DotNetCoreCLI@2 displayName: Install android dependencies inputs: command: build - projects: $(Agent.TempDirectory)/TempDroid/TempDroid.csproj + projects: build/scripts/provision-android/provision-android.csproj arguments: >- -t:InstallAndroidDependencies -p:AcceptAndroidSdkLicenses=true -p:AndroidSdkDirectory=${{ parameters.androidSdkRoot }} diff --git a/build/scripts/provision-android/provision-android.csproj b/build/scripts/provision-android/provision-android.csproj new file mode 100644 index 000000000..fcf0fb159 --- /dev/null +++ b/build/scripts/provision-android/provision-android.csproj @@ -0,0 +1,5 @@ + + + net8.0-android + + diff --git a/source/_PackageLevelCustomizations.cshtml b/source/_PackageLevelCustomizations.cshtml index f63328583..2b6428c52 100644 --- a/source/_PackageLevelCustomizations.cshtml +++ b/source/_PackageLevelCustomizations.cshtml @@ -58,9 +58,9 @@ @* .NET 9 changes some binding internals that breaks some of our hand bound code. This property reverts to the old behavior. Once we are .NET 9+ we should redo our hand bound code and remove this. *@ -@if (@Model.NuGetPackageId == "Xamarin.AndroidX.Media3.ExoPlayer") +@if (@Model.NuGetPackageId == "Xamarin.AndroidX.Media3.ExoPlayer" ) { - + <_AndroidEmitLegacyInterfaceInvokers>true -} +} \ No newline at end of file diff --git a/utilities.cake b/utilities.cake index cc5ffb98f..46298f234 100644 --- a/utilities.cake +++ b/utilities.cake @@ -1,17 +1,27 @@ -// debugging prerequisity +/* +debugging prerequisity #tool nuget:?package=Cake.CoreCLR +*/ /* dotnet cake spell-check.cake dotnet cake spell-check.cake -t=spell-check */ -#addin nuget:?package=WeCantSpell.Hunspell&version=5.0.0 +#addin nuget:?package=WeCantSpell.Hunspell&version=6.0.0 #addin nuget:?package=Newtonsoft.Json&version=13.0.3 #addin nuget:?package=Cake.FileHelpers&version=7.0.0 -#addin nuget:?package=Mono.Cecil&version=0.11.5 +#addin nuget:?package=Mono.Cecil&version=0.11.6 #addin nuget:?package=HolisticWare.Xamarin.Tools.ComponentGovernance&version=0.0.1.4 #addin nuget:?package=HolisticWare.Core.Net.HTTP&version=0.0.4 #addin nuget:?package=HolisticWare.Core.IO&version=0.0.4 +#addin nuget:?package=CliWrap&version=3.8.2 + +/* +#addin nuget:https://api.nuget.org/v3/index.json?package=Mono.Cecil&version=0.11.6 +#addin nuget:https://api.nuget.org/v3/index.json??package=HolisticWare.Xamarin.Tools.ComponentGovernance&version=0.0.1.4 +#addin nuget:https://api.nuget.org/v3/index.json??package=HolisticWare.Core.Net.HTTP&version=0.0.4 +#addin nuget:https://api.nuget.org/v3/index.json??package=HolisticWare.Core.IO&version=0.0.4 +*/ #load "build/cake/performance-timings.cake" @@ -31,8 +41,8 @@ string file_spell_errors = "./output/spell-errors.txt"; List spell_errors = null; JArray binderator_json_array = null; -List<(string, string, string, string)> mappings_artifact_nuget = new List<(string, string, string, string)>(); -Dictionary Licenses = new Dictionary(); +List<(string, string, string, string)> mappings_artifact_nuget = new (); +Dictionary Licenses = new (); // modifying default method for licenses Manifest.Defaults.VersionBasedOnFullyQualifiedArtifactIdDelegate = delegate(string fully_qualified_artifact_id)