From 67dac77a586643e0a10434faa8da03dd23500b92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Cortier?= Date: Wed, 12 Jun 2024 10:01:15 -0400 Subject: [PATCH] feat(ffi): deployable Devolutions.IronRdp package (#465) --- .github/workflows/nuget-publish.yml | 11 ++ .../Devolutions.IronRdp.Build.iOS.props | 22 ++++ .../Devolutions.IronRdp.Build.props | 108 ++++++++++++++++++ .../Devolutions.IronRdp.csproj | 38 +++--- .../Devolutions.IronRdp.iOS.props | 8 ++ .../Devolutions.IronRdp.targets | 98 ++++++++++++++++ ffi/dotnet/Devolutions.IronRdp/Info.plist | 28 +++++ 7 files changed, 298 insertions(+), 15 deletions(-) create mode 100644 ffi/dotnet/Devolutions.IronRdp/Devolutions.IronRdp.Build.iOS.props create mode 100644 ffi/dotnet/Devolutions.IronRdp/Devolutions.IronRdp.Build.props create mode 100644 ffi/dotnet/Devolutions.IronRdp/Devolutions.IronRdp.iOS.props create mode 100644 ffi/dotnet/Devolutions.IronRdp/Devolutions.IronRdp.targets create mode 100644 ffi/dotnet/Devolutions.IronRdp/Info.plist diff --git a/.github/workflows/nuget-publish.yml b/.github/workflows/nuget-publish.yml index 292eb672..0b810296 100644 --- a/.github/workflows/nuget-publish.yml +++ b/.github/workflows/nuget-publish.yml @@ -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 diff --git a/ffi/dotnet/Devolutions.IronRdp/Devolutions.IronRdp.Build.iOS.props b/ffi/dotnet/Devolutions.IronRdp/Devolutions.IronRdp.Build.iOS.props new file mode 100644 index 00000000..af8d97cc --- /dev/null +++ b/ffi/dotnet/Devolutions.IronRdp/Devolutions.IronRdp.Build.iOS.props @@ -0,0 +1,22 @@ + + + net8.0-ios + 12.1 + + + + + runtimes/ios/native/ + true + Never + + + + + + + + + + + diff --git a/ffi/dotnet/Devolutions.IronRdp/Devolutions.IronRdp.Build.props b/ffi/dotnet/Devolutions.IronRdp/Devolutions.IronRdp.Build.props new file mode 100644 index 00000000..d8e5669f --- /dev/null +++ b/ffi/dotnet/Devolutions.IronRdp/Devolutions.IronRdp.Build.props @@ -0,0 +1,108 @@ + + + net8.0 + + + + + %(Filename)%(Extension) + runtimes/win-x64/native/%(Filename)%(Extension) + true + Never + + + + + + %(Filename)%(Extension) + runtimes/win-arm64/native/%(Filename)%(Extension) + true + Never + + + + + + %(Filename)%(Extension) + runtimes/osx-x64/native/%(Filename)%(Extension) + true + Never + + + + + + %(Filename)%(Extension) + runtimes/osx-arm64/native/%(Filename)%(Extension) + true + Never + + + + + + %(Filename)%(Extension) + runtimes/osx-universal/native/%(Filename)%(Extension) + true + Never + + + + + + %(Filename)%(Extension) + runtimes/linux-x64/native/%(Filename)%(Extension) + true + Never + + + + + + %(Filename)%(Extension) + runtimes/linux-arm64/native/%(Filename)%(Extension) + true + Never + + + + + + %(Filename)%(Extension) + runtimes/android-arm64/native/%(Filename)%(Extension) + true + Never + + + + + + %(Filename)%(Extension) + runtimes/android-arm/native/%(Filename)%(Extension) + true + Never + + + + + + %(Filename)%(Extension) + runtimes/android-x64/native/%(Filename)%(Extension) + true + Never + + + + + + %(Filename)%(Extension) + runtimes/android-x86/native/%(Filename)%(Extension) + true + Never + + + + + + + diff --git a/ffi/dotnet/Devolutions.IronRdp/Devolutions.IronRdp.csproj b/ffi/dotnet/Devolutions.IronRdp/Devolutions.IronRdp.csproj index 6e76e939..a3002c23 100644 --- a/ffi/dotnet/Devolutions.IronRdp/Devolutions.IronRdp.csproj +++ b/ffi/dotnet/Devolutions.IronRdp/Devolutions.IronRdp.csproj @@ -1,28 +1,36 @@  - - net8.0 - enable + Devolutions.IronRdp + Devolutions + Bindings to Rust IronRDP native library + latest + 2024.5.22.0 + enable enable true true false - - Devolutions.IronRdp - 1.0.1 - Dotnet bindings for the IronRDP project ../../../dependencies/runtimes $(RuntimesPath)/win-x64/native/DevolutionsIronRdp.dll + $(RuntimesPath)/win-arm64/native/DevolutionsIronRdp.dll + $(RuntimesPath)/osx-x64/native/libDevolutionsIronRdp.dylib + $(RuntimesPath)/osx-arm64/native/libDevolutionsIronRdp.dylib + $(RuntimesPath)/osx-universal/native/libDevolutionsIronRdp.dylib + $(RuntimesPath)/linux-x64/native/libDevolutionsIronRdp.so + $(RuntimesPath)/linux-arm64/native/libDevolutionsIronRdp.so + $(RuntimesPath)/android-arm64/native/libDevolutionsIronRdp.so + $(RuntimesPath)/android-arm/native/libDevolutionsIronRdp.so + $(RuntimesPath)/android-x64/native/libDevolutionsIronRdp.so + $(RuntimesPath)/android-x86/native/libDevolutionsIronRdp.so + $(RuntimesPath)/ios-x64/native/libDevolutionsIronRdp.dylib + $(RuntimesPath)/ios-arm64/native/libDevolutionsIronRdp.dylib + $(RuntimesPath)/ios-universal/native/libDevolutionsIronRdp.dylib + $(RuntimesPath)/ios-universal/native/libDevolutionsIronRdp.framework - - - - - \ No newline at end of file + + + diff --git a/ffi/dotnet/Devolutions.IronRdp/Devolutions.IronRdp.iOS.props b/ffi/dotnet/Devolutions.IronRdp/Devolutions.IronRdp.iOS.props new file mode 100644 index 00000000..28313653 --- /dev/null +++ b/ffi/dotnet/Devolutions.IronRdp/Devolutions.IronRdp.iOS.props @@ -0,0 +1,8 @@ + + + + + Framework + + + diff --git a/ffi/dotnet/Devolutions.IronRdp/Devolutions.IronRdp.targets b/ffi/dotnet/Devolutions.IronRdp/Devolutions.IronRdp.targets new file mode 100644 index 00000000..769620c1 --- /dev/null +++ b/ffi/dotnet/Devolutions.IronRdp/Devolutions.IronRdp.targets @@ -0,0 +1,98 @@ + + + + true + true + true + + + + + + runtimes\win-x64\native\DevolutionsIronRdp.dll + Included + False + PreserveNewest + true + false + + + runtimes\win-arm64\native\DevolutionsIronRdp.dll + Included + False + PreserveNewest + true + false + + + + + runtimes\linux-x64\native\libDevolutionsIronRdp.so + Included + False + PreserveNewest + true + false + + + runtimes\linux-arm64\native\libDevolutionsIronRdp.so + Included + False + PreserveNewest + true + false + + + + + runtimes\osx-x64\native\libDevolutionsIronRdp.dylib + Included + False + PreserveNewest + true + false + + + runtimes\osx-arm64\native\libDevolutionsIronRdp.dylib + Included + False + PreserveNewest + true + false + + + + + + + Dynamic + False + + + + + + + %(Filename)%(Extension) + armeabi-v7a + + + + + %(Filename)%(Extension) + arm64-v8a + + + + + %(Filename)%(Extension) + x86 + + + + + %(Filename)%(Extension) + x86_64 + + + diff --git a/ffi/dotnet/Devolutions.IronRdp/Info.plist b/ffi/dotnet/Devolutions.IronRdp/Info.plist new file mode 100644 index 00000000..1fcd5d9e --- /dev/null +++ b/ffi/dotnet/Devolutions.IronRdp/Info.plist @@ -0,0 +1,28 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + + CFBundleIconFile + + CFBundleIdentifier + + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + FMWK + CFBundleSignature + ???? + CFBundleVersion + + CFBundleShortVersionString + 1.0.0.0 + CSResourcesFileMapped + + MinimumOSVersion + 12.1 + +