3 releases

0.1.2 Jan 18, 2023
0.1.1 Nov 12, 2022
0.1.0 Nov 11, 2022

#918 in Development tools

Download history 12892/week @ 2024-03-07 12444/week @ 2024-03-14 10798/week @ 2024-03-21 11373/week @ 2024-03-28 10191/week @ 2024-04-04 11600/week @ 2024-04-11 13454/week @ 2024-04-18 14790/week @ 2024-04-25 15519/week @ 2024-05-02 15478/week @ 2024-05-09 15774/week @ 2024-05-16 12490/week @ 2024-05-23 14415/week @ 2024-05-30 22304/week @ 2024-06-06 21686/week @ 2024-06-13 18297/week @ 2024-06-20

78,922 downloads per month
Used in 4 crates (2 directly)

MIT/Apache

19KB
276 lines

rb-sys-env

Helpers to integrate rb-sys into your high-level Ruby bindings library.

Features

  • Provides the neccesary Cargo configuration to ensure that Rust crates compile properly across all platforms
  • Sets useful rustc-cfg flags that you can use from your crate
  • Exposes all RbConfig::CONFIG values from rb-sys

Usage

Add this to your Cargo.toml:

[build-dependencies]
rb-sys-env = "0.1"

Then, in your crate's build.rs:

pub fn main() -> Result<(), Box<dyn std::error::Error>> {
    let _rb_env = rb_sys_env::activate()?;

    Ok(())
}

Available rustc-cfg

Here is an example of the rustc-cfg flags that are set by this crate:

  • #[cfg(ruby_have_ruby_re_h)]
  • #[cfg(ruby_use_rgengc)]
  • #[cfg(ruby_use_symbol_as_method_name)]
  • #[cfg(ruby_have_ruby_util_h)]
  • #[cfg(ruby_have_ruby_oniguruma_h)]
  • #[cfg(ruby_have_ruby_defines_h)]
  • #[cfg(ruby_use_flonum)]
  • #[cfg(ruby_have_ruby_onigmo_h)]
  • #[cfg(ruby_use_unaligned_member_access)]
  • #[cfg(ruby_use_transient_heap)]
  • #[cfg(ruby_have_ruby_atomic_h)]
  • #[cfg(ruby_have_rb_scan_args_optional_hash)]
  • #[cfg(ruby_have_rb_data_type_t_parent)]
  • #[cfg(ruby_have_ruby_debug_h)]
  • #[cfg(ruby_have_ruby_encoding_h)]
  • #[cfg(ruby_have_ruby_ruby_h)]
  • #[cfg(ruby_have_ruby_intern_h)]
  • #[cfg(ruby_use_mjit)]
  • #[cfg(ruby_have_rb_data_type_t_function)]
  • #[cfg(ruby_have_rb_fd_init)]
  • #[cfg(ruby_have_rb_reg_new_str)]
  • #[cfg(ruby_have_rb_io_t)]
  • #[cfg(ruby_have_ruby_memory_view_h)]
  • #[cfg(ruby_have_ruby_version_h)]
  • #[cfg(ruby_have_ruby_st_h)]
  • #[cfg(ruby_have_ruby_thread_native_h)]
  • #[cfg(ruby_have_ruby_random_h)]
  • #[cfg(ruby_have_ruby_regex_h)]
  • #[cfg(ruby_have_rb_define_alloc_func)]
  • #[cfg(ruby_have_ruby_fiber_scheduler_h)]
  • #[cfg(ruby_have_ruby_missing_h)]
  • #[cfg(ruby_have_rb_ext_ractor_safe)]
  • #[cfg(ruby_have_ruby_thread_h)]
  • #[cfg(ruby_have_ruby_vm_h)]
  • #[cfg(ruby_use_rincgc)]
  • #[cfg(ruby_have_ruby_ractor_h)]
  • #[cfg(ruby_have_ruby_io_h)]
  • #[cfg(ruby_3)]
  • #[cfg(ruby_3_1)]
  • #[cfg(ruby_3_1_2)]
  • #[cfg(ruby_gte_2_2)]
  • #[cfg(ruby_gt_2_2)]
  • #[cfg(ruby_gte_2_3)]
  • #[cfg(ruby_gt_2_3)]
  • #[cfg(ruby_gte_2_4)]
  • #[cfg(ruby_gt_2_4)]
  • #[cfg(ruby_gte_2_5)]
  • #[cfg(ruby_gt_2_5)]
  • #[cfg(ruby_gte_2_6)]
  • #[cfg(ruby_gt_2_6)]
  • #[cfg(ruby_gte_2_7)]
  • #[cfg(ruby_gt_2_7)]
  • #[cfg(ruby_gte_3_0)]
  • #[cfg(ruby_gt_3_0)]
  • #[cfg(ruby_lte_3_1)]
  • #[cfg(ruby_3_1)]
  • #[cfg(ruby_eq_3_1)]
  • #[cfg(ruby_gte_3_1)]
  • #[cfg(ruby_lt_3_2)]
  • #[cfg(ruby_lte_3_2)]
  • #[cfg(ruby_lt_3_3)]
  • #[cfg(ruby_lte_3_3)]
  • #[cfg(ruby_gte_1)]
  • #[cfg(ruby_gt_1)]
  • #[cfg(ruby_gte_2)]
  • #[cfg(ruby_gt_2)]
  • #[cfg(ruby_lte_3)]
  • #[cfg(ruby_3)]
  • #[cfg(ruby_eq_3)]
  • #[cfg(ruby_gte_3)]
  • #[cfg(ruby_lt_4)]
  • #[cfg(ruby_lte_4)]

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

No runtime deps