Swiftpack.co - apple/swift-llvm-bindings as Swift Package

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
See all packages published by apple.
apple/swift-llvm-bindings swift-5.9-RELEASE
Swift Bindings for LLVM Project APIs
⭐️ 58
🕓 5 days ago
.package(url: "https://github.com/apple/swift-llvm-bindings.git", from: "swift-5.9-RELEASE")

Swift Bindings for LLVM

Swift Bindings for LLVM is a part of the Swift project, and aims to make it easier and more convenient to use LLVM APIs from Swift code. It relies on the experimental Swift/C++ Interoperability, which allows calling C++ APIs directly from Swift, removing the need for a C bridging layer.

This is a work-in-progress. The design of the bindings will be changing as Swift/C++ Interoperability evolves.

Trying it out

Within the Swift compiler project

(This will be updated once the Swift compiler starts using Swift LLVM Bindings.)

As a standalone project

A Swift Development Snapshot toolchain is required to build the project. Using the latest available trunk snapshot is recommended.

Since the bindings rely on LLVM headers, you will need a fresh checkout of LLVM locally. Both upstream LLVM (llvm/llvm-project) and Apple's LLVM fork (apple/llvm-project) are supported.

Similarly to LLVM, CMake is used to build the bindings. To configure the build process, run the following command:

cmake -G Ninja \
      -D CMAKE_BUILD_TYPE=Debug \
      -D CMAKE_Swift_COMPILER=/Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-{YYYY-MM-DD}.xctoolchain/usr/bin/swiftc \
      -D LLVM_DIR={PATH_TO_LLVM_BUILD_ROOT}/lib/cmake/llvm \
      -B {PATH_TO_BUILD_ROOT}

To build all of the bindings, run:

cmake --build {PATH_TO_BUILD_ROOT} --target all

To build the bindings for a specific LLVM module (e.g. LLVM_Utils), run:

cmake --build {PATH_TO_BUILD_ROOT} --target LLVM_Utils

Branching scheme

llvm.org/main branch tracks the main branch of (llvm/llvm-project).

stable/YYYYMMDD branch tracks the corresponding stable/YYYYMMDD branch of (apple/llvm-project).

Contributing

If you are working on a feature that you intend to use in SwiftCompilerSources, you should create pull requests against two branches: llvm.org/main and stable/YYYYMMDD. If you are merging the pull requests yourself, please make sure you merge the pull request to llvm.org/main branch first.

Otherwise, you should create pull requests against llvm.org/main branch only.

GitHub

link
Stars: 58
Last commit: 5 days ago
jonrohan Something's broken? Yell at me @ptrpavlik. Praise and feedback (and money) is also welcome.

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics