CppSharp/README.md

106 строки
3.3 KiB
Markdown
Исходник Обычный вид История

CppSharp is a collection of libraries for working with C++ code from
high-level languages.
2015-06-02 15:19:53 +03:00
2015-06-21 20:04:30 +03:00
It has multiple use cases, from parsing C++ code to automatically generating
bindings for wrapping C/C++ native code allowing interoperability with
high-level languages. The supported target languages at present are C#
(hence the name of the project) and C++/CLI.
2013-05-06 06:02:12 +04:00
This can be used to consume an existing native library in your high-level
code or add scripting support to a native codebase.
2015-02-26 01:27:15 +03:00
1. [Libraries](#libraries)
2. [Documentation](#documentation)
3. [Community](#community)
4. [Support](#support)
5. [Users](#users)
## Build Status
2015-06-02 15:19:53 +03:00
2015-08-21 22:20:45 +03:00
| windows-vs-x86 | linux-gcc-x86_64 | osx-clang-x86 |
|---------------------------|-----------------------------|-----------------------------|
| [![windows-vs-x86][1]][2] | [![linux-gcc-x86_64][3]][4] | [![osx-clang-x86][3]][4]
2015-02-26 01:27:15 +03:00
[1]: https://ci.appveyor.com/api/projects/status/5o9gxjcttuaup671/branch/master?svg=true
[2]: https://ci.appveyor.com/project/tritao/CppSharp/branch/master
[3]: https://travis-ci.org/mono/CppSharp.svg?branch=master
[4]: https://travis-ci.org/mono/CppSharp
2013-11-16 07:52:36 +04:00
## Libraries
### Generator
2013-11-16 07:52:36 +04:00
* Multiple backends: C++/CLI and C# P/Invoke
2014-10-28 17:47:45 +03:00
* Multiple ABIs: Itanium, MS, ARM, iOS and iOS64
* Multiple platforms: Windows, OS X and Linux
2013-11-16 07:52:36 +04:00
* Virtual table overriding support
* Multiple inheritance support
* Easily extensible semantics via user passes
* Support for C++ standard library types (work-in-progress)
2013-11-16 07:52:36 +04:00
* Strongly-typed customization APIs and type maps
* Default values of parameters (for target languages which support them)
* Option to automatically add a module initializer with the C# generator
2013-11-16 07:52:36 +04:00
2013-11-16 07:47:33 +04:00
### AST
2013-11-16 07:47:33 +04:00
Mirrors the Clang's C++ AST and type system classes in C# APIs.
Check out [_Clang's AST introduction docs_](http://clang.llvm.org/docs/IntroductionToTheClangAST.html) for more details about its architecture.
2013-11-16 07:47:33 +04:00
* C++ declarations
* C++ types
* Class object layout
* Declaration visitors
* Type visitors
2013-11-16 07:47:33 +04:00
### Parser
2013-11-16 07:47:33 +04:00
Provides APIs for parsing C++ source code.
2013-09-17 16:02:19 +04:00
2013-11-16 07:47:33 +04:00
* Parsing of C++ source code
* Parsing of libraries archives symbols
* Parsing of shared libraries symbols
* Based on the very accurate Clang C++ parser.
## Documentation
Please see the following resources for more information:
[Getting Started](docs/GettingStarted.md)
[User's Manual](docs/UsersManual.md)
[Developer's Manual](docs/DevManual.md)
## Community
Feel free to open up issues on Github with any questions
Mailing list: [Google group](https://groups.google.com/forum/#!forum/cppsharp-list)
## Support
2016-12-15 19:17:12 +03:00
For building wrappers and priority support please write to cppsharp@protonmail.com.
## Users
CppSharp is used by the following projects:
[QtSharp](https://gitlab.com/ddobrev/QtSharp)
[MonoGame](https://github.com/mono/MonoGame)
[LLDBSharp](https://github.com/tritao/LLDBSharp)
[Xamarin](http://xamarin.com/)
[FFMPEG.net](https://github.com/crazyender/FFMPEG.net)
[FFmpeg bindings](https://github.com/InitialForce/FFmpeg_bindings)
[Tizen bindings](https://github.com/kitsilanosoftware/CppSharpTizen)
[libgd bindings](https://github.com/imazen/deprecated-gd-bindings-generator-old)
Please feel free to send us a pull request adding your own projects to the list above.