MozReview-Commit-ID: IJRUwUF6IcJ --HG-- rename : third_party/rust/app_units/.cargo-checksum.json => third_party/rust/app_units-0.3.0/.cargo-checksum.json rename : third_party/rust/app_units/Cargo.toml => third_party/rust/app_units-0.3.0/Cargo.toml rename : third_party/rust/app_units/src/app_unit.rs => third_party/rust/app_units-0.3.0/src/app_unit.rs rename : third_party/rust/euclid/.cargo-checksum.json => third_party/rust/euclid-0.10.3/.cargo-checksum.json rename : third_party/rust/euclid/Cargo.toml => third_party/rust/euclid-0.10.3/Cargo.toml rename : third_party/rust/euclid/src/length.rs => third_party/rust/euclid-0.10.3/src/length.rs rename : third_party/rust/euclid/src/lib.rs => third_party/rust/euclid-0.10.3/src/lib.rs rename : third_party/rust/euclid/src/macros.rs => third_party/rust/euclid-0.10.3/src/macros.rs rename : third_party/rust/euclid/src/matrix2d.rs => third_party/rust/euclid-0.10.3/src/matrix2d.rs rename : third_party/rust/euclid/src/matrix4d.rs => third_party/rust/euclid-0.10.3/src/matrix4d.rs rename : third_party/rust/euclid/src/rect.rs => third_party/rust/euclid-0.10.3/src/rect.rs rename : third_party/rust/euclid/src/scale_factor.rs => third_party/rust/euclid-0.10.3/src/scale_factor.rs rename : third_party/rust/euclid/src/size.rs => third_party/rust/euclid-0.10.3/src/size.rs |
||
|---|---|---|
| .. | ||
| ci | ||
| src | ||
| tests | ||
| .cargo-checksum.json | ||
| .cargo-ok | ||
| .gitignore | ||
| .travis.yml | ||
| appveyor.yml | ||
| build.rs | ||
| Cargo.toml | ||
| CHANGELOG.md | ||
| clippy.toml | ||
| CONTRIBUTING.md | ||
| LICENSE.txt | ||
| README.md | ||
clang-sys
Rust bindings for libclang.
If you are interested in a Rust wrapper for these bindings, see clang-rs.
Supported on the stable, beta, and nightly Rust channels.
Released under the Apache License 2.0.
Supported Versions
To target a version of libclang, enable one of the following Cargo features:
clang_3_5- requireslibclang3.5 or later (Documentation)clang_3_6- requireslibclang3.6 or later (Documentation)clang_3_7- requireslibclang3.7 or later (Documentation)clang_3_8- requireslibclang3.8 or later (Documentation)clang_3_9- requireslibclang3.9 or later (Documentation)
If you do not enable one of these features, the API provided by libclang 3.5 will be available by
default.
Dependencies
By default, this crate will attempt to link to libclang dynamically. In this case, this crate
depends on the libclang shared library (libclang.so on Linux, libclang.dylib on OS X,
libclang.dll on Windows). If you want to link to libclang statically instead, enable the
static Cargo feature. In this case, this crate depends on the LLVM and Clang static libraries. If
you don't want to link to libclang at compiletime but instead want to load it at runtime, enable
the runtime Cargo feature.
These libraries can be either be installed as a part of Clang or downloaded here.
Note: Installing libclang through a package manager might install the libclang shared
library as something like libclang.so.1 instead of libclang.so. In this case, you need to make a
symbolic link from the versioned shared library to libclang.so.
Note: The downloads for LLVM and Clang 3.8 and later do not include the libclang.a static
library. This means you cannot link to any of these versions of libclang statically unless you
build it from source.
Environment Variables
The following environment variables, if set, are used by this crate to find the required libraries and executables:
LLVM_CONFIG_PATH(compile time) - provides a path to anllvm-configexecutableLIBCLANG_PATH(compile time) - provides a path to a directory containing alibclangshared libraryLIBCLANG_STATIC_PATH(compile time) - provides a path to a directory containing LLVM and Clang static librariesCLANG_PATH(run time) - provides a path to aclangexecutable
Linking
Dynamic
First, the libclang shared library will be searched for in the directory provided by the
LIBCLANG_PATH environment variable if it was set. If this fails, the directory returned by
llvm-config --libdir will be searched. If neither of these approaches is successful, a list of
likely directories will be searched (e.g., /usr/local/lib on Linux).
On Linux, running an executable that has been dynamically linked to libclang may require you to
add a path to libclang.so to the LD_LIBRARY_PATH environment variable. The same is true on OS
X, except the DYLD_LIBRARY_PATH environment variable is used instead.
On Windows, running an executable that has been dynamically linked to libclang requires that
libclang.dll can be found by the executable at runtime. See
here for more information.
Static
The availability of llvm-config is not optional for static linking. Ensure that an instance of
this executable can be found on your system's path or set the LLVM_CONFIG_PATH environment
variable. The required LLVM and Clang static libraries will be searched for in the same way as the
shared library is searched for, except the LIBCLANG_STATIC_PATH environment variable is used in
place of the LIBCLANG_PATH environment variable.
Runtime
The clang_sys::load function is used to load a libclang shared library for use in the thread in
which it is called. The clang_sys::unload function will unload the libclang shared library.
clang_sys::load searches for a libclang shared library in the same way one is searched for when
linking to libclang dynamically at compiletime.