diff --git a/Cargo.toml b/Cargo.toml index c541dc9..4144a99 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,26 +2,38 @@ name = "rustbox" version = "0.6.2" authors = ["Greg Chapple "] -description = "A rust implementation of the termbox library" +description = "A Rust implementation of the Termbox library." repository = "https://github.com/gchp/rustbox" homepage = "https://github.com/gchp/rustbox" readme = "README.md" license = "MIT" -keywords = [ - "termbox", - "terminal", - "gui", -] -exclude = [ - "examples/*" -] +keywords = ["termbox", "terminal", "gui",] +exclude = ["examples/*"] [lib] name = "rustbox" [dependencies] bitflags = "0.2.1" -termbox-sys = "0.2.7" -gag = "0.1.6" num = "*" time = "*" + +[target.i686-unknown-linux-gnu.dependencies] +termbox-sys = "0.2.7" +gag = "0.1.6" + +[target.x86_64-unknown-linux-gnu.dependencies] +termbox-sys = "0.2.7" +gag = "0.1.6" + +[target.x86_64-apple-darwin.dependencies] +termbox-sys = "0.2.7" +gag = "0.1.6" + +[target.i686-pc-windows-gnu.dependencies] +winapi = "*" +kernel32-sys = "*" + +[target.x86_64-pc-windows-gnu.dependencies] +winapi = "*" +kernel32-sys = "*" diff --git a/src/lib.rs b/src/lib.rs new file mode 100644 index 0000000..2bb7db0 --- /dev/null +++ b/src/lib.rs @@ -0,0 +1,23 @@ +#![feature(libc)] +#![feature(optin_builtin_traits)] + +extern crate libc; +extern crate num; +extern crate time; + +#[macro_use] +extern crate bitflags; + +pub use rustbox::*; + +#[cfg(all(target_os="linux"))] +#[path="rustbox-c/mod.rs"] +pub mod rustbox; + +#[cfg(all(target_os="macos"))] +#[path="rustbox-c/mod.rs"] +pub mod rustbox; + +#[cfg(all(target_os="windows"))] +#[path="rustbox-pure/mod.rs"] +pub mod rustbox; diff --git a/src/keyboard.rs b/src/rustbox-c/keyboard.rs similarity index 100% rename from src/keyboard.rs rename to src/rustbox-c/keyboard.rs diff --git a/src/rustbox.rs b/src/rustbox-c/mod.rs similarity index 97% rename from src/rustbox.rs rename to src/rustbox-c/mod.rs index 34b893e..3ffdb21 100644 --- a/src/rustbox.rs +++ b/src/rustbox-c/mod.rs @@ -1,34 +1,24 @@ -#![feature(libc)] -#![feature(optin_builtin_traits)] - -extern crate gag; -extern crate libc; -extern crate num; -extern crate time; extern crate termbox_sys as termbox; -#[macro_use] extern crate bitflags; +extern crate gag; + +pub mod keyboard; +pub mod mouse; +pub use self::keyboard::Key; +pub use self::mouse::Mouse; +pub use self::running::running; pub use self::style::{Style, RB_BOLD, RB_UNDERLINE, RB_REVERSE, RB_NORMAL}; -use std::error::Error; -use std::fmt; -use std::io; -use std::char; -use std::default::Default; +use self::termbox::RawEvent; +use self::gag::Hold; +use std::default::Default; +use std::error::Error; +use std::{fmt, io, char}; use num::FromPrimitive; -use termbox::RawEvent; use libc::c_int; -use gag::Hold; use time::Duration; -pub mod keyboard; -pub mod mouse; - -pub use self::running::running; -pub use keyboard::Key; -pub use mouse::Mouse; - #[derive(Clone, Copy)] pub enum Event { KeyEventRaw(u8, u16, u32), diff --git a/src/mouse.rs b/src/rustbox-c/mouse.rs similarity index 100% rename from src/mouse.rs rename to src/rustbox-c/mouse.rs diff --git a/src/rustbox-pure/mod.rs b/src/rustbox-pure/mod.rs new file mode 100644 index 0000000..a35b4d7 --- /dev/null +++ b/src/rustbox-pure/mod.rs @@ -0,0 +1,2 @@ +extern crate winapi; +extern crate kernel32;