Skip to content

Using the master branch as a dependency and running the example is broken on M2. #36

@asibahi

Description

@asibahi

Hello.

My machine is a MacBook Air M2.

I am on the latest Rust release (1.75.0).

This is my dependencies section in Cargo.toml

[dependencies]
harfbuzz_rs = { git = "https://github.com/harfbuzz/harfbuzz_rs.git" }

I am using the example code given in the crate. Regardless, this is my code:

use std::error::Error;
use harfbuzz_rs::*;

fn main() -> Result<(), Box<dyn Error>> {
    let path =
        "/Users/abdulrahmansibahi/Documents/rust/mimiron/mimiron/fonts/YanoneKaffeesatz-Medium.ttf";
    let index = 0; //< face index in the font file
    let face = Face::from_file(path, index)?;
    let font = Font::new(face);

    let buffer = UnicodeBuffer::new().add_str("Hello World!");
    let output = shape(&font, buffer, &[]);

    let positions = output.get_glyph_positions();
    let infos = output.get_glyph_infos();

    for (position, info) in positions.iter().zip(infos) {
        let gid = info.codepoint;
        let cluster = info.cluster;
        let x_advance = position.x_advance;
        let x_offset = position.x_offset;
        let y_offset = position.y_offset;        

        println!(
            "gid: {:?}. cluster: {:?}. x_advance: {:?}, x_offset: {:?} y_offset: {:?}",
            gid, cluster, x_advance, x_offset, y_offset
        );
    }

    Ok(())
}

And this is the error I get :

error.txt

I asked in the Rust Community Discord server and it apparently works on other, non-Apple, systems. I haven't tried myself as I .. don't have other systems.

This same code works on the Crates.io version.

Edit: This is the last good commit that works for me : 15d1c2a , pre removing the harfbuzz_sys crate as a dependency.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions