Skip to content

Commit

Permalink
Fix after rebase
Browse files Browse the repository at this point in the history
  • Loading branch information
grendello committed Feb 21, 2025
1 parent 8a27480 commit c853ea1
Show file tree
Hide file tree
Showing 14 changed files with 125 additions and 191 deletions.
7 changes: 7 additions & 0 deletions Xamarin.Android.sln
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "proguard-android", "src\pro
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "native-clr", "src\native\native-clr.csproj", "{39F49484-872A-489D-8E6B-3BC532DD571D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.Android.Runtime.NativeAOT", "src\Microsoft.Android.Runtime.NativeAOT\Microsoft.Android.Runtime.NativeAOT.csproj", "{E8831F32-11D7-D42C-E43C-711998BC357A}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|AnyCPU = Debug|AnyCPU
Expand Down Expand Up @@ -353,6 +355,10 @@ Global
{39F49484-872A-489D-8E6B-3BC532DD571D}.Debug|AnyCPU.Build.0 = Debug|Any CPU
{39F49484-872A-489D-8E6B-3BC532DD571D}.Release|AnyCPU.ActiveCfg = Release|Any CPU
{39F49484-872A-489D-8E6B-3BC532DD571D}.Release|AnyCPU.Build.0 = Release|Any CPU
{E8831F32-11D7-D42C-E43C-711998BC357A}.Debug|AnyCPU.ActiveCfg = Debug|Any CPU
{E8831F32-11D7-D42C-E43C-711998BC357A}.Debug|AnyCPU.Build.0 = Debug|Any CPU
{E8831F32-11D7-D42C-E43C-711998BC357A}.Release|AnyCPU.ActiveCfg = Release|Any CPU
{E8831F32-11D7-D42C-E43C-711998BC357A}.Release|AnyCPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down Expand Up @@ -413,6 +419,7 @@ Global
{5E806C9F-1B67-4B6B-A6AB-258834250DBB} = {FFCF518F-2A4A-40A2-9174-2EE13B76C723}
{5FD0133B-69E5-4474-9B67-9FD1D0150C70} = {FFCF518F-2A4A-40A2-9174-2EE13B76C723}
{39F49484-872A-489D-8E6B-3BC532DD571D} = {FFCF518F-2A4A-40A2-9174-2EE13B76C723}
{E8831F32-11D7-D42C-E43C-711998BC357A} = {04E3E11E-B47D-4599-8AFC-50515A95E715}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {53A1F287-EFB2-4D97-A4BB-4A5E145613F6}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,8 @@
<Import Project="Microsoft.Android.Sdk.BundledVersions.targets" />
<Import Project="Microsoft.Android.Sdk.DefaultProperties.targets" />
<Import Project="$(MSBuildThisFileDirectory)..\tools\Xamarin.Android.Common.Debugging.props"
Condition="Exists('$(MSBuildThisFileDirectory)..\tools\Xamarin.Android.Common.Debugging.props')"/>
Condition="Exists('$(MSBuildThisFileDirectory)..\tools\Xamarin.Android.Common.Debugging.props') And '$(DesignTimeBuild)' != 'true' "/>
<Import Project="Microsoft.Android.Sdk.CoreCLR.targets" Condition=" '$(_AndroidRuntime)' == 'CoreCLR' " />
<Import Project="Microsoft.Android.Sdk.NativeAOT.targets" Condition=" '$(_AndroidRuntime)' == 'NativeAOT' " />

</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@
],
"platforms": [ "win-x64", "win-arm64", "linux-x64", "linux-arm64", "osx-x64", "osx-arm64" ],
"extends" : [
"microsoft-net-runtime-android-net8",
"microsoft-net-runtime-android-aot-net8",
"microsoft-net-runtime-android-net9",
"microsoft-net-runtime-android-aot-net9",
"microsoft-net-runtime-android",
"microsoft-net-runtime-android-aot"
]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,7 @@ public class CollectAssemblyFilesToCompress : AndroidTask
[Required]
public string AssemblyCompressionDirectory { get; set; } = "";

[Required]
public ITaskItem[] ResolvedRuntimePacks { get; set; } = Array.Empty<ITaskItem> ();

[Required]
public string ApkOutputPath { get; set; } = "";

[Required]
public string AppSharedLibrariesDir { get; set; } = "";
public bool EmbedAssemblies { get; set; }

[Required]
public bool EnableCompression { get; set; }
Expand Down Expand Up @@ -62,9 +55,9 @@ public override bool RunTask ()
ResolvedFrameworkAssembliesOutput = ResolvedFrameworkAssemblies;
ResolvedUserAssembliesOutput = ResolvedUserAssemblies;

DSOWrapperGenerator.Config dsoWrapperConfig = DSOWrapperGenerator.GetConfig (Log, AndroidBinUtilsDirectory, ResolvedRuntimePacks, IntermediateOutputPath);
bool compress = !IncludeDebugSymbols && EnableCompression;
IDictionary<AndroidTargetArch, Dictionary<string, CompressedAssemblyInfo>>? compressedAssembliesInfo = null;
// We aren't going to compress any assemblies
if (IncludeDebugSymbols || !EnableCompression || !EmbedAssemblies)
return true;

var assemblies_to_compress = new List<ITaskItem> ();
var compressed_assemblies_info = GetCompressedAssemblyInfo ();
Expand Down
33 changes: 27 additions & 6 deletions src/Xamarin.Android.Build.Tasks/Tasks/GenerateJavaStubs.cs
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,14 @@ public class GenerateJavaStubs : AndroidTask
[Required]
public string AndroidRuntime { get; set; } = "";

public string CodeGenerationTarget { get; set; } = "";

[Required]
public string TargetName { get; set; } = "";

AndroidRuntime androidRuntime;
JavaPeerStyle codeGenerationTarget;

internal const string AndroidSkipJavaStubGeneration = "AndroidSkipJavaStubGeneration";

public override bool RunTask ()
Expand Down Expand Up @@ -299,10 +307,23 @@ Dictionary<string, ITaskItem> MaybeGetArchAssemblies (Dictionary<AndroidTargetAr

void GenerateAdditionalProviderSources (NativeCodeGenState codeGenState, IList<string> additionalProviders)
{
if (androidRuntime != Xamarin.Android.Tasks.AndroidRuntime.MonoVM &&
androidRuntime != Xamarin.Android.Tasks.AndroidRuntime.CoreCLR) {
Log.LogDebugMessage ($"Skipping MonoRuntimeProvider generation for: {androidRuntime}");
return;
if (androidRuntime != Xamarin.Android.Tasks.AndroidRuntime.CoreCLR) {
// Create additional runtime provider java sources.
bool isMonoVM = androidRuntime == Xamarin.Android.Tasks.AndroidRuntime.MonoVM;
string providerTemplateFile = isMonoVM ?
"MonoRuntimeProvider.Bundled.java" :
"NativeAotRuntimeProvider.java";
string providerTemplate = GetResource (providerTemplateFile);

foreach (var provider in additionalProviders) {
var contents = providerTemplate.Replace (isMonoVM ? "MonoRuntimeProvider" : "NativeAotRuntimeProvider", provider);
var real_provider = isMonoVM ?
Path.Combine (OutputDirectory, "src", "mono", provider + ".java") :
Path.Combine (OutputDirectory, "src", "net", "dot", "jni", "nativeaot", provider + ".java");
Files.CopyIfStringChanged (contents, real_provider);
}
} else {
Log.LogDebugMessage ($"Skipping android.content.ContentProvider generation for: {androidRuntime}");
}

// For NativeAOT, generate JavaInteropRuntime.java
Expand Down Expand Up @@ -360,7 +381,7 @@ IList<string> MergeManifest (NativeCodeGenState codeGenState, Dictionary<string,
Debug = Debug,
MultiDex = MultiDex,
NeedsInternet = NeedsInternet,
AndroidRuntime = AndroidRuntime,
AndroidRuntime = androidRuntime,
};
// Only set manifest.VersionCode if there is no existing value in AndroidManifest.xml.
if (manifest.HasVersionCode) {
Expand Down Expand Up @@ -394,7 +415,7 @@ IList<string> MergeManifest (NativeCodeGenState codeGenState, Dictionary<string,
(List<TypeDefinition> allJavaTypes, List<TypeDefinition> javaTypesForJCW) = ScanForJavaTypes (resolver, tdCache, assemblies, userAssemblies, useMarshalMethods);
var jcwContext = new JCWGeneratorContext (arch, resolver, assemblies.Values, javaTypesForJCW, tdCache, useMarshalMethods);
var jcwGenerator = new JCWGenerator (Log, jcwContext) {
CodeGenerationTarget = androidRuntime == Xamarin.Android.Tasks.AndroidRuntime.MonoVM ? JavaPeerStyle.XAJavaInterop1 : JavaPeerStyle.JavaInterop1
CodeGenerationTarget = codeGenerationTarget,
};
bool success;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,9 @@ public class WrapAssembliesAsSharedLibraries : AndroidTask
[Required]
public string AndroidBinUtilsDirectory { get; set; } = "";

[Required]
public ITaskItem[] ResolvedRuntimePacks { get; set; } = Array.Empty<ITaskItem> ();

public bool IncludeDebugSymbols { get; set; }

[Required]
Expand All @@ -42,7 +45,7 @@ public class WrapAssembliesAsSharedLibraries : AndroidTask

public override bool RunTask ()
{
var wrapper_config = DSOWrapperGenerator.GetConfig (Log, AndroidBinUtilsDirectory, IntermediateOutputPath);
var wrapper_config = DSOWrapperGenerator.GetConfig (Log, AndroidBinUtilsDirectory, ResolvedRuntimePacks, IntermediateOutputPath);
var files = new PackageFileListBuilder ();

if (UseAssemblyStore)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,34 +5,34 @@
"Size": 3036
},
"classes.dex": {
"Size": 22444
"Size": 22484
},
"lib/arm64-v8a/lib__Microsoft.Android.Resource.Designer.dll.so": {
"Size": 18296
"Size": 18288
},
"lib/arm64-v8a/lib_Java.Interop.dll.so": {
"Size": 86352
"Size": 86688
},
"lib/arm64-v8a/lib_Mono.Android.dll.so": {
"Size": 116920
"Size": 117712
},
"lib/arm64-v8a/lib_Mono.Android.Runtime.dll.so": {
"Size": 22408
"Size": 22384
},
"lib/arm64-v8a/lib_System.Console.dll.so": {
"Size": 24376
"Size": 24392
},
"lib/arm64-v8a/lib_System.Linq.dll.so": {
"Size": 25336
},
"lib/arm64-v8a/lib_System.Private.CoreLib.dll.so": {
"Size": 634384
"Size": 628216
},
"lib/arm64-v8a/lib_System.Runtime.dll.so": {
"Size": 20040
"Size": 20056
},
"lib/arm64-v8a/lib_System.Runtime.InteropServices.dll.so": {
"Size": 21584
"Size": 21480
},
"lib/arm64-v8a/lib_UnnamedProject.dll.so": {
"Size": 20024
Expand All @@ -44,10 +44,10 @@
"Size": 36440
},
"lib/arm64-v8a/libmonodroid.so": {
"Size": 1501240
"Size": 1524752
},
"lib/arm64-v8a/libmonosgen-2.0.so": {
"Size": 3196512
"Size": 3101112
},
"lib/arm64-v8a/libSystem.Globalization.Native.so": {
"Size": 71976
Expand All @@ -62,7 +62,7 @@
"Size": 165000
},
"lib/arm64-v8a/libxamarin-app.so": {
"Size": 18264
"Size": 19536
},
"META-INF/BNDLTOOL.RSA": {
"Size": 1221
Expand Down Expand Up @@ -98,5 +98,5 @@
"Size": 1904
}
},
"PackageSize": 3111445
"PackageSize": 3078677
}
Loading

0 comments on commit c853ea1

Please sign in to comment.