Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/SharpGenTools/SharpGenTools
Accurate and high performance C++ interop code generator for C#.
https://github.com/SharpGenTools/SharpGenTools
c-sharp cpp interoperability sharpdx
Last synced: 23 days ago
JSON representation
Accurate and high performance C++ interop code generator for C#.
- Host: GitHub
- URL: https://github.com/SharpGenTools/SharpGenTools
- Owner: SharpGenTools
- License: mit
- Created: 2017-05-27T21:50:03.000Z (about 7 years ago)
- Default Branch: main
- Last Pushed: 2023-10-09T08:21:55.000Z (9 months ago)
- Last Synced: 2024-06-16T08:02:23.724Z (26 days ago)
- Topics: c-sharp, cpp, interoperability, sharpdx
- Language: C
- Homepage: https://sharpgentools.readthedocs.io/
- Size: 113 MB
- Stars: 473
- Watchers: 27
- Forks: 56
- Open Issues: 45
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Lists
- awesome-stars - SharpGenTools
README
# SharpGenTools
[![Build status](https://github.com/SharpGenTools/SharpGenTools/workflows/Build/badge.svg)](https://github.com/SharpGenTools/SharpGenTools/actions)
[![NuGet](https://img.shields.io/nuget/v/SharpGenTools.Sdk.svg)](https://www.nuget.org/packages/SharpGenTools.Sdk) [![Docs](https://readthedocs.org/projects/sharpgentools/badge/?version=latest)](https://sharpgentools.readthedocs.io/en/latest/) [![codecov](https://codecov.io/gh/SharpGenTools/SharpGenTools/branch/main/graph/badge.svg)](https://codecov.io/gh/SharpGenTools/SharpGenTools) [![CodeFactor](https://www.codefactor.io/repository/github/sharpgentools/sharpgentools/badge)](https://www.codefactor.io/repository/github/sharpgentools/sharpgentools)Accurate and high performance C++ interop code generator for C#.
## Features
* Accurate, fast code-gen for C++ and COM interfaces from their C++ headers.
* No dependencies on .NET Runtime COM support
* Supports passing code-gen information through MSBuild project and package references
* Pluggable Runtime Library Name and runtime support type names (default library is SharpGen.Runtime)
* Projects that implement their own SharpGenTools runtime support classes can add mapping rules to ensure that their generated code uses their runtime support library.## Components in this Repo
* SharpGen
* The code-gen engine that runs CastXML to parse the C++ and then generates the C# interop code.
* API for SharpGen SDK plugins, e.g. documentation providers.
* SharpGenTools.Sdk
* MSBuild tooling to integrate SharpGen directly into projects.
* Build-time code generation plugin platform.
* SharpGen.Runtime
* Runtime support classes for code generated by SharpGen.
* SharpGen.Runtime.COM
* Mapped classes for the core interfaces in the COM and Windows Runtime.## Requirements
### To Use
* SDK-style (CPS) MSBuild projects
* .NET environment, at least one of the following:
* .NET SDK (7 or newer)
* .NET Core SDK (3.1 or newer)
* Visual Studio 2019 with desktop .NET workload, .NET Framework 4.7.2 SDK or newer
* Make any mapping files a `SharpGenMapping` item in your `.csproj`.### To Build
* .NET SDK: 7.0 or newer.
* CMake: 3.0 or newer.
* SDK tests require x64 Windows, VS2022 with x86 and x64 C++ compilers, recent PowerShell version.