Skip to content

Commit d7b5a74

Browse files
committed
Embed some data files in libxamarin-app.so
1 parent 22699d7 commit d7b5a74

File tree

4 files changed

+22
-2
lines changed

4 files changed

+22
-2
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
@@ -80,7 +80,7 @@ public static string WrapIt (AndroidTargetArch targetArch, string payloadFilePat
8080
File.Copy (stubItem.ItemSpec, outputFile, overwrite: true);
8181

8282
string quotedOutputFile = MonoAndroidHelper.QuoteFileNameArgument (outputFile);
83-
string objcopy = Path.Combine (config.AndroidBinUtilsDirectory, MonoAndroidHelper.GetExecutablePath (config.AndroidBinUtilsDirectory, "llvm-objcopy"));
83+
string objcopy = MonoAndroidHelper.GetLlvmObjcopyPath (config.AndroidBinUtilsDirectory);;
8484
var args = new List<string> {
8585
"--add-section",
8686
$"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
@@ -788,5 +788,10 @@ public static string QuoteFileNameArgument (string fileName)
788788
builder.AppendFileNameIfNotNull (fileName);
789789
return builder.ToString ();
790790
}
791+
792+
public static string GetLlvmObjcopyPath (string androidBinUtilsDirectory)
793+
{
794+
return Path.Combine (androidBinUtilsDirectory, MonoAndroidHelper.GetExecutablePath (androidBinUtilsDirectory, "llvm-objcopy"));
795+
}
791796
}
792797
}

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -292,7 +292,7 @@ Copyright (C) 2011-2012 Xamarin. All rights reserved.
292292

293293
<_AndroidFastDeployEnvironmentFiles Condition=" '$(_AndroidFastDeployEnvironmentFiles)' == '' And '$(EmbedAssembliesIntoApk)' == 'False' ">True</_AndroidFastDeployEnvironmentFiles>
294294
<_AndroidFastDeployEnvironmentFiles Condition=" '$(_AndroidFastDeployEnvironmentFiles)' == '' ">False</_AndroidFastDeployEnvironmentFiles>
295-
295+
296296
</PropertyGroup>
297297

298298
<Choose>
@@ -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)