Skip to content

Commit ea3075b

Browse files
committed
[WIP] Trying a hack
1 parent 614b4db commit ea3075b

File tree

2 files changed

+55
-1
lines changed

2 files changed

+55
-1
lines changed
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
using System;
2+
using System.IO;
3+
using System.Linq;
4+
using Microsoft.Build.Framework;
5+
using Microsoft.Build.Utilities;
6+
using Xamarin.Tools.Zip;
7+
using Microsoft.Android.Build.Tasks;
8+
9+
namespace Xamarin.Android.Tasks
10+
{
11+
public class PrependEnvironmentVariable : AndroidTask
12+
{
13+
public override string TaskPrefix => "PENV";
14+
15+
[Required]
16+
public string Name { get; set; }
17+
18+
[Required]
19+
public string Value { get; set; }
20+
21+
public override bool RunTask ()
22+
{
23+
string? oldValue = Environment.GetEnvironmentVariable (Name)?.Trim ();
24+
string newValue;
25+
26+
if (!String.IsNullOrEmpty (oldValue)) {
27+
newValue = $"{Value}:{oldValue}";
28+
} else {
29+
newValue = Value;
30+
}
31+
32+
Environment.SetEnvironmentVariable (Name, newValue);
33+
return true;
34+
}
35+
}
36+
}

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

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,8 @@ Copyright (C) 2011-2012 Xamarin. All rights reserved.
9191
<UsingTask TaskName="Xamarin.Android.Tasks.PrepareAbiItems" AssemblyFile="Xamarin.Android.Build.Tasks.dll" />
9292
<UsingTask TaskName="Xamarin.Android.Tasks.WriteLockFile" AssemblyFile="Xamarin.Android.Build.Tasks.dll" />
9393
<UsingTask TaskName="GenerateCompressedAssembliesNativeSourceFiles" AssemblyFile="Xamarin.Android.Build.Tasks.dll" />
94+
<UsingTask TaskName="PrependEnvironmentVariable" AssemblyFile="Xamarin.Android.Build.Tasks.dll" />
95+
9496
<!--
9597
*******************************************
9698
Extensibility hook that allows VS to
@@ -102,7 +104,6 @@ Copyright (C) 2011-2012 Xamarin. All rights reserved.
102104
Condition="Exists('$(MSBuildThisFileDirectory)$(MSBuildThisFileName).Before.targets')"/>
103105

104106

105-
106107
<!--
107108
*******************************************
108109
Code Analysis Setup
@@ -357,6 +358,23 @@ Copyright (C) 2011-2012 Xamarin. All rights reserved.
357358
<Import Project="$(MSBuildThisFileDirectory)Xamarin.Android.Legacy.targets" Condition=" '$(UsingAndroidNETSdk)' != 'True' " />
358359
<Import Project="$(MSBuildThisFileDirectory)Xamarin.Android.Wear.targets" Condition=" '$(UsingAndroidNETSdk)' != 'True' " />
359360

361+
<!-- hack, hack -->
362+
<Target Name="_SetSharedLibraryLoaderEnvironmentVariables"
363+
Condition="'$(UsingAndroidNETSdk)' == 'true'"
364+
BeforeTargets="PrepareForBuild">
365+
<PrependEnvironmentVariable
366+
Condition=" '$([MSBuild]::IsOSPlatform(Linux))' == 'true' "
367+
Name="LD_LIBRARY_PATH"
368+
Value="$(MSBuildThisFileDirectory)runtimes/linux-x64"
369+
/>
370+
371+
<PrependEnvironmentVariable
372+
Condition=" '$([MSBuild]::IsOSPlatform(OSX))' == 'true' "
373+
Name="DYLD_FALLBACK_LIBRARY_PATH"
374+
Value="$(MSBuildThisFileDirectory)runtimes/osx-x64:$(MSBuildThisFileDirectory)runtimes/osx-arm64"
375+
/>
376+
</Target>
377+
360378
<Target Name="_WriteLockFile" Condition=" '$(_AndroidDetectParallelBuilds)' == 'True' ">
361379
<WriteLockFile LockFile="$(IntermediateOutputPath).__lock" />
362380
</Target>

0 commit comments

Comments
 (0)