#build-dependencies #ispc #simd

ispc_compile

A build-time dependency for Cargo build scripts to help with compiling and linking to ISPC code, and generating Rust bindings to the resulting library. The generated bindings can be imported by using ispc_rt, which will also support linking to pre-built ISPC code. Using pre-built binaries is useful for distributing a library or tool using ISPC, while not requiring end users to have the ISPC compiler.

6 stable releases

1.0.5 Feb 25, 2019
1.0.4 Jan 24, 2019
1.0.2 Jan 23, 2019

#30 in Build Utils

Download history 70/week @ 2019-01-22 38/week @ 2019-01-29 17/week @ 2019-02-05 12/week @ 2019-02-12 24/week @ 2019-02-19

54 downloads per month
Used in 2 crates

MIT license

31KB
570 lines


lib.rs:

A small library meant to be used as a build dependency with Cargo for easily integrating ISPC code into Rust projects. The ispc_compile crate provides functionality to use the ISPC compiler from your build script to build your ISPC code into a library, and generate Rust bindings to this library. The ispc_rt crate is still required at runtime to provide a macro to import the generated bindings, along with the task system and performance instrumentation system.

Requirements for Compiling ISPC Code

Both the ISPC compiler and libclang (for rust-bindgen) must be available in your path to compile the ISPC code and generate the bindings. These are not required if using ispc_rt to link against a previously compiled library.

Windows Users

You'll need Visual Studio and will have to use the MSVC ABI version of Rust since ISPC and Clang link with MSVC on Windows. For bindgen to find libclang you'll need to copy libclang.lib to clang.lib and place it in your path.

Dependencies

~6MB
~105K SLoC