/* This Source Code Form is subject to the terms of the Mozilla Public *License,v.2.0.IfacopyoftheMPLwasnotdistributedwiththis
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
use mozbuild::config::BINDGEN_SYSTEM_FLAGS as CFLAGS;
fn main() { // Ignore BINDGEN_SYSTEM_FLAGS' -std=gnu++## flag. cocoabind parses Cocoa.h // with `-x objective-c` and bindgen/libclang rejects `-std=gnu++##` (and // `-std=c++##`) as incompatible with Objective-C. let cflags: Vec<&str> = CFLAGS
.iter()
.copied()
.filter(|flag| !flag.starts_with("-std=gnu++") && !flag.starts_with("-std=c++"))
.collect();
letmut builder = bindgen::Builder::default()
.header_contents( "cocoa_bindings.h", "#define self self_ #import <Cocoa/Cocoa.h> ",
)
.generate_block(true)
.prepend_enum_name(false)
.clang_args(cflags)
.clang_args(["-x", "objective-c"])
.clang_arg("-fblocks")
.derive_default(true)
.allowlist_item("TransformProcessType");
for name in TYPES { // (I|P) covers generated traits (interfaces and protocols). `(_.*)?` covers categories // (which are generated as `CLASS_CATEGORY`).
builder = builder.allowlist_item(format!("(I|P)?NS{name}(_.*)?"));
} let bindings = builder
.generate()
.expect("unable to generate cocoa bindings"); let out_path = std::path::PathBuf::from(std::env::var("OUT_DIR").unwrap());
bindings
.write_to_file(out_path.join("cocoa_bindings.rs"))
.expect("failed to write cocoa bindings");
println!("cargo:rustc-link-lib=framework=AppKit");
println!("cargo:rustc-link-lib=framework=Cocoa");
println!("cargo:rustc-link-lib=framework=Foundation");
}
Messung V0.5 in Prozent
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.9Bemerkung:
(vorverarbeitet am 2026-10-11)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.