Cargo Features

[dependencies]
block2 = { version = "0.5.0", default-features = false, features = ["std", "alloc", "apple", "compiler-rt", "gnustep-1-7", "gnustep-1-8", "gnustep-1-9", "gnustep-2-0", "gnustep-2-1", "unstable-winobjc", "unstable-objfw", "unstable-private", "unstable-docsrs"] }
default = apple, std

The default runtime is Apple's. Other platforms will probably error if the correct feature flag is not specified.

std default = alloc

Currently not possible to turn off, put here for forwards compatibility.

Enables std of objc2

alloc std

Enables alloc of objc2

apple default

Link to Apple's libclosure (exists in libSystem).

Enables apple of objc2

Affects ffi::private._Block_use_stret, ffi::private._Block_layout, ffi::private._Block_extended_layout, ffi::private._Block_tryRetain, ffi::private._Block_isDeallocating, ffi::private._NSConcreteAutoBlock, ffi::private._NSConcreteFinalizingBlock, ffi::private._NSConcreteWeakBlockVariable, ffi::private.Block_size, ffi::private._Block_has_signature, ffi::private._Block_signature

compiler-rt

Link to libBlocksRuntime from compiler-rt.
TODO: fix this

Enables unstable-compiler-rt of objc2

Affects ffi::private._NSConcreteAutoBlock, ffi::private._NSConcreteFinalizingBlock, ffi::private._NSConcreteWeakBlockVariable, ffi::private.Block_size

gnustep-1-7 gnustep-1-8?

Link to GNUStep's libobjc2 (which contains the block implementation).

Enables gnustep-1-7 of objc2

Affects ffi::private._Block_has_signature, ffi::private._Block_signature

gnustep-1-8 gnustep-1-9? unstable-winobjc? = gnustep-1-7

Enables gnustep-1-8 of objc2

gnustep-1-9 gnustep-2-0? = gnustep-1-8

Enables gnustep-1-9 of objc2

gnustep-2-0 gnustep-2-1? = gnustep-1-9

Enables gnustep-2-0 of objc2

gnustep-2-1 = gnustep-2-0

Enables gnustep-2-1 of objc2

unstable-winobjc = gnustep-1-8

Link to Microsoft's libobjc2.

unstable-objfw

Link to ObjFW.

unstable-private

Expose private ffi functions and statics.

unstable-docsrs

For better documentation on docs.rs.