block-sys 0.2.1

Raw bindings to Apple's C language extension of blocks
Documentation
[package]
name = "block-sys"
# Remember to update `html_root_url` in lib.rs and the `links` key.
#
# Also, beware of using pre-release versions here, since because of the
# `links` key, two pre-releases requested with `=...` are incompatible.
version = "0.2.1"
authors = ["Mads Marquart <mads@marquart.dk>"]
edition = "2021"
rust-version = "1.60"

description = "Raw bindings to Apple's C language extension of blocks"
keywords = ["objective-c", "macos", "ios", "blocks", "sys"]
categories = [
    "external-ffi-bindings",
    # "no_std", # TODO
    "os::macos-apis",
]
repository = "https://github.com/madsmtm/objc2"
documentation = "https://docs.rs/block-sys/"
license = "MIT"

readme = "README.md"

# Downstream users can customize the linking!
# See https://doc.rust-lang.org/cargo/reference/build-scripts.html#overriding-build-scripts
links = "block_0_2"
build = "build.rs"

[features]
# The default runtime is Apple's. Other platforms will probably error if the
# correct feature flag is not specified.
default = ["std", "apple"]

# Currently not possible to turn off, put here for forwards compatibility.
std = ["alloc", "objc-sys?/std"]
alloc = ["objc-sys?/alloc"]

# Link to Apple's libclosure (exists in libSystem)
apple = []

# Link to libBlocksRuntime from compiler-rt
compiler-rt = []

# Link to GNUStep's libobjc2 (which contains the block implementation)
gnustep-1-7 = ["objc-sys", "objc-sys/gnustep-1-7"]
gnustep-1-8 = ["objc-sys/gnustep-1-8", "gnustep-1-7"]
gnustep-1-9 = ["objc-sys/gnustep-1-9", "gnustep-1-8"]
gnustep-2-0 = ["objc-sys/gnustep-2-0", "gnustep-1-9"]
gnustep-2-1 = ["objc-sys/gnustep-2-1", "gnustep-2-0"]

# Link to Microsoft's libobjc2
unstable-winobjc = ["objc-sys/unstable-winobjc", "gnustep-1-8"]

# Link to ObjFW
unstable-objfw = []

# Private
# Need `objc-sys` on certain platforms
unstable-docsrs = ["objc-sys", "objc-sys/unstable-docsrs"]

[dependencies]
objc-sys = { path = "../objc-sys", version = "0.3.2", default-features = false, optional = true }

[package.metadata.docs.rs]
default-target = "x86_64-apple-darwin"
no-default-features = true
features = ["std", "unstable-docsrs"]

targets = [
    # MacOS
    "x86_64-apple-darwin",
    "aarch64-apple-darwin",
    # "i686-apple-darwin",
    # iOS
    "aarch64-apple-ios",
    "x86_64-apple-ios",
    # "i386-apple-ios",
    # GNUStep
    "x86_64-unknown-linux-gnu",
    "i686-unknown-linux-gnu",
    # Windows
    "x86_64-pc-windows-msvc",
]