#build-system #native #running #fork #instructions #ninja #meson

build meson-next

A build dependency crate for running Meson to build a native library

10 stable releases

Uses old Rust 2015

1.2.3 Jun 11, 2024
1.2.2 Dec 26, 2022
1.0.1 Nov 27, 2022

#174 in Build Utils

Download history 74/week @ 2024-07-26 47/week @ 2024-08-02 11/week @ 2024-08-09 34/week @ 2024-08-16 57/week @ 2024-08-23 54/week @ 2024-08-30 89/week @ 2024-09-06 75/week @ 2024-09-13 19/week @ 2024-09-20 18/week @ 2024-09-27 12/week @ 2024-10-04 9/week @ 2024-10-11 4/week @ 2024-10-18 10/week @ 2024-10-25 26/week @ 2024-11-01 70/week @ 2024-11-08

111 downloads per month
Used in 2 crates (via libvmaf-sys)

MIT license

7KB
86 lines

Rust meson-next crate

A build dependency crate for running Meson to build a native library.

This crate is a simple wrapper that invokes the system's meson binary.

Ensure you have both meson and ninja installed. Refer to Meson's manual for specific install instructions for your OS.

This crate is a fork of meson 1.0 by dovee, which is abandoned.

Build Example

.
├── build.rs
├── Cargo.toml
├── clib
│   ├── meson.build
│   ├── squid.h
│   └── squid.c
└── src
    └── lib.rs

build.rs:

extern crate meson_next as meson;
use std::env;
use std::path::PathBuf;

fn main() {
    let build_path = PathBuf::from(env::var("OUT_DIR").unwrap());
    build_path.join("build");
    let build_path = build_path.to_str().unwrap();

    let mut options = HashMap::new();
    options.insert("key", "value");

    let config = meson::Config::new().options(options);

    println!("cargo:rustc-link-lib=squid");
    println!("cargo:rustc-link-search=native={}", build_path);
    meson::build("clib", build_path, config);
}

Cargo.toml:

# ...

[build-dependencies]
meson-next = "1"

meson.build:

project('squid', 'c')
shared_library('squid', 'squid.c')

No runtime deps