aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Neumann <mneumann@ntecs.de>2015-08-29 22:54:17 +0200
committerMichael Neumann <mneumann@ntecs.de>2015-08-30 13:52:09 +0200
commitb707959c2c0ae97c2225c2e6dbc07fc754125458 (patch)
treebd9b70c965bd0edbf2a96c1be7ecc4c440488c87
parentb8b1b80631e1335a7ab747f34e1c67dfa0790a10 (diff)
downloadglutin-b707959c2c0ae97c2225c2e6dbc07fc754125458.tar.gz
glutin-b707959c2c0ae97c2225c2e6dbc07fc754125458.zip
Make it work on DragonFly/FreeBSD
Tested on DragonFly BSD. Should work similarily on FreeBSD.
-rw-r--r--Cargo.toml14
-rw-r--r--build.rs2
-rw-r--r--src/api/dlopen.rs2
-rw-r--r--src/api/egl/ffi.rs2
-rw-r--r--src/api/egl/mod.rs3
-rw-r--r--src/api/glx/mod.rs2
-rw-r--r--src/api/osmesa/mod.rs2
-rw-r--r--src/api/wayland/mod.rs2
-rw-r--r--src/api/x11/mod.rs2
-rw-r--r--src/lib.rs2
-rw-r--r--src/platform/linux/mod.rs2
-rw-r--r--src/platform/mod.rs6
12 files changed, 30 insertions, 11 deletions
diff --git a/Cargo.toml b/Cargo.toml
index a952eea..5662754 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -108,3 +108,17 @@ wayland-client = { version = "0.2.1", features = ["egl", "dlopen"] }
wayland-kbd = "0.2.0"
wayland-window = "0.1.0"
x11-dl = "~2.0"
+
+[target.x86_64-unknown-dragonfly.dependencies]
+osmesa-sys = "0.0.5"
+wayland-client = { version = "0.2.1", features = ["egl", "dlopen"] }
+wayland-kbd = "0.2.0"
+wayland-window = "0.1.0"
+x11-dl = "~2.0"
+
+[target.x86_64-unknown-freebsd.dependencies]
+osmesa-sys = "0.0.5"
+wayland-client = { version = "0.2.1", features = ["egl", "dlopen"] }
+wayland-kbd = "0.2.0"
+wayland-window = "0.1.0"
+x11-dl = "~2.0"
diff --git a/build.rs b/build.rs
index e15d270..b8d3fb6 100644
--- a/build.rs
+++ b/build.rs
@@ -59,7 +59,7 @@ fn main() {
"1.5", "core", &mut file).unwrap();
}
- if target.contains("linux") {
+ if target.contains("linux") || target.contains("dragonfly") || target.contains("freebsd") {
let mut file = File::create(&dest.join("glx_bindings.rs")).unwrap();
gl_generator::generate_bindings(gl_generator::StructGenerator,
gl_generator::registry::Ns::Glx,
diff --git a/src/api/dlopen.rs b/src/api/dlopen.rs
index 945dfb0..1bb2a0a 100644
--- a/src/api/dlopen.rs
+++ b/src/api/dlopen.rs
@@ -1,4 +1,4 @@
-#![cfg(target_os = "linux")]
+#![cfg(any(target_os = "linux", target_os = "dragonfly", target_os = "freebsd"))]
#![allow(dead_code)]
use libc;
diff --git a/src/api/egl/ffi.rs b/src/api/egl/ffi.rs
index 6a81ada..ae02e30 100644
--- a/src/api/egl/ffi.rs
+++ b/src/api/egl/ffi.rs
@@ -33,3 +33,5 @@ pub type EGLNativeWindowType = winapi::HWND;
pub type EGLNativeWindowType = *const libc::c_void;
#[cfg(target_os = "android")]
pub type EGLNativeWindowType = *const libc::c_void;
+#[cfg(any(target_os = "dragonfly", target_os = "freebsd"))]
+pub type EGLNativeWindowType = *const libc::c_void;
diff --git a/src/api/egl/mod.rs b/src/api/egl/mod.rs
index 32902e5..4cd7a7c 100644
--- a/src/api/egl/mod.rs
+++ b/src/api/egl/mod.rs
@@ -1,4 +1,5 @@
-#![cfg(any(target_os = "windows", target_os = "linux", target_os = "android"))]
+#![cfg(any(target_os = "windows", target_os = "linux", target_os = "android",
+ target_os = "dragonfly", target_os = "freebsd"))]
#![allow(unused_variables)]
use BuilderAttribs;
diff --git a/src/api/glx/mod.rs b/src/api/glx/mod.rs
index 72bdf03..0b2cf9f 100644
--- a/src/api/glx/mod.rs
+++ b/src/api/glx/mod.rs
@@ -1,4 +1,4 @@
-#![cfg(all(target_os = "linux", feature = "window"))]
+#![cfg(all(any(target_os = "linux", target_os = "dragonfly", target_os = "freebsd"), feature = "window"))]
use BuilderAttribs;
use ContextError;
diff --git a/src/api/osmesa/mod.rs b/src/api/osmesa/mod.rs
index 056e2d1..9bd24b6 100644
--- a/src/api/osmesa/mod.rs
+++ b/src/api/osmesa/mod.rs
@@ -1,4 +1,4 @@
-#![cfg(any(target_os = "linux", target_os = "freebsd"))]
+#![cfg(any(target_os = "linux", target_os = "freebsd", target_os = "dragonfly"))]
extern crate osmesa_sys;
diff --git a/src/api/wayland/mod.rs b/src/api/wayland/mod.rs
index 0381f31..b46e2d1 100644
--- a/src/api/wayland/mod.rs
+++ b/src/api/wayland/mod.rs
@@ -1,4 +1,4 @@
-#![cfg(target_os = "linux")]
+#![cfg(any(target_os = "linux", target_os = "dragonfly", target_os = "freebsd"))]
#![allow(unused_variables, dead_code)]
use self::wayland::egl::{EGLSurface, is_egl_available};
diff --git a/src/api/x11/mod.rs b/src/api/x11/mod.rs
index 1ba6bc7..39b99f3 100644
--- a/src/api/x11/mod.rs
+++ b/src/api/x11/mod.rs
@@ -1,4 +1,4 @@
-#![cfg(all(target_os = "linux", feature = "window"))]
+#![cfg(all(any(target_os = "linux", target_os = "dragonfly", target_os = "freebsd"), feature = "window"))]
pub use self::monitor::{MonitorID, get_available_monitors, get_primary_monitor};
pub use self::window::{Window, XWindow, PollEventsIterator, WaitEventsIterator, Context, WindowProxy};
diff --git a/src/lib.rs b/src/lib.rs
index 49b8d9a..94cd445 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -55,7 +55,7 @@ extern crate cocoa;
extern crate core_foundation;
#[cfg(target_os = "macos")]
extern crate core_graphics;
-#[cfg(any(target_os = "linux", target_os = "freebsd"))]
+#[cfg(any(target_os = "linux", target_os = "freebsd", target_os = "dragonfly"))]
extern crate x11_dl;
pub use events::*;
diff --git a/src/platform/linux/mod.rs b/src/platform/linux/mod.rs
index fc42f18..3525ce5 100644
--- a/src/platform/linux/mod.rs
+++ b/src/platform/linux/mod.rs
@@ -1,4 +1,4 @@
-#![cfg(target_os = "linux")]
+#![cfg(any(target_os = "linux", target_os = "dragonfly", target_os = "freebsd"))]
use Api;
use BuilderAttribs;
diff --git a/src/platform/mod.rs b/src/platform/mod.rs
index c4b2265..4855765 100644
--- a/src/platform/mod.rs
+++ b/src/platform/mod.rs
@@ -3,7 +3,7 @@ pub use self::platform::*;
#[cfg(target_os = "windows")]
#[path="windows/mod.rs"]
mod platform;
-#[cfg(target_os = "linux")]
+#[cfg(any(target_os = "linux", target_os = "dragonfly", target_os = "freebsd"))]
#[path="linux/mod.rs"]
mod platform;
#[cfg(target_os = "macos")]
@@ -16,5 +16,7 @@ mod platform;
#[path="ios/mod.rs"]
mod platform;
-#[cfg(all(not(target_os = "ios"), not(target_os = "windows"), not(target_os = "linux"), not(target_os = "macos"), not(target_os = "android")))]
+#[cfg(all(not(target_os = "ios"), not(target_os = "windows"), not(target_os = "linux"),
+ not(target_os = "macos"), not(target_os = "android"), not(target_os = "dragonfly"),
+ not(target_os = "freebsd")))]
use this_platform_is_not_supported;