@@ -61,6 +61,9 @@ public class GeneratePackageManagerJava : AndroidTask
6161 [ Required ]
6262 public bool EnablePreloadAssembliesDefault { get ; set ; }
6363
64+ [ Required ]
65+ public bool TargetsCLR { get ; set ; }
66+
6467 public bool EnableMarshalMethods { get ; set ; }
6568 public string RuntimeConfigBinFilePath { get ; set ; }
6669 public string BoundExceptionType { get ; set ; }
@@ -321,31 +324,53 @@ void AddEnvironment ()
321324
322325 bool haveRuntimeConfigBlob = ! String . IsNullOrEmpty ( RuntimeConfigBinFilePath ) && File . Exists ( RuntimeConfigBinFilePath ) ;
323326 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+ }
349374 LLVMIR . LlvmIrModule appConfigModule = appConfigAsmGen . Construct ( ) ;
350375
351376 foreach ( string abi in SupportedAbis ) {
0 commit comments