1
1
using System ;
2
2
using System . Collections . Generic ;
3
+ using System . IO ;
3
4
4
5
using Microsoft . Android . Build . Tasks ;
5
6
using Microsoft . Build . Framework ;
@@ -18,6 +19,9 @@ public class CreateEmbeddedAssemblyStore : AndroidTask
18
19
[ Required ]
19
20
public string AppSharedLibrariesDir { get ; set ; }
20
21
22
+ [ Required ]
23
+ public string AssemblySourcesDir { get ; set ; }
24
+
21
25
[ Required ]
22
26
public string CompressedAssembliesDir { get ; set ; }
23
27
@@ -67,6 +71,39 @@ public override bool RunTask ()
67
71
// Add framework assemblies
68
72
AssemblyPackagingHelper . AddAssembliesFromCollection ( Log , SupportedAbis , ResolvedFrameworkAssemblies , DoAddAssembliesFromArchCollection ) ;
69
73
74
+ var objectFiles = new List < ITaskItem > ( ) ;
75
+ var sourceFiles = new List < ITaskItem > ( ) ;
76
+ Dictionary < AndroidTargetArch , string > assemblyStorePaths = storeBuilder . Generate ( Path . Combine ( AppSharedLibrariesDir , "embedded" ) ) ;
77
+ foreach ( var kvp in assemblyStorePaths ) {
78
+ string abi = MonoAndroidHelper . ArchToAbi ( kvp . Key ) ;
79
+ string inputFile = kvp . Value ;
80
+
81
+ List < ITaskItem > items = ELFEmbeddingHelper . EmbedBinary (
82
+ Log ,
83
+ abi ,
84
+ AndroidBinUtilsDirectory ,
85
+ inputFile ,
86
+ ELFEmbeddingHelper . KnownEmbedItems . AssemblyStore ,
87
+ AssemblySourcesDir
88
+ ) ;
89
+
90
+ if ( items . Count == 0 ) {
91
+ continue ;
92
+ }
93
+
94
+ objectFiles . AddRange ( items ) ;
95
+ foreach ( ITaskItem objectItem in items ) {
96
+ var sourceItem = new TaskItem (
97
+ Path . ChangeExtension ( objectItem . ItemSpec , ".s" ) ,
98
+ objectItem . CloneCustomMetadata ( )
99
+ ) ;
100
+ sourceFiles . Add ( sourceItem ) ;
101
+ }
102
+ }
103
+
104
+ NativeAssemblySources = sourceFiles . ToArray ( ) ;
105
+ EmbeddedObjectFiles = objectFiles . ToArray ( ) ;
106
+
70
107
return ! Log . HasLoggedErrors ;
71
108
72
109
void DoAddAssembliesFromArchCollection ( TaskLoggingHelper log , AndroidTargetArch arch , ITaskItem assembly )
0 commit comments