@@ -61,6 +61,9 @@ public class GeneratePackageManagerJava : AndroidTask
61
61
[ Required ]
62
62
public bool EnablePreloadAssembliesDefault { get ; set ; }
63
63
64
+ [ Required ]
65
+ public bool TargetsCLR { get ; set ; }
66
+
64
67
public bool EnableMarshalMethods { get ; set ; }
65
68
public string RuntimeConfigBinFilePath { get ; set ; }
66
69
public string BoundExceptionType { get ; set ; }
@@ -321,31 +324,53 @@ void AddEnvironment ()
321
324
322
325
bool haveRuntimeConfigBlob = ! String . IsNullOrEmpty ( RuntimeConfigBinFilePath ) && File . Exists ( RuntimeConfigBinFilePath ) ;
323
326
var jniRemappingNativeCodeInfo = BuildEngine4 . GetRegisteredTaskObjectAssemblyLocal < GenerateJniRemappingNativeCode . JniRemappingNativeCodeInfo > ( ProjectSpecificTaskObjectKey ( GenerateJniRemappingNativeCode . JniRemappingNativeCodeInfoKey ) , RegisteredTaskObjectLifetime . Build ) ;
324
- var appConfigAsmGen = new ApplicationConfigNativeAssemblyGenerator ( environmentVariables , systemProperties , Log ) {
325
- UsesMonoAOT = usesMonoAOT ,
326
- UsesMonoLLVM = EnableLLVM ,
327
- UsesAssemblyPreload = environmentParser . UsesAssemblyPreload ,
328
- MonoAOTMode = aotMode . ToString ( ) . ToLowerInvariant ( ) ,
329
- AotEnableLazyLoad = AndroidAotEnableLazyLoad ,
330
- AndroidPackageName = AndroidPackageName ,
331
- BrokenExceptionTransitions = environmentParser . BrokenExceptionTransitions ,
332
- PackageNamingPolicy = pnp ,
333
- BoundExceptionType = boundExceptionType ,
334
- JniAddNativeMethodRegistrationAttributePresent = NativeCodeGenState . TemplateJniAddNativeMethodRegistrationAttributePresent ,
335
- HaveRuntimeConfigBlob = haveRuntimeConfigBlob ,
336
- NumberOfAssembliesInApk = assemblyCount ,
337
- BundledAssemblyNameWidth = assemblyNameWidth ,
338
- MonoComponents = ( MonoComponent ) monoComponents ,
339
- NativeLibraries = uniqueNativeLibraries ,
340
- HaveAssemblyStore = UseAssemblyStore ,
341
- AndroidRuntimeJNIEnvToken = android_runtime_jnienv_class_token ,
342
- JNIEnvInitializeToken = jnienv_initialize_method_token ,
343
- JNIEnvRegisterJniNativesToken = jnienv_registerjninatives_method_token ,
344
- JniRemappingReplacementTypeCount = jniRemappingNativeCodeInfo == null ? 0 : jniRemappingNativeCodeInfo . ReplacementTypeCount ,
345
- JniRemappingReplacementMethodIndexEntryCount = jniRemappingNativeCodeInfo == null ? 0 : jniRemappingNativeCodeInfo . ReplacementMethodIndexEntryCount ,
346
- MarshalMethodsEnabled = EnableMarshalMethods ,
347
- IgnoreSplitConfigs = ShouldIgnoreSplitConfigs ( ) ,
348
- } ;
327
+ LLVMIR . LlvmIrComposer appConfigAsmGen ;
328
+
329
+ if ( TargetsCLR ) {
330
+ appConfigAsmGen = new ApplicationConfigNativeAssemblyGeneratorCLR ( environmentVariables , systemProperties , Log ) {
331
+ UsesAssemblyPreload = environmentParser . UsesAssemblyPreload ,
332
+ AndroidPackageName = AndroidPackageName ,
333
+ PackageNamingPolicy = pnp ,
334
+ JniAddNativeMethodRegistrationAttributePresent = NativeCodeGenState . TemplateJniAddNativeMethodRegistrationAttributePresent ,
335
+ HaveRuntimeConfigBlob = haveRuntimeConfigBlob ,
336
+ NumberOfAssembliesInApk = assemblyCount ,
337
+ BundledAssemblyNameWidth = assemblyNameWidth ,
338
+ NativeLibraries = uniqueNativeLibraries ,
339
+ AndroidRuntimeJNIEnvToken = android_runtime_jnienv_class_token ,
340
+ JNIEnvInitializeToken = jnienv_initialize_method_token ,
341
+ JNIEnvRegisterJniNativesToken = jnienv_registerjninatives_method_token ,
342
+ JniRemappingReplacementTypeCount = jniRemappingNativeCodeInfo == null ? 0 : jniRemappingNativeCodeInfo . ReplacementTypeCount ,
343
+ JniRemappingReplacementMethodIndexEntryCount = jniRemappingNativeCodeInfo == null ? 0 : jniRemappingNativeCodeInfo . ReplacementMethodIndexEntryCount ,
344
+ MarshalMethodsEnabled = EnableMarshalMethods ,
345
+ IgnoreSplitConfigs = ShouldIgnoreSplitConfigs ( ) ,
346
+ } ;
347
+ } else {
348
+ appConfigAsmGen = new ApplicationConfigNativeAssemblyGenerator ( environmentVariables , systemProperties , Log ) {
349
+ UsesMonoAOT = usesMonoAOT ,
350
+ UsesMonoLLVM = EnableLLVM ,
351
+ UsesAssemblyPreload = environmentParser . UsesAssemblyPreload ,
352
+ MonoAOTMode = aotMode . ToString ( ) . ToLowerInvariant ( ) ,
353
+ AotEnableLazyLoad = AndroidAotEnableLazyLoad ,
354
+ AndroidPackageName = AndroidPackageName ,
355
+ BrokenExceptionTransitions = environmentParser . BrokenExceptionTransitions ,
356
+ PackageNamingPolicy = pnp ,
357
+ BoundExceptionType = boundExceptionType ,
358
+ JniAddNativeMethodRegistrationAttributePresent = NativeCodeGenState . TemplateJniAddNativeMethodRegistrationAttributePresent ,
359
+ HaveRuntimeConfigBlob = haveRuntimeConfigBlob ,
360
+ NumberOfAssembliesInApk = assemblyCount ,
361
+ BundledAssemblyNameWidth = assemblyNameWidth ,
362
+ MonoComponents = ( MonoComponent ) monoComponents ,
363
+ NativeLibraries = uniqueNativeLibraries ,
364
+ HaveAssemblyStore = UseAssemblyStore ,
365
+ AndroidRuntimeJNIEnvToken = android_runtime_jnienv_class_token ,
366
+ JNIEnvInitializeToken = jnienv_initialize_method_token ,
367
+ JNIEnvRegisterJniNativesToken = jnienv_registerjninatives_method_token ,
368
+ JniRemappingReplacementTypeCount = jniRemappingNativeCodeInfo == null ? 0 : jniRemappingNativeCodeInfo . ReplacementTypeCount ,
369
+ JniRemappingReplacementMethodIndexEntryCount = jniRemappingNativeCodeInfo == null ? 0 : jniRemappingNativeCodeInfo . ReplacementMethodIndexEntryCount ,
370
+ MarshalMethodsEnabled = EnableMarshalMethods ,
371
+ IgnoreSplitConfigs = ShouldIgnoreSplitConfigs ( ) ,
372
+ } ;
373
+ }
349
374
LLVMIR . LlvmIrModule appConfigModule = appConfigAsmGen . Construct ( ) ;
350
375
351
376
foreach ( string abi in SupportedAbis ) {
0 commit comments