Cargo Features

[dependencies]
inkwell = { version = "0.4.0", default-features = false, features = ["llvm4-0", "llvm5-0", "llvm6-0", "llvm7-0", "llvm8-0", "llvm9-0", "llvm10-0", "llvm11-0", "llvm12-0", "llvm13-0", "llvm14-0", "llvm15-0", "llvm16-0", "llvm17-0", "llvm4-0-no-llvm-linking", "llvm5-0-no-llvm-linking", "llvm6-0-no-llvm-linking", "llvm7-0-no-llvm-linking", "llvm8-0-no-llvm-linking", "llvm9-0-no-llvm-linking", "llvm10-0-no-llvm-linking", "llvm11-0-no-llvm-linking", "llvm12-0-no-llvm-linking", "llvm13-0-no-llvm-linking", "llvm14-0-no-llvm-linking", "llvm15-0-no-llvm-linking", "llvm16-0-no-llvm-linking", "llvm17-0-no-llvm-linking", "llvm12-0-force-dynamic", "llvm13-0-force-dynamic", "llvm14-0-force-dynamic", "llvm15-0-force-dynamic", "llvm16-0-force-dynamic", "llvm17-0-force-dynamic", "llvm12-0-prefer-dynamic", "llvm13-0-prefer-dynamic", "llvm14-0-prefer-dynamic", "llvm15-0-prefer-dynamic", "llvm16-0-prefer-dynamic", "llvm17-0-prefer-dynamic", "llvm12-0-force-static", "llvm13-0-force-static", "llvm14-0-force-static", "llvm15-0-force-static", "llvm16-0-force-static", "llvm17-0-force-static", "llvm12-0-prefer-static", "llvm13-0-prefer-static", "llvm14-0-prefer-static", "llvm15-0-prefer-static", "llvm16-0-prefer-static", "llvm17-0-prefer-static", "no-libffi-linking", "target-mips", "target-amdgpu", "target-hexagon", "target-xcore", "target-bpf", "target-webassembly", "target-loongarch", "target-syncvm", "target-all", "experimental", "nightly"] }
default = target-all

The target-all feature is set by default whenever inkwell is added without default-features = false somewhere in the dependency tree.

llvm4-0 llvm4-0-no-llvm-linking? = llvm-sys-40

Please update internal_macros::FEATURE_VERSIONS when adding a new LLVM version

Affects metadata_value::FIRST_CUSTOM_METADATA_KIND_ID

llvm5-0 llvm5-0-no-llvm-linking? = llvm-sys-50

Affects metadata_value::FIRST_CUSTOM_METADATA_KIND_ID

llvm6-0 llvm6-0-no-llvm-linking? = llvm-sys-60

Affects metadata_value::FIRST_CUSTOM_METADATA_KIND_ID

llvm7-0 llvm7-0-no-llvm-linking? = llvm-sys-70

Affects metadata_value::FIRST_CUSTOM_METADATA_KIND_ID

llvm8-0 llvm8-0-no-llvm-linking? = llvm-sys-80

Affects metadata_value::FIRST_CUSTOM_METADATA_KIND_ID

llvm9-0 llvm9-0-no-llvm-linking? = llvm-sys-90

Affects metadata_value::FIRST_CUSTOM_METADATA_KIND_ID

llvm10-0 llvm10-0-no-llvm-linking? = llvm-sys-100

Affects metadata_value::FIRST_CUSTOM_METADATA_KIND_ID

llvm11-0 llvm11-0-no-llvm-linking? = llvm-sys-110

Affects metadata_value::FIRST_CUSTOM_METADATA_KIND_ID

llvm12-0 llvm12-0-force-dynamic? llvm12-0-force-static? llvm12-0-no-llvm-linking? llvm12-0-prefer-dynamic? llvm12-0-prefer-static? = llvm-sys-120
llvm13-0 llvm13-0-force-dynamic? llvm13-0-force-static? llvm13-0-no-llvm-linking? llvm13-0-prefer-dynamic? llvm13-0-prefer-static? = llvm-sys-130
llvm14-0 llvm14-0-force-dynamic? llvm14-0-force-static? llvm14-0-no-llvm-linking? llvm14-0-prefer-dynamic? llvm14-0-prefer-static? = llvm-sys-140
llvm15-0 llvm15-0-force-dynamic? llvm15-0-force-static? llvm15-0-no-llvm-linking? llvm15-0-prefer-dynamic? llvm15-0-prefer-static? = llvm-sys-150

Affects metadata_value::FIRST_CUSTOM_METADATA_KIND_ID

llvm16-0 llvm16-0-force-dynamic? llvm16-0-force-static? llvm16-0-no-llvm-linking? llvm16-0-prefer-dynamic? llvm16-0-prefer-static? = llvm-sys-160

Affects metadata_value::FIRST_CUSTOM_METADATA_KIND_ID

llvm17-0 llvm17-0-force-dynamic? llvm17-0-force-static? llvm17-0-no-llvm-linking? llvm17-0-prefer-dynamic? llvm17-0-prefer-static? = llvm-sys-170

Affects metadata_value::FIRST_CUSTOM_METADATA_KIND_ID

llvm4-0-no-llvm-linking = llvm4-0

Don't link against LLVM libraries. This is useful if another dependency is installing LLVM. See llvm-sys for more details. We can't enable a single no-llvm-linking feature across the board of llvm versions, as it'll cause cargo to try and download and compile them all. See https://github.com/rust-lang/cargo/issues/3494

Enables no-llvm-linking of llvm-sys ^40.4

llvm5-0-no-llvm-linking = llvm5-0

Enables no-llvm-linking of llvm-sys ^50.4

llvm6-0-no-llvm-linking = llvm6-0

Enables no-llvm-linking of llvm-sys ^60.6

llvm7-0-no-llvm-linking = llvm7-0

Enables no-llvm-linking of llvm-sys ^70.4

llvm8-0-no-llvm-linking = llvm8-0

Enables no-llvm-linking of llvm-sys ^80.3

llvm9-0-no-llvm-linking = llvm9-0

Enables no-llvm-linking of llvm-sys ^90.2.1

llvm10-0-no-llvm-linking = llvm10-0

Enables no-llvm-linking of llvm-sys ^100.2.3

llvm11-0-no-llvm-linking = llvm11-0

Enables no-llvm-linking of llvm-sys ^110.0.3

llvm12-0-no-llvm-linking = llvm12-0

Enables no-llvm-linking of llvm-sys ^120.2.4

llvm13-0-no-llvm-linking = llvm13-0

Enables no-llvm-linking of llvm-sys ^130.0.4

llvm14-0-no-llvm-linking = llvm14-0

Enables no-llvm-linking of llvm-sys ^140.0.2

llvm15-0-no-llvm-linking = llvm15-0

Enables no-llvm-linking of llvm-sys ^150.0.3

llvm16-0-no-llvm-linking = llvm16-0

Enables no-llvm-linking of llvm-sys ^160.1.0

llvm-sys:

Do not attempt to link against LLVM libraries (useful if a different crate in your dependency tree provides them instead).

llvm17-0-no-llvm-linking = llvm17-0

Enables no-llvm-linking of llvm-sys ^170.0.1

llvm12-0-force-dynamic = llvm12-0

Linking preference.
If none of these are enabled, it defaults to force static linking.

Force dynamic linking against LLVM libraries. See llvm-sys for more details

Enables force-dynamic of llvm-sys ^120.2.4

llvm13-0-force-dynamic = llvm13-0

Enables force-dynamic of llvm-sys ^130.0.4

llvm14-0-force-dynamic = llvm14-0

Enables force-dynamic of llvm-sys ^140.0.2

llvm15-0-force-dynamic = llvm15-0

Enables force-dynamic of llvm-sys ^150.0.3

llvm16-0-force-dynamic = llvm16-0

Enables force-dynamic of llvm-sys ^160.1.0

llvm17-0-force-dynamic = llvm17-0

Enables force-dynamic of llvm-sys ^170.0.1

llvm-sys:

Force dynamic linking.

llvm12-0-prefer-dynamic = llvm12-0

Prefer dynamic linking against LLVM libraries. See llvm-sys for more details

Enables prefer-dynamic of llvm-sys ^120.2.4

llvm13-0-prefer-dynamic = llvm13-0

Enables prefer-dynamic of llvm-sys ^130.0.4

llvm-sys:

Linking preference.
If none of these is selected, it defaults to force static linking to match the behaviour before this feature is introduced.
Prefer dynamic linking to LLVM library if possible.

llvm14-0-prefer-dynamic = llvm14-0

Enables prefer-dynamic of llvm-sys ^140.0.2

llvm15-0-prefer-dynamic = llvm15-0

Enables prefer-dynamic of llvm-sys ^150.0.3

llvm16-0-prefer-dynamic = llvm16-0

Enables prefer-dynamic of llvm-sys ^160.1.0

llvm17-0-prefer-dynamic = llvm17-0

Enables prefer-dynamic of llvm-sys ^170.0.1

llvm12-0-force-static = llvm12-0

Force static linking against LLVM libraries. See llvm-sys for more details

Enables force-static of llvm-sys ^120.2.4

llvm13-0-force-static = llvm13-0

Enables force-static of llvm-sys ^130.0.4

llvm14-0-force-static = llvm14-0

Enables force-static of llvm-sys ^140.0.2

llvm15-0-force-static = llvm15-0

Enables force-static of llvm-sys ^150.0.3

llvm16-0-force-static = llvm16-0

Enables force-static of llvm-sys ^160.1.0

llvm17-0-force-static = llvm17-0

Enables force-static of llvm-sys ^170.0.1

llvm-sys:

Force static linking

llvm12-0-prefer-static = llvm12-0

Prefer static linking against LLVM libraries. See llvm-sys for more details

Enables prefer-static of llvm-sys ^120.2.4

llvm13-0-prefer-static = llvm13-0

Enables prefer-static of llvm-sys ^130.0.4

llvm14-0-prefer-static = llvm14-0

Enables prefer-static of llvm-sys ^140.0.2

llvm15-0-prefer-static = llvm15-0

Enables prefer-static of llvm-sys ^150.0.3

llvm16-0-prefer-static = llvm16-0

Enables prefer-static of llvm-sys ^160.1.0

llvm17-0-prefer-static = llvm17-0

Enables prefer-static of llvm-sys ^170.0.1

llvm-sys:

Prefer static linking to LLVM library if possible.

no-libffi-linking

Don't force linking to libffi on non-windows platforms. Without this feature inkwell always links to libffi on non-windows platforms.

target-x86 target-arm target-mips target-all
target-aarch64 target-amdgpu target-all
target-systemz target-hexagon target-all
target-nvptx target-msp430 target-xcore target-all
target-powerpc target-sparc target-bpf target-all
target-lanai target-webassembly target-all
target-riscv target-loongarch target-all
target-syncvm
target-all default = target-aarch64, target-amdgpu, target-arm, target-bpf, target-hexagon, target-lanai, target-loongarch, target-mips, target-msp430, target-nvptx, target-powerpc, target-riscv, target-sparc, target-systemz, target-webassembly, target-x86, target-xcore
experimental = static-alloc

Affects execution_engine::experimental

nightly

Enables nightly of inkwell_internals

Features from optional dependencies

In crates that don't use the dep: syntax, optional dependencies automatically become Cargo features. These features may have been created by mistake, and this functionality may be removed in the future.

llvm-sys-40 llvm4-0? llvm4-0-no-llvm-linking?

Enables llvm-sys ^40.4

llvm-sys-50 llvm5-0? llvm5-0-no-llvm-linking?

Enables llvm-sys ^50.4

llvm-sys-60 llvm6-0? llvm6-0-no-llvm-linking?

Enables llvm-sys ^60.6

llvm-sys-70 llvm7-0? llvm7-0-no-llvm-linking?

Enables llvm-sys ^70.4

llvm-sys-80 llvm8-0? llvm8-0-no-llvm-linking?

Enables llvm-sys ^80.3

llvm-sys-90 llvm9-0? llvm9-0-no-llvm-linking?

Enables llvm-sys ^90.2.1

llvm-sys-100 llvm10-0? llvm10-0-no-llvm-linking?

Enables llvm-sys ^100.2.3

llvm-sys-110 llvm11-0? llvm11-0-no-llvm-linking?

Enables llvm-sys ^110.0.3

llvm-sys-120 llvm12-0? llvm12-0-force-dynamic? llvm12-0-force-static? llvm12-0-no-llvm-linking? llvm12-0-prefer-dynamic? llvm12-0-prefer-static?

Enables llvm-sys ^120.2.4

llvm-sys-130 llvm13-0? llvm13-0-force-dynamic? llvm13-0-force-static? llvm13-0-no-llvm-linking? llvm13-0-prefer-dynamic? llvm13-0-prefer-static?

Enables llvm-sys ^130.0.4

llvm-sys-140 llvm14-0? llvm14-0-force-dynamic? llvm14-0-force-static? llvm14-0-no-llvm-linking? llvm14-0-prefer-dynamic? llvm14-0-prefer-static?

Enables llvm-sys ^140.0.2

llvm-sys-150 llvm15-0? llvm15-0-force-dynamic? llvm15-0-force-static? llvm15-0-no-llvm-linking? llvm15-0-prefer-dynamic? llvm15-0-prefer-static?

Enables llvm-sys ^150.0.3

llvm-sys-160 llvm16-0? llvm16-0-force-dynamic? llvm16-0-force-static? llvm16-0-no-llvm-linking? llvm16-0-prefer-dynamic? llvm16-0-prefer-static?

Enables llvm-sys ^160.1.0

llvm-sys-170 llvm17-0? llvm17-0-force-dynamic? llvm17-0-force-static? llvm17-0-no-llvm-linking? llvm17-0-prefer-dynamic? llvm17-0-prefer-static?

Enables llvm-sys ^170.0.1

static-alloc experimental?