Skip to content

Commit cc0be44

Browse files
committed
Fix build on CoreCLR after main rebase
1 parent a61d1ea commit cc0be44

File tree

2 files changed

+21
-22
lines changed

2 files changed

+21
-22
lines changed

src/Xamarin.Android.Build.Tasks/Tasks/GenerateJavaStubs.cs

+20-21
Original file line numberDiff line numberDiff line change
@@ -251,25 +251,27 @@ void Run (bool useMarshalMethods)
251251

252252
internal static Dictionary<string, ITaskItem> MaybeGetArchAssemblies (Dictionary<AndroidTargetArch, Dictionary<string, ITaskItem>> dict, AndroidTargetArch arch)
253253
{
254-
if (androidRuntime != Xamarin.Android.Tasks.AndroidRuntime.CoreCLR) {
255-
// Create additional runtime provider java sources.
256-
bool isMonoVM = androidRuntime == Xamarin.Android.Tasks.AndroidRuntime.MonoVM;
257-
string providerTemplateFile = isMonoVM ?
258-
"MonoRuntimeProvider.Bundled.java" :
259-
"NativeAotRuntimeProvider.java";
260-
string providerTemplate = GetResource (providerTemplateFile);
261-
262-
foreach (var provider in additionalProviders) {
263-
var contents = providerTemplate.Replace (isMonoVM ? "MonoRuntimeProvider" : "NativeAotRuntimeProvider", provider);
264-
var real_provider = isMonoVM ?
265-
Path.Combine (OutputDirectory, "src", "mono", provider + ".java") :
266-
Path.Combine (OutputDirectory, "src", "net", "dot", "jni", "nativeaot", provider + ".java");
267-
Files.CopyIfStringChanged (contents, real_provider);
268-
}
269-
} else {
270-
Log.LogDebugMessage ($"Skipping android.content.ContentProvider generation for: {androidRuntime}");
254+
// Create additional runtime provider java sources.
255+
bool isMonoVM = androidRuntime switch {
256+
Xamarin.Android.Tasks.AndroidRuntime.MonoVM => true,
257+
Xamarin.Android.Tasks.AndroidRuntime.CoreCLR => true,
258+
_ => false,
259+
};
260+
261+
string providerTemplateFile = isMonoVM ?
262+
"MonoRuntimeProvider.Bundled.java" :
263+
"NativeAotRuntimeProvider.java";
264+
string providerTemplate = GetResource (providerTemplateFile);
265+
266+
foreach (var provider in additionalProviders) {
267+
var contents = providerTemplate.Replace (isMonoVM ? "MonoRuntimeProvider" : "NativeAotRuntimeProvider", provider);
268+
var real_provider = isMonoVM ?
269+
Path.Combine (OutputDirectory, "src", "mono", provider + ".java") :
270+
Path.Combine (OutputDirectory, "src", "net", "dot", "jni", "nativeaot", provider + ".java");
271+
Files.CopyIfStringChanged (contents, real_provider);
271272
}
272273

274+
273275
// For NativeAOT, generate JavaInteropRuntime.java
274276
if (androidRuntime == Xamarin.Android.Tasks.AndroidRuntime.NativeAOT) {
275277
const string fileName = "JavaInteropRuntime.java";
@@ -414,10 +416,7 @@ void WriteTypeMappings (NativeCodeGenState state)
414416
// NativeAOT typemaps are generated in `Microsoft.Android.Sdk.ILLink.TypeMappingStep`
415417
return;
416418
}
417-
if (androidRuntime == Xamarin.Android.Tasks.AndroidRuntime.CoreCLR) {
418-
// TODO: CoreCLR typemaps will be emitted later
419-
return;
420-
}
419+
421420
Log.LogDebugMessage ($"Generating type maps for architecture '{state.TargetArch}'");
422421
var tmg = new TypeMapGenerator (Log, state, androidRuntime);
423422
if (!tmg.Generate (Debug, SkipJniAddNativeMethodRegistrationAttributeScan, TypemapOutputDirectory, GenerateNativeAssembly)) {

src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets

+1-1
Original file line numberDiff line numberDiff line change
@@ -1474,7 +1474,7 @@ because xbuild doesn't support framework reference assemblies.
14741474

14751475
<!-- _PrepareAssemblies lives in Microsoft.Android.Sdk.AssemblyResolution.targets -->
14761476

1477-
<Target Name="_PrepareNativeAssemblySources" Condition=" '$(_AndroidRuntime)' != 'CoreCLR' ">
1477+
<Target Name="_PrepareNativeAssemblySources" Condition=" '$(_AndroidRuntime)' != 'NativeAOT' ">
14781478
<PrepareAbiItems
14791479
BuildTargetAbis="@(_BuildTargetAbis)"
14801480
NativeSourcesDir="$(_NativeAssemblySourceDir)"

0 commit comments

Comments
 (0)