LLVM bindings for .NET Standard written in C# using ClangSharp
Перейти к файлу
Tanner Gooding ed54b17e0b
Merge pull request #224 from tannergooding/main
Updating to LLVM v18.1
2024-04-30 06:50:24 -07:00
.github/workflows Use v4 of the various GitHub actions 2024-04-30 06:21:12 -07:00
packages/libLLVM Fix the libLLVM packages for Windows 2024-04-30 06:41:28 -07:00
samples Updating the repo to target .NET 8 2024-04-29 07:08:39 -07:00
scripts Updating the repo to target .NET 8 2024-04-29 07:08:39 -07:00
sources Regenerating bindings for LLVM v18.1 2024-04-29 10:32:25 -07:00
tests Updating version information to v18.1 2024-04-29 07:49:39 -07:00
.editorconfig Updating the repo to target .NET 8 2024-04-29 07:08:39 -07:00
.gitattributes Setup some infrastructure for the repository. (#100) 2019-06-01 10:42:46 -07:00
.gitignore Updating infrastructure files to match the latest conventions 2022-09-28 20:17:47 -07:00
CODE_OF_CONDUCT.md Resolve dotnet-org-policy PR15 by ensuring we only link to the foundation CoC 2021-12-02 12:53:30 -08:00
Directory.Build.props Updating version information to v18.1 2024-04-29 07:49:39 -07:00
Directory.Build.targets Updating the repo to target .NET 8 2024-04-29 07:08:39 -07:00
Directory.Packages.props Fix the libLLVM packages for Windows 2024-04-30 06:41:28 -07:00
LICENSE.md Updating the license to MIT 2021-11-11 14:27:35 -08:00
LLVMSharp.sln Updating version information to v18.1 2024-04-29 07:49:39 -07:00
NOTICE.md Updating the license to MIT 2021-11-11 14:27:35 -08:00
NuGet.config Updating infrastructure files to match the latest conventions 2022-09-28 20:17:47 -07:00
Open.snk Updating to support .NET 5 and to use Open.snk (#155) 2021-02-10 23:14:10 -08:00
README.md Update README.md 2021-12-24 02:19:57 -08:00
build.cmd Updating infrastructure files to match the latest conventions 2022-09-28 20:17:47 -07:00
build.sh Setup some infrastructure for the repository. (#100) 2019-06-01 10:42:46 -07:00
exclusion.dic Updating the repo to target .NET 8 2024-04-29 07:08:39 -07:00
global.json Updating the repo to target .NET 8 2024-04-29 07:08:39 -07:00
pack.cmd Updating infrastructure files to match the latest conventions 2022-09-28 20:17:47 -07:00
pack.sh Setup some infrastructure for the repository. (#100) 2019-06-01 10:42:46 -07:00
restore.cmd Updating infrastructure files to match the latest conventions 2022-09-28 20:17:47 -07:00
restore.sh Setup some infrastructure for the repository. (#100) 2019-06-01 10:42:46 -07:00
test.cmd Updating infrastructure files to match the latest conventions 2022-09-28 20:17:47 -07:00
test.sh Setup some infrastructure for the repository. (#100) 2019-06-01 10:42:46 -07:00

README.md

LLVMSharp

LLVMSharp is a multi-platform .NET Standard library for accessing the LLVM infrastructure. The bindings are auto-generated using ClangSharp parsing LLVM-C header files.

ci

A nuget package for the project is provided here: https://www.nuget.org/packages/llvmsharp.

A convenience package which provides the native libLLVM library for several platforms is provided here: https://www.nuget.org/packages/libLLVM

Nightly packages are available via the NuGet Feed URL: https://pkgs.clangsharp.dev/index.json

Source browsing is available via: https://source.clangsharp.dev/

Table of Contents

Code of Conduct

LLVMSharp and everyone contributing (this includes issues, pull requests, the wiki, etc) must abide by the .NET Foundation Code of Conduct: https://dotnetfoundation.org/about/code-of-conduct.

Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at conduct@dotnetfoundation.org.

License

Copyright (c) .NET Foundation and Contributors. All Rights Reserved. Licensed under the MIT License (MIT). See LICENSE.md in the repository root for more information.

Features

  • Auto-generated using LLVM C headers files, and supports all functionality exposed by them (more than enough to build a full compiler)
  • Type safe (LLVMValueRef and LLVMTypeRef are different types, despite being pointers internally)
  • Nearly identical to LLVM C APIs, e.g. LLVMModuleCreateWithName in C, vs. LLVM.ModuleCreateWithName (notice the . in the C# API)

Building LLVMSharp

On Linux using .NET Core:

 $ git clone http://github.com/dotnet/llvmsharp
 $ cd LLVMSharp
 $ dotnet build

On Windows using .NET Core

Note: - you need to run these commands from the Visual Studio Developer Command Prompt.

 :> git clone http://github.com/dotnet/LLVMSharp
 :> cd LLVMSharp
 :> dotnet build