kevinresol / napi

Native-friendly API for Haxe targets

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Native libraries project formats

kevinresol opened this issue · comments

Information about each target's native project format and library distribution format.
For use in the toolchain. (Auto create native project, submission helpers, etc).

Target Project Format Distribution Format Repo / Manager Getting Started Submit
JS/Node.js package.json source npm npm init npm publish
C# .nuspec dll NuGet
Java gradle, buck jar, aar maven, jcenter
Python ? source pip
Lua ? source LuaRocks
C++ ? source
static/dyn lib
?
AS3 ? source, swc ?
PHP composer.json source composer composer init packagist.org

Note: If anyone knows the missing information, please comment below and I will update accordingly.

commented

PHP
Project Format: composer.json
Repo / Manager: composer
Getting Started: composer init
Submit: through packagist.org, releases are automatically fetched from a public repository (source must be comitted)

commented

Also, AS3 is probably easiest to be distributed through an .swc file: http://old.haxe.org/manual/swc

Argh, right, I actually mean swc instead of swf :p

C#: NuGet
Lua: LuaRocks
Python: pip

I'll do some more research on project formats, although CMake is a good option for C++

apt-get is one way to distribute C++ libs.

Another issue is the mass of platform settings.

  • C# comes in different flavors... for Windows, Linux, Framework X.Y.Z, Net Standard X.Y...
  • Java 1.6, 1.7... and so on
  • Python 2.7 or 3.X

It would be great to have an own package distribution server for each platform, I guess.

For most targets you have actually two options

  1. Compile the native code
  2. Compile C code and create bindings, which should be faster I guess.

In C# there exists "dotnet new ..." to create new applications.