aboutsummaryrefslogtreecommitdiffstats
path: root/build.rs
diff options
context:
space:
mode:
Diffstat (limited to 'build.rs')
-rw-r--r--build.rs68
1 files changed, 68 insertions, 0 deletions
diff --git a/build.rs b/build.rs
new file mode 100644
index 0000000..166c223
--- /dev/null
+++ b/build.rs
@@ -0,0 +1,68 @@
+extern crate gl_generator;
+extern crate khronos_api;
+
+use std::os;
+use std::io::File;
+
+fn main() {
+ let target = os::getenv("TARGET").unwrap();
+ let dest = Path::new(os::getenv("OUT_DIR").unwrap());
+
+ if target.contains("windows") {
+ let mut file = File::create(&dest.join("wgl_bindings.rs")).unwrap();
+ gl_generator::generate_bindings(gl_generator::StaticGenerator,
+ gl_generator::registry::Ns::Wgl,
+ khronos_api::WGL_XML, vec![],
+ "1.0", "core", &mut file).unwrap();
+
+ let mut file = File::create(&dest.join("wgl_extra_bindings.rs")).unwrap();
+ gl_generator::generate_bindings(gl_generator::StructGenerator,
+ gl_generator::registry::Ns::Wgl,
+ khronos_api::WGL_XML,
+ vec![
+ "WGL_ARB_create_context".to_string(),
+ "WGL_EXT_swap_control".to_string()
+ ],
+ "1.0", "core", &mut file).unwrap();
+ }
+
+ if target.contains("linux") {
+ let mut file = File::create(&dest.join("glx_bindings.rs")).unwrap();
+ gl_generator::generate_bindings(gl_generator::StaticGenerator,
+ gl_generator::registry::Ns::Glx,
+ khronos_api::GLX_XML, vec![],
+ "1.4", "core", &mut file).unwrap();
+
+ let mut file = File::create(&dest.join("glx_extra_bindings.rs")).unwrap();
+ gl_generator::generate_bindings(gl_generator::StructGenerator,
+ gl_generator::registry::Ns::Glx,
+ khronos_api::GLX_XML,
+ vec![
+ "GLX_ARB_create_context".to_string(),
+ ],
+ "1.4", "core", &mut file).unwrap();
+ }
+
+ if target.contains("android") {
+ let mut file = File::create(&dest.join("egl_bindings.rs")).unwrap();
+ gl_generator::generate_bindings(gl_generator::StaticGenerator,
+ gl_generator::registry::Ns::Egl,
+ khronos_api::EGL_XML, vec![],
+ "1.5", "core", &mut file).unwrap();
+ }
+
+
+ // TODO: only build the bindings below if we run tests/examples
+
+ let mut file = File::create(&dest.join("test_gl_bindings.rs")).unwrap();
+ gl_generator::generate_bindings(gl_generator::StructGenerator,
+ gl_generator::registry::Ns::Gl,
+ khronos_api::GL_XML, vec![],
+ "1.1", "core", &mut file).unwrap();
+
+ let mut file = File::create(&dest.join("test_gles1_bindings.rs")).unwrap();
+ gl_generator::generate_bindings(gl_generator::StructGenerator,
+ gl_generator::registry::Ns::Gles1,
+ khronos_api::GL_XML, vec![],
+ "1.1", "core", &mut file).unwrap();
+}