Update C# wrapper to support both desktop and UWP projects
Summary: The C# wrapper project has been changed to a NETStandard (1.1) PCL allowing it to be consumed by any project targeting .NET4.5 or greater including .NETCore and UWP projects... The C# wrapper uses P/Invoke to call into the Native Yoga DLL... The "Yoga" C++ project has been updated to support ARM builds... Added the ability to generate nuget packages for the C# wrapper that supports copying the native DLLs to the target output directory. Closes: https://github.com/facebook/yoga/pull/283 Reviewed By: splhack, emilsjolander Differential Revision: D4381455 Pulled By: JoelMarcey fbshipit-source-id: e6dc4190caa824ac63d5d5ee2eb4c7914efbb00f
This commit is contained in:
committed by
Facebook Github Bot
parent
6bcf0e3a50
commit
bf6602ebff
131
csharp/Windows/Build/Facebook.Yoga.NativeInterop.targets
Normal file
131
csharp/Windows/Build/Facebook.Yoga.NativeInterop.targets
Normal file
@@ -0,0 +1,131 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<NativeRootPath>$(SolutionDir)..\Yoga\bin\</NativeRootPath>
|
||||
<NativeX86Path>$(NativeRootPath)x86\</NativeX86Path>
|
||||
<NativeX64Path>$(NativeRootPath)x64\</NativeX64Path>
|
||||
<NativeARMPath>$(NativeRootPath)ARM\</NativeARMPath>
|
||||
<NativeDLLMoniker>Yoga</NativeDLLMoniker>
|
||||
<CurrentPlatform Condition="$(PROCESSOR_ARCHITECTURE) =='AMD64' or $(PROCESSOR_ARCHITECTURE) == 'IA64' or $(PROCESSOR_ARCHITEW6432) == 'AMD64'">AMD64</CurrentPlatform>
|
||||
<CurrentPlatform Condition="$(PROCESSOR_ARCHITECTURE) =='ARM'">ARM</CurrentPlatform>
|
||||
</PropertyGroup>
|
||||
|
||||
<Choose>
|
||||
<When Condition="$(Platform) == 'AnyCPU'">
|
||||
<Choose>
|
||||
<When Condition="$(Prefer32Bit) == 'true'">
|
||||
<ItemGroup Condition="$(CurrentPlatform) == 'x86' Or $(CurrentPlatform) == 'AMD64'">
|
||||
<Content Include="$(NativeX86Path)$(Configuration)\$(NativeDLLMoniker).dll">
|
||||
<Link>$(NativeDLLMoniker).dll</Link>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
<Visible>False</Visible>
|
||||
</Content>
|
||||
<Content Include="$(NativeX86Path)$(Configuration)\$(NativeDLLMoniker).pdb">
|
||||
<Link>$(NativeDLLMoniker).pdb</Link>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
<Visible>False</Visible>
|
||||
</Content>
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition="$(CurrentPlatform) == 'ARM'">
|
||||
<Content Include="$(NativeARMPath)$(Configuration)\$(NativeDLLMoniker).dll">
|
||||
<Link>$(NativeDLLMoniker).dll</Link>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
<Visible>False</Visible>
|
||||
</Content>
|
||||
<Content Include="$(NativeARMPath)$(Configuration)\$(NativeDLLMoniker).pdb">
|
||||
<Link>$(NativeDLLMoniker).pdb</Link>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
<Visible>False</Visible>
|
||||
</Content>
|
||||
</ItemGroup>
|
||||
</When>
|
||||
<Otherwise>
|
||||
<ItemGroup Condition="$(CurrentPlatform) == 'x86'">
|
||||
<Content Include="$(NativeX86Path)$(Configuration)\$(NativeDLLMoniker).dll">
|
||||
<Link>$(NativeDLLMoniker).dll</Link>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
<Visible>False</Visible>
|
||||
</Content>
|
||||
<Content Include="$(NativeX86Path)$(Configuration)\$(NativeDLLMoniker).pdb">
|
||||
<Link>$(NativeDLLMoniker).pdb</Link>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
<Visible>False</Visible>
|
||||
</Content>
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition="$(CurrentPlatform) == 'AMD64'">
|
||||
<Content Include="$(NativeX64Path)$(Configuration)\$(NativeDLLMoniker).dll">
|
||||
<Link>$(NativeDLLMoniker).dll</Link>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
<Visible>False</Visible>
|
||||
</Content>
|
||||
<Content Include="$(NativeX64Path)$(Configuration)\$(NativeDLLMoniker).pdb">
|
||||
<Link>$(NativeDLLMoniker).pdb</Link>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
<Visible>False</Visible>
|
||||
</Content>
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition="$(CurrentPlatform) == 'ARM'">
|
||||
<Content Include="$(NativeARMPath)$(Configuration)\$(NativeDLLMoniker).dll">
|
||||
<Link>$(NativeDLLMoniker).dll</Link>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
<Visible>False</Visible>
|
||||
</Content>
|
||||
<Content Include="$(NativeARMPath)$(Configuration)\$(NativeDLLMoniker).pdb">
|
||||
<Link>$(NativeDLLMoniker).pdb</Link>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
<Visible>False</Visible>
|
||||
</Content>
|
||||
</ItemGroup>
|
||||
</Otherwise>
|
||||
</Choose>
|
||||
</When>
|
||||
<Otherwise>
|
||||
<ItemGroup Condition="$(PlatformTarget) == 'x86'">
|
||||
<Content Include="$(NativeX86Path)$(Configuration)\$(NativeDLLMoniker).dll">
|
||||
<Link>$(NativeDLLMoniker).dll</Link>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
<Visible>False</Visible>
|
||||
</Content>
|
||||
<Content Include="$(NativeX86Path)$(Configuration)\$(NativeDLLMoniker).pdb">
|
||||
<Link>$(NativeDLLMoniker).pdb</Link>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
<Visible>False</Visible>
|
||||
</Content>
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition="$(PlatformTarget) == 'x64'">
|
||||
<Content Include="$(NativeX64Path)$(Configuration)\$(NativeDLLMoniker).dll">
|
||||
<Link>$(NativeDLLMoniker).dll</Link>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
<Visible>False</Visible>
|
||||
</Content>
|
||||
<Content Include="$(NativeX64Path)$(Configuration)\$(NativeDLLMoniker).pdb">
|
||||
<Link>$(NativeDLLMoniker).pdb</Link>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
<Visible>False</Visible>
|
||||
</Content>
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition="$(PlatformTarget) == 'ARM'">
|
||||
<!--<Content Include="$(NativeARMPath)$(Configuration)\$(NativeDLLMoniker).dll">
|
||||
<Link>$(NativeDLLMoniker).dll</Link>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
<Visible>False</Visible>
|
||||
</Content>
|
||||
<Content Include="$(NativeARMPath)$(Configuration)\$(NativeDLLMoniker).pdb">
|
||||
<Link>$(NativeDLLMoniker).pdb</Link>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
<Visible>False</Visible>
|
||||
</Content>-->
|
||||
<Content Include="$(NativeX86Path)$(Configuration)\$(NativeDLLMoniker).dll">
|
||||
<Link>$(NativeDLLMoniker).dll</Link>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
<Visible>False</Visible>
|
||||
</Content>
|
||||
<Content Include="$(NativeX86Path)$(Configuration)\$(NativeDLLMoniker).pdb">
|
||||
<Link>$(NativeDLLMoniker).pdb</Link>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
<Visible>False</Visible>
|
||||
</Content>
|
||||
</ItemGroup>
|
||||
</Otherwise>
|
||||
</Choose>
|
||||
</Project>
|
Reference in New Issue
Block a user