From 37a44bae689d5bfa434233bb7d1adf241b6cdbaa Mon Sep 17 00:00:00 2001 From: Wesley Moore Date: Fri, 27 Jun 2025 14:32:23 +1000 Subject: [PATCH] quartz opt-in --- cairo/Cargo.toml | 1 + cairo/src/lib.rs | 4 ++-- cairo/sys/Cargo.toml | 1 + cairo/sys/src/lib.rs | 12 ++++++------ 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/cairo/Cargo.toml b/cairo/Cargo.toml index 256011f06294..c9d531a0b8be 100644 --- a/cairo/Cargo.toml +++ b/cairo/Cargo.toml @@ -29,6 +29,7 @@ freetype = ["cairo-sys-rs/freetype", "freetype-rs"] script = ["cairo-sys-rs/script"] xcb = ["cairo-sys-rs/xcb"] xlib = ["cairo-sys-rs/xlib"] +quartz-surface = ["cairo-sys-rs/quartz-surface"] win32-surface = ["cairo-sys-rs/win32-surface"] [dependencies.glib] diff --git a/cairo/src/lib.rs b/cairo/src/lib.rs index 7d0761a5c104..ea4fba19177b 100644 --- a/cairo/src/lib.rs +++ b/cairo/src/lib.rs @@ -282,9 +282,9 @@ mod ps; #[cfg(feature = "svg")] mod svg; -#[cfg(target_os = "macos")] +#[cfg(all(target_os = "macos", feature = "quartz-surface"))] mod quartz_surface; -#[cfg(target_os = "macos")] +#[cfg(all(target_os = "macos", feature = "quartz-surface"))] pub use quartz_surface::QuartzSurface; #[cfg(all(windows, feature = "win32-surface"))] diff --git a/cairo/sys/Cargo.toml b/cairo/sys/Cargo.toml index 266da5695249..e6eaf5e8f4d7 100644 --- a/cairo/sys/Cargo.toml +++ b/cairo/sys/Cargo.toml @@ -48,6 +48,7 @@ freetype = [] script = [] xcb = [] use_glib = ["glib-sys"] +quartz-surface = [] win32-surface = ["windows-sys"] [dependencies] diff --git a/cairo/sys/src/lib.rs b/cairo/sys/src/lib.rs index 10fa765b4294..28e7b49e3d34 100644 --- a/cairo/sys/src/lib.rs +++ b/cairo/sys/src/lib.rs @@ -1496,22 +1496,22 @@ extern "C" { #[cfg_attr(docsrs, doc(cfg(all(windows, feature = "win32-surface"))))] pub fn cairo_win32_surface_get_image(surface: *mut cairo_surface_t) -> *mut cairo_surface_t; - #[cfg(target_os = "macos")] - #[cfg_attr(docsrs, doc(cfg(target_os = "macos")))] + #[cfg(all(target_os = "macos", feature = "quartz-surface"))] + #[cfg_attr(docsrs, doc(cfg(all(target_os = "macos", feature = "quartz-surface"))))] pub fn cairo_quartz_surface_create( format: cairo_format_t, width: c_uint, height: c_uint, ) -> *mut cairo_surface_t; - #[cfg(target_os = "macos")] - #[cfg_attr(docsrs, doc(cfg(target_os = "macos")))] + #[cfg(all(target_os = "macos", feature = "quartz-surface"))] + #[cfg_attr(docsrs, doc(cfg(all(target_os = "macos", feature = "quartz-surface"))))] pub fn cairo_quartz_surface_create_for_cg_context( cg_context: CGContextRef, width: c_uint, height: c_uint, ) -> *mut cairo_surface_t; - #[cfg(target_os = "macos")] - #[cfg_attr(docsrs, doc(cfg(target_os = "macos")))] + #[cfg(all(target_os = "macos", feature = "quartz-surface"))] + #[cfg_attr(docsrs, doc(cfg(all(target_os = "macos", feature = "quartz-surface"))))] pub fn cairo_quartz_surface_get_cg_context(surface: *mut cairo_surface_t) -> CGContextRef; // CAIRO SCRIPT