Skip to content

Commit d11fb67

Browse files
committed
Embed some data files in libxamarin-app.so
1 parent 15a1429 commit d11fb67

File tree

4 files changed

+21
-1
lines changed

4 files changed

+21
-1
lines changed

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

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,9 @@ public class GeneratePackageManagerJava : AndroidTask
6161
[Required]
6262
public bool EnablePreloadAssembliesDefault { get; set; }
6363

64+
[Required]
65+
public string AndroidBinUtilsDirectory { get; set; }
66+
6467
public bool EnableMarshalMethods { get; set; }
6568
public string RuntimeConfigBinFilePath { get; set; }
6669
public string BoundExceptionType { get; set; }
@@ -320,6 +323,17 @@ void AddEnvironment ()
320323
}
321324

322325
bool haveRuntimeConfigBlob = !String.IsNullOrEmpty (RuntimeConfigBinFilePath) && File.Exists (RuntimeConfigBinFilePath);
326+
if (haveRuntimeConfigBlob) {
327+
List<ITaskItem> objectFilePaths = ELFEmbeddingHelper.EmbedBinary (
328+
Log,
329+
SupportedAbis,
330+
AndroidBinUtilsDirectory,
331+
RuntimeConfigBinFilePath,
332+
ELFEmbeddingHelper.KnownEmbedItems.RuntimeConfig,
333+
EnvironmentOutputDirectory
334+
);
335+
}
336+
323337
var jniRemappingNativeCodeInfo = BuildEngine4.GetRegisteredTaskObjectAssemblyLocal<GenerateJniRemappingNativeCode.JniRemappingNativeCodeInfo> (ProjectSpecificTaskObjectKey (GenerateJniRemappingNativeCode.JniRemappingNativeCodeInfoKey), RegisteredTaskObjectLifetime.Build);
324338
var appConfigAsmGen = new ApplicationConfigNativeAssemblyGenerator (environmentVariables, systemProperties, Log) {
325339
UsesMonoAOT = usesMonoAOT,

src/Xamarin.Android.Build.Tasks/Utilities/DSOWrapperGenerator.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ public static string WrapIt (TaskLoggingHelper log, Config config, AndroidTarget
102102
File.Copy (stubPath, outputFile, overwrite: true);
103103

104104
string quotedOutputFile = MonoAndroidHelper.QuoteFileNameArgument (outputFile);
105-
string objcopy = Path.Combine (config.AndroidBinUtilsDirectory, MonoAndroidHelper.GetExecutablePath (config.AndroidBinUtilsDirectory, "llvm-objcopy"));
105+
string objcopy = MonoAndroidHelper.GetLlvmObjcopyPath (config.AndroidBinUtilsDirectory);;
106106
var args = new List<string> {
107107
"--add-section",
108108
$"payload={MonoAndroidHelper.QuoteFileNameArgument (payloadFilePath)}",

src/Xamarin.Android.Build.Tasks/Utilities/MonoAndroidHelper.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -794,5 +794,10 @@ public static string QuoteFileNameArgument (string fileName)
794794
builder.AppendFileNameIfNotNull (fileName);
795795
return builder.ToString ();
796796
}
797+
798+
public static string GetLlvmObjcopyPath (string androidBinUtilsDirectory)
799+
{
800+
return Path.Combine (androidBinUtilsDirectory, MonoAndroidHelper.GetExecutablePath (androidBinUtilsDirectory, "llvm-objcopy"));
801+
}
797802
}
798803
}

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1746,6 +1746,7 @@ because xbuild doesn't support framework reference assemblies.
17461746
UseAssemblyStore="$(AndroidUseAssemblyStore)"
17471747
EnableMarshalMethods="$(_AndroidUseMarshalMethods)"
17481748
CustomBundleConfigFile="$(AndroidBundleConfigurationFile)"
1749+
AndroidBinUtilsDirectory="$(AndroidBinUtilsDirectory)"
17491750
>
17501751
</GeneratePackageManagerJava>
17511752
<Touch Files="$(_AndroidStampDirectory)_GeneratePackageManagerJava.stamp" AlwaysCreate="True" />

0 commit comments

Comments
 (0)