mirror of
https://github.com/netbirdio/IronRDP.git
synced 2026-05-22 18:43:12 -07:00
feat(ffi): deployable Devolutions.IronRdp package (#465)
This commit is contained in:
@@ -106,12 +106,23 @@ jobs:
|
||||
|
||||
echo "[target.i686-linux-android]" >> $CargoConfigFile
|
||||
echo "linker=`"$AndroidToolchain/bin/i686-linux-android19-clang`"" >> $CargoConfigFile
|
||||
echo "CC_i686-linux-android=$AndroidToolchain/bin/i686-linux-android19-clang" >> $Env:GITHUB_ENV
|
||||
echo "AR_i686-linux-android=$AndroidToolchain/bin/llvm-ar" >> $Env:GITHUB_ENV
|
||||
|
||||
echo "[target.x86_64-linux-android]" >> $CargoConfigFile
|
||||
echo "linker=`"$AndroidToolchain/bin/x86_64-linux-android21-clang`"" >> $CargoConfigFile
|
||||
echo "CC_x86_64-linux-android=$AndroidToolchain/bin/x86_64-linux-android21-clang" >> $Env:GITHUB_ENV
|
||||
echo "AR_x86_64-linux-android=$AndroidToolchain/bin/llvm-ar" >> $Env:GITHUB_ENV
|
||||
|
||||
echo "[target.armv7-linux-androideabi]" >> $CargoConfigFile
|
||||
echo "linker=`"$AndroidToolchain/bin/armv7a-linux-androideabi21-clang`"" >> $CargoConfigFile
|
||||
echo "CC_armv7-linux-androideabi=$AndroidToolchain/bin/armv7a-linux-androideabi21-clang" >> $Env:GITHUB_ENV
|
||||
echo "AR_armv7-linux-androideabi=$AndroidToolchain/bin/llvm-ar" >> $Env:GITHUB_ENV
|
||||
|
||||
echo "[target.aarch64-linux-android]" >> $CargoConfigFile
|
||||
echo "linker=`"$AndroidToolchain/bin/aarch64-linux-android21-clang`"" >> $CargoConfigFile
|
||||
echo "CC_aarch64-linux-android=$AndroidToolchain/bin/aarch64-linux-android21-clang" >> $Env:GITHUB_ENV
|
||||
echo "AR_aarch64-linux-android=$AndroidToolchain/bin/llvm-ar" >> $Env:GITHUB_ENV
|
||||
|
||||
- name: Setup build environment
|
||||
shell: pwsh
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
<Project>
|
||||
<PropertyGroup Condition="$(PackageId.EndsWith('iOS'))">
|
||||
<TargetFrameworks>net8.0-ios</TargetFrameworks>
|
||||
<SupportedOSPlatformVersion>12.1</SupportedOSPlatformVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup Condition="Exists('$(NativeLibPath_ios_framework)')">
|
||||
<None Include="$(RuntimesPath)/ios-universal/native/*.framework/**">
|
||||
<PackagePath>runtimes/ios/native/</PackagePath>
|
||||
<Pack>true</Pack>
|
||||
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition="!$(PackageId.EndsWith('iOS'))">
|
||||
<Content Include="Devolutions.IronRdp.iOS.props" PackagePath="build/Devolutions.IronRdp.props" Pack="true" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition="$(PackageId.EndsWith('iOS'))">
|
||||
<Content Include="Devolutions.IronRdp.iOS.props" PackagePath="build/Devolutions.IronRdp.iOS.props" Pack="true" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -0,0 +1,108 @@
|
||||
<Project>
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>net8.0</TargetFrameworks>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup Condition="Exists('$(NativeLibPath_win_x64)')">
|
||||
<Content Include="$(NativeLibPath_win_x64)">
|
||||
<Link>%(Filename)%(Extension)</Link>
|
||||
<PackagePath>runtimes/win-x64/native/%(Filename)%(Extension)</PackagePath>
|
||||
<Pack>true</Pack>
|
||||
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
|
||||
</Content>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition="Exists('$(NativeLibPath_win_arm64)')">
|
||||
<Content Include="$(NativeLibPath_win_arm64)">
|
||||
<Link>%(Filename)%(Extension)</Link>
|
||||
<PackagePath>runtimes/win-arm64/native/%(Filename)%(Extension)</PackagePath>
|
||||
<Pack>true</Pack>
|
||||
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
|
||||
</Content>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition="Exists('$(NativeLibPath_osx_x64)')">
|
||||
<Content Include="$(NativeLibPath_osx_x64)">
|
||||
<Link>%(Filename)%(Extension)</Link>
|
||||
<PackagePath>runtimes/osx-x64/native/%(Filename)%(Extension)</PackagePath>
|
||||
<Pack>true</Pack>
|
||||
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
|
||||
</Content>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition="Exists('$(NativeLibPath_osx_arm64)')">
|
||||
<Content Include="$(NativeLibPath_osx_arm64)">
|
||||
<Link>%(Filename)%(Extension)</Link>
|
||||
<PackagePath>runtimes/osx-arm64/native/%(Filename)%(Extension)</PackagePath>
|
||||
<Pack>true</Pack>
|
||||
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
|
||||
</Content>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition="Exists('$(NativeLibPath_osx_universal)')">
|
||||
<Content Include="$(NativeLibPath_osx_universal)">
|
||||
<Link>%(Filename)%(Extension)</Link>
|
||||
<PackagePath>runtimes/osx-universal/native/%(Filename)%(Extension)</PackagePath>
|
||||
<Pack>true</Pack>
|
||||
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
|
||||
</Content>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition="Exists('$(NativeLibPath_linux_x64)')">
|
||||
<Content Include="$(NativeLibPath_linux_x64)">
|
||||
<Link>%(Filename)%(Extension)</Link>
|
||||
<PackagePath>runtimes/linux-x64/native/%(Filename)%(Extension)</PackagePath>
|
||||
<Pack>true</Pack>
|
||||
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
|
||||
</Content>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition="Exists('$(NativeLibPath_linux_arm64)')">
|
||||
<Content Include="$(NativeLibPath_linux_arm64)">
|
||||
<Link>%(Filename)%(Extension)</Link>
|
||||
<PackagePath>runtimes/linux-arm64/native/%(Filename)%(Extension)</PackagePath>
|
||||
<Pack>true</Pack>
|
||||
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
|
||||
</Content>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition="Exists('$(NativeLibPath_android_arm64)')">
|
||||
<Content Include="$(NativeLibPath_android_arm64)">
|
||||
<Link>%(Filename)%(Extension)</Link>
|
||||
<PackagePath>runtimes/android-arm64/native/%(Filename)%(Extension)</PackagePath>
|
||||
<Pack>true</Pack>
|
||||
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
|
||||
</Content>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition="Exists('$(NativeLibPath_android_arm)')">
|
||||
<Content Include="$(NativeLibPath_android_arm)">
|
||||
<Link>%(Filename)%(Extension)</Link>
|
||||
<PackagePath>runtimes/android-arm/native/%(Filename)%(Extension)</PackagePath>
|
||||
<Pack>true</Pack>
|
||||
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
|
||||
</Content>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition="Exists('$(NativeLibPath_android_x64)')">
|
||||
<Content Include="$(NativeLibPath_android_x64)">
|
||||
<Link>%(Filename)%(Extension)</Link>
|
||||
<PackagePath>runtimes/android-x64/native/%(Filename)%(Extension)</PackagePath>
|
||||
<Pack>true</Pack>
|
||||
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
|
||||
</Content>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition="Exists('$(NativeLibPath_android_x86)')">
|
||||
<Content Include="$(NativeLibPath_android_x86)">
|
||||
<Link>%(Filename)%(Extension)</Link>
|
||||
<PackagePath>runtimes/android-x86/native/%(Filename)%(Extension)</PackagePath>
|
||||
<Pack>true</Pack>
|
||||
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
|
||||
</Content>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Content Include="Devolutions.IronRdp.targets" PackagePath="build/Devolutions.IronRdp.targets" Pack="true" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -1,28 +1,36 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<PackageId>Devolutions.IronRdp</PackageId>
|
||||
<Company>Devolutions</Company>
|
||||
<Description>Bindings to Rust IronRDP native library</Description>
|
||||
<LangVersion>latest</LangVersion>
|
||||
<Version>2024.5.22.0</Version>
|
||||
<ImplicitUsings>enable</ImplicitUsings> <!-- FIXME: set to disable -->
|
||||
<Nullable>enable</Nullable>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
|
||||
<SuppressDependenciesWhenPacking>false</SuppressDependenciesWhenPacking>
|
||||
|
||||
<PackageId>Devolutions.IronRdp</PackageId>
|
||||
<Version>1.0.1</Version>
|
||||
<Description>Dotnet bindings for the IronRDP project</Description>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<RuntimesPath>../../../dependencies/runtimes</RuntimesPath>
|
||||
<NativeLibPath_win_x64>$(RuntimesPath)/win-x64/native/DevolutionsIronRdp.dll</NativeLibPath_win_x64>
|
||||
<NativeLibPath_win_arm64>$(RuntimesPath)/win-arm64/native/DevolutionsIronRdp.dll</NativeLibPath_win_arm64>
|
||||
<NativeLibPath_osx_x64>$(RuntimesPath)/osx-x64/native/libDevolutionsIronRdp.dylib</NativeLibPath_osx_x64>
|
||||
<NativeLibPath_osx_arm64>$(RuntimesPath)/osx-arm64/native/libDevolutionsIronRdp.dylib</NativeLibPath_osx_arm64>
|
||||
<NativeLibPath_osx_universal>$(RuntimesPath)/osx-universal/native/libDevolutionsIronRdp.dylib</NativeLibPath_osx_universal>
|
||||
<NativeLibPath_linux_x64>$(RuntimesPath)/linux-x64/native/libDevolutionsIronRdp.so</NativeLibPath_linux_x64>
|
||||
<NativeLibPath_linux_arm64>$(RuntimesPath)/linux-arm64/native/libDevolutionsIronRdp.so</NativeLibPath_linux_arm64>
|
||||
<NativeLibPath_android_arm64>$(RuntimesPath)/android-arm64/native/libDevolutionsIronRdp.so</NativeLibPath_android_arm64>
|
||||
<NativeLibPath_android_arm>$(RuntimesPath)/android-arm/native/libDevolutionsIronRdp.so</NativeLibPath_android_arm>
|
||||
<NativeLibPath_android_x64>$(RuntimesPath)/android-x64/native/libDevolutionsIronRdp.so</NativeLibPath_android_x64>
|
||||
<NativeLibPath_android_x86>$(RuntimesPath)/android-x86/native/libDevolutionsIronRdp.so</NativeLibPath_android_x86>
|
||||
<NativeLibPath_ios_x64>$(RuntimesPath)/ios-x64/native/libDevolutionsIronRdp.dylib</NativeLibPath_ios_x64>
|
||||
<NativeLibPath_ios_arm64>$(RuntimesPath)/ios-arm64/native/libDevolutionsIronRdp.dylib</NativeLibPath_ios_arm64>
|
||||
<NativeLibPath_ios_universal>$(RuntimesPath)/ios-universal/native/libDevolutionsIronRdp.dylib</NativeLibPath_ios_universal>
|
||||
<NativeLibPath_ios_framework>$(RuntimesPath)/ios-universal/native/libDevolutionsIronRdp.framework</NativeLibPath_ios_framework>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup Condition="Exists('$(NativeLibPath_win_x64)')">
|
||||
<None Include="$(NativeLibPath_win_x64)" Link="runtimes/win-x64/native/%(Filename)%(Extension)"
|
||||
CopyToOutputDirectory="PreserveNewest"
|
||||
Pack="true" PackagePath="runtimes/win-x64/native/%(Filename)%(Extension)"
|
||||
/>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
<Import Condition="!$(PackageId.EndsWith('iOS'))" Project="Devolutions.IronRdp.Build.props "/>
|
||||
<Import Project="Devolutions.IronRdp.Build.iOS.props "/>
|
||||
</Project>
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0"?>
|
||||
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Condition="(('$(Platform)' == 'iPhone')) or (('$(Platform)' == 'iPhoneSimulator'))">
|
||||
<NativeReference Include="$(MSBuildThisFileDirectory)..\runtimes\ios\native\libDevolutionsIronRdp.framework">
|
||||
<Kind>Framework</Kind>
|
||||
</NativeReference>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -0,0 +1,98 @@
|
||||
<?xml version="1.0"?>
|
||||
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<IsPowerShell Condition="$(DefineConstants.Contains('__POWERSHELL__'))">true</IsPowerShell>
|
||||
<IsAndroid Condition="$(TargetFramework.ToUpper().Contains('ANDROID'))">true</IsAndroid>
|
||||
<IsIOS Condition="'$(Platform)' == 'iPhone' or '$(Platform)' == 'iPhoneSimulator'">true</IsIOS>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<!-- Windows or PowerShell -->
|
||||
<Content Condition="$([MSBuild]::IsOSPlatform('Windows')) OR '$(IsPowerShell)' == 'true'" Include="$(MSBuildThisFileDirectory)\..\runtimes\win-x64\native\DevolutionsIronRdp.dll">
|
||||
<Link>runtimes\win-x64\native\DevolutionsIronRdp.dll</Link>
|
||||
<PublishState>Included</PublishState>
|
||||
<Visible>False</Visible>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
<IncludeInVsix>true</IncludeInVsix>
|
||||
<Pack>false</Pack>
|
||||
</Content>
|
||||
<Content Condition="$([MSBuild]::IsOSPlatform('Windows')) OR '$(IsPowerShell)' == 'true'" Include="$(MSBuildThisFileDirectory)\..\runtimes\win-arm64\native\DevolutionsIronRdp.dll">
|
||||
<Link>runtimes\win-arm64\native\DevolutionsIronRdp.dll</Link>
|
||||
<PublishState>Included</PublishState>
|
||||
<Visible>False</Visible>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
<IncludeInVsix>true</IncludeInVsix>
|
||||
<Pack>false</Pack>
|
||||
</Content>
|
||||
|
||||
<!-- Linux or PowerShell -->
|
||||
<Content Condition="$([MSBuild]::IsOSPlatform('Linux')) OR '$(IsPowerShell)' == 'true'" Include="$(MSBuildThisFileDirectory)\..\runtimes\linux-x64\native\libDevolutionsIronRdp.so">
|
||||
<Link>runtimes\linux-x64\native\libDevolutionsIronRdp.so</Link>
|
||||
<PublishState>Included</PublishState>
|
||||
<Visible>False</Visible>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
<IncludeInVsix>true</IncludeInVsix>
|
||||
<Pack>false</Pack>
|
||||
</Content>
|
||||
<Content Condition="$([MSBuild]::IsOSPlatform('Linux')) OR '$(IsPowerShell)' == 'true'" Include="$(MSBuildThisFileDirectory)\..\runtimes\linux-arm64\native\libDevolutionsIronRdp.so">
|
||||
<Link>runtimes\linux-arm64\native\libDevolutionsIronRdp.so</Link>
|
||||
<PublishState>Included</PublishState>
|
||||
<Visible>False</Visible>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
<IncludeInVsix>true</IncludeInVsix>
|
||||
<Pack>false</Pack>
|
||||
</Content>
|
||||
|
||||
<!-- PowerShell -->
|
||||
<Content Condition="'$(IsPowerShell)' == 'true'" Include="$(MSBuildThisFileDirectory)\..\runtimes\osx-x64\native\libDevolutionsIronRdp.dylib">
|
||||
<Link>runtimes\osx-x64\native\libDevolutionsIronRdp.dylib</Link>
|
||||
<PublishState>Included</PublishState>
|
||||
<Visible>False</Visible>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
<IncludeInVsix>true</IncludeInVsix>
|
||||
<Pack>false</Pack>
|
||||
</Content>
|
||||
<Content Condition="'$(IsPowerShell)' == 'true'" Include="$(MSBuildThisFileDirectory)\..\runtimes\osx-arm64\native\libDevolutionsIronRdp.dylib">
|
||||
<Link>runtimes\osx-arm64\native\libDevolutionsIronRdp.dylib</Link>
|
||||
<PublishState>Included</PublishState>
|
||||
<Visible>False</Visible>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
<IncludeInVsix>true</IncludeInVsix>
|
||||
<Pack>false</Pack>
|
||||
</Content>
|
||||
</ItemGroup>
|
||||
|
||||
<!-- Xamarin.Mac -->
|
||||
<ItemGroup Condition="$([MSBuild]::IsOSPlatform('OSX')) AND '$(IsPowerShell)' != 'true' AND '$(IsIOS)' != 'true' AND '$(IsAndroid)' != 'true' AND !$(TargetFramework.Contains('net'))">
|
||||
<NativeReference Include="$(MSBuildThisFileDirectory)\..\runtimes\osx-universal\native\libDevolutionsIronRdp.dylib">
|
||||
<Kind>Dynamic</Kind>
|
||||
<SmartLink>False</SmartLink>
|
||||
</NativeReference>
|
||||
</ItemGroup>
|
||||
|
||||
<!-- Xamarin.Android or net6.0-android -->
|
||||
<ItemGroup Condition="$(AndroidSupportedAbis.Contains('armeabi-v7a')) or $(RuntimeIdentifiers.Contains('android-arm'))">
|
||||
<AndroidNativeLibrary Include="$(MSBuildThisFileDirectory)\..\runtimes\android-arm\native\libDevolutionsIronRdp.so">
|
||||
<Link>%(Filename)%(Extension)</Link>
|
||||
<Abi>armeabi-v7a</Abi>
|
||||
</AndroidNativeLibrary>
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition="$(AndroidSupportedAbis.Contains('arm64-v8a')) or $(RuntimeIdentifiers.Contains('android-arm64'))">
|
||||
<AndroidNativeLibrary Include="$(MSBuildThisFileDirectory)\..\runtimes\android-arm64\native\libDevolutionsIronRdp.so">
|
||||
<Link>%(Filename)%(Extension)</Link>
|
||||
<Abi>arm64-v8a</Abi>
|
||||
</AndroidNativeLibrary>
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition="$(AndroidSupportedAbis.Contains('x86')) or $(RuntimeIdentifiers.Contains('android-x86'))">
|
||||
<AndroidNativeLibrary Include="$(MSBuildThisFileDirectory)\..\runtimes\android-x86\native\libDevolutionsIronRdp.so">
|
||||
<Link>%(Filename)%(Extension)</Link>
|
||||
<Abi>x86</Abi>
|
||||
</AndroidNativeLibrary>
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition="$(AndroidSupportedAbis.Contains('x86_64')) or $(RuntimeIdentifiers.Contains('android-x64'))">
|
||||
<AndroidNativeLibrary Include="$(MSBuildThisFileDirectory)\..\runtimes\android-x64\native\libDevolutionsIronRdp.so">
|
||||
<Link>%(Filename)%(Extension)</Link>
|
||||
<Abi>x86_64</Abi>
|
||||
</AndroidNativeLibrary>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string></string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string></string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string></string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>FMWK</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string></string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0.0.0</string>
|
||||
<key>CSResourcesFileMapped</key>
|
||||
<true/>
|
||||
<key>MinimumOSVersion</key>
|
||||
<string>12.1</string>
|
||||
</dict>
|
||||
</plist>
|
||||
Reference in New Issue
Block a user