Embeddinator-4000

Tools to turn .NET libraries into native libraries that can be consumed on Android, iOS, Mac, Linux and other platforms.

Github星跟蹤圖

Embeddinator-4000 Logo, Windows, macOS, ---------------------------, -----------------------------, windows-vs-x86, osx-clang-x86

Embeddinator-4000 is a tool to turn existing .NET libraries into
libraries that can be consumed by other languages.

It is a tool that takes a .NET assembly and generates the necessary
glue to surface the .NET API as a native API. The goal is to surface
.NET libraries to all ecosystems where Mono/Xamarin run, and for each
platform we provide an interface that is native to that platform as well
as the tools needed to turn a .NET library into something that can be
consumed on that platform.

Presently there is support for .NET to C, Objective-C (across the various Apple platforms)
and Java (Android and regular Java), across Windows, Linux and macOS platforms.

Getting Started

Check out our documentation to get started.

Community

Feel free to join us at our #managed-interop Gitter discussion channel.

Building

  • Clone this repository
  • Initialize/update submodules: git submodule update --recursive --init
  • Open the solution file Embeddinator-4000.sln with Visual Studio or Visual Studio For Mac
  • Build

If you prefer to build from the command line Cake or Make can be used to build instead of Visual Studio For Mac.

Cake

The Android/C portions of the project can also be built with Cake using the build.ps1 / build.sh scripts.

On OS X, you can setup your environment for Android by running a shell script:

./build.sh -t Generate-Android -v diagnostic

On Windows, in Powershell:

.\build.ps1 -t Generate-Android -v diagnostic

This will download a master build of Xamarin.Android and extract it into /external/Xamarin.Android.

Embeddinator-4000.exe will be compiled to build/lib/Release. The Cake script will also run Embeddinator against a test assembly, so you can be sure your system is setup properly.

Makefile

The Objective-C portions of the project can be built with make in objcgen.

Nuget Generation

To generate the nuget one can use either (they both invoke the same build process):

  • make nuget in objcgen
  • Cake :./build.sh -t Create-Package

Usage

The getting started documentation walks through basic usage of the Embeddinator.

More details on platform specific invocations can be found here.

Development

The contributing guide covers a number of areas to consider when contributing to Embeddinator-4000.

A number of internal documentation files exist describing the project and internal structure of Embeddinator:

主要指標

概覽
名稱與所有者mono/Embeddinator-4000
主編程語言C#
編程語言C# (語言數: 11)
平台
許可證MIT License
所有者活动
創建於2016-11-06 18:29:49
推送於2021-03-11 09:19:41
最后一次提交
發布數1
最新版本名稱v0.2.0.79 (發布於 )
第一版名稱v0.2.0.79 (發布於 )
用户参与
星數760
關注者數66
派生數95
提交數1.7k
已啟用問題?
問題數357
打開的問題數133
拉請求數393
打開的拉請求數5
關閉的拉請求數38
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?