Merge pull request #749 from bjz/update-gl_generator

Update gl_generator to v0.5
This commit is contained in:
tomaka 2016-03-24 07:31:47 +01:00
commit 261a3ef6b5
2 changed files with 102 additions and 143 deletions

View file

@ -16,8 +16,7 @@ libc = "0.2"
shared_library = "0.1.0" shared_library = "0.1.0"
[build-dependencies] [build-dependencies]
gl_generator = "0.4" gl_generator = "0.5"
khronos_api = "1.0"
[target.arm-linux-androideabi.dependencies.android_glue] [target.arm-linux-androideabi.dependencies.android_glue]
version = "0.1" version = "0.1"

242
build.rs
View file

@ -1,6 +1,6 @@
extern crate gl_generator; extern crate gl_generator;
extern crate khronos_api;
use gl_generator::{Registry, Api, Profile, Fallbacks};
use std::env; use std::env;
use std::fs::File; use std::fs::File;
use std::path::PathBuf; use std::path::PathBuf;
@ -13,175 +13,135 @@ fn main() {
if target.contains("windows") { if target.contains("windows") {
let mut file = File::create(&dest.join("wgl_bindings.rs")).unwrap(); let mut file = File::create(&dest.join("wgl_bindings.rs")).unwrap();
gl_generator::generate_bindings(gl_generator::StaticGenerator, Registry::new(Api::Wgl, (1, 0), Profile::Core, Fallbacks::All, [])
gl_generator::registry::Ns::Wgl, .write_bindings(gl_generator::StaticGenerator, &mut file)
gl_generator::Fallbacks::All, .unwrap();
khronos_api::WGL_XML, vec![],
"1.0", "core", &mut file).unwrap();
let mut file = File::create(&dest.join("wgl_extra_bindings.rs")).unwrap(); let mut file = File::create(&dest.join("wgl_extra_bindings.rs")).unwrap();
gl_generator::generate_bindings(gl_generator::StructGenerator, Registry::new(Api::Wgl, (1, 0), Profile::Core, Fallbacks::All, [
gl_generator::registry::Ns::Wgl, "WGL_ARB_create_context",
gl_generator::Fallbacks::All, "WGL_ARB_create_context_profile",
khronos_api::WGL_XML, "WGL_ARB_create_context_robustness",
vec![ "WGL_ARB_context_flush_control",
"WGL_ARB_create_context".to_string(), "WGL_ARB_extensions_string",
"WGL_ARB_create_context_profile".to_string(), "WGL_ARB_framebuffer_sRGB",
"WGL_ARB_create_context_robustness".to_string(), "WGL_ARB_multisample",
"WGL_ARB_context_flush_control".to_string(), "WGL_ARB_pixel_format",
"WGL_ARB_extensions_string".to_string(), "WGL_ARB_pixel_format_float",
"WGL_ARB_framebuffer_sRGB".to_string(), "WGL_EXT_create_context_es2_profile",
"WGL_ARB_multisample".to_string(), "WGL_EXT_extensions_string",
"WGL_ARB_pixel_format".to_string(), "WGL_EXT_framebuffer_sRGB",
"WGL_ARB_pixel_format_float".to_string(), "WGL_EXT_swap_control",
"WGL_EXT_create_context_es2_profile".to_string(), ])
"WGL_EXT_extensions_string".to_string(), .write_bindings(gl_generator::StructGenerator, &mut file).unwrap();
"WGL_EXT_framebuffer_sRGB".to_string(),
"WGL_EXT_swap_control".to_string(),
],
"1.0", "core", &mut file).unwrap();
let mut file = File::create(&dest.join("egl_bindings.rs")).unwrap(); let mut file = File::create(&dest.join("egl_bindings.rs")).unwrap();
gl_generator::generate_bindings(gl_generator::StructGenerator, Registry::new(Api::Egl, (1, 5), Profile::Core, Fallbacks::All, [
gl_generator::registry::Ns::Egl, "EGL_KHR_create_context",
gl_generator::Fallbacks::All, "EGL_EXT_create_context_robustness",
khronos_api::EGL_XML, "EGL_KHR_create_context_no_error",
vec![ "EGL_KHR_platform_x11",
"EGL_KHR_create_context".to_string(), "EGL_KHR_platform_android",
"EGL_EXT_create_context_robustness".to_string(), "EGL_KHR_platform_wayland",
"EGL_KHR_create_context_no_error".to_string(), "EGL_KHR_platform_gbm",
"EGL_KHR_platform_x11".to_string(), "EGL_EXT_platform_base",
"EGL_KHR_platform_android".to_string(), "EGL_EXT_platform_x11",
"EGL_KHR_platform_wayland".to_string(), "EGL_MESA_platform_gbm",
"EGL_KHR_platform_gbm".to_string(), "EGL_EXT_platform_wayland",
"EGL_EXT_platform_base".to_string(), "EGL_EXT_platform_device",
"EGL_EXT_platform_x11".to_string(), ])
"EGL_MESA_platform_gbm".to_string(), .write_bindings(gl_generator::StructGenerator, &mut file).unwrap();
"EGL_EXT_platform_wayland".to_string(),
"EGL_EXT_platform_device".to_string(),
],
"1.5", "core", &mut file).unwrap();
} }
if target.contains("linux") || target.contains("dragonfly") || target.contains("freebsd") || target.contains("openbsd") { if target.contains("linux") || target.contains("dragonfly") || target.contains("freebsd") || target.contains("openbsd") {
let mut file = File::create(&dest.join("glx_bindings.rs")).unwrap(); let mut file = File::create(&dest.join("glx_bindings.rs")).unwrap();
gl_generator::generate_bindings(gl_generator::StructGenerator, Registry::new(Api::Glx, (1, 4), Profile::Core, Fallbacks::All, [])
gl_generator::registry::Ns::Glx, .write_bindings(gl_generator::StructGenerator, &mut file).unwrap();
gl_generator::Fallbacks::All,
khronos_api::GLX_XML, vec![],
"1.4", "core", &mut file).unwrap();
let mut file = File::create(&dest.join("glx_extra_bindings.rs")).unwrap(); let mut file = File::create(&dest.join("glx_extra_bindings.rs")).unwrap();
gl_generator::generate_bindings(gl_generator::StructGenerator, Registry::new(Api::Glx, (1, 4), Profile::Core, Fallbacks::All, [
gl_generator::registry::Ns::Glx, "GLX_ARB_create_context",
gl_generator::Fallbacks::All, "GLX_ARB_create_context_profile",
khronos_api::GLX_XML, "GLX_ARB_create_context_robustness",
vec![ "GLX_ARB_context_flush_control",
"GLX_ARB_create_context".to_string(), "GLX_ARB_fbconfig_float",
"GLX_ARB_create_context_profile".to_string(), "GLX_ARB_framebuffer_sRGB",
"GLX_ARB_create_context_robustness".to_string(), "GLX_EXT_framebuffer_sRGB",
"GLX_ARB_context_flush_control".to_string(), "GLX_ARB_multisample",
"GLX_ARB_fbconfig_float".to_string(), "GLX_EXT_swap_control",
"GLX_ARB_framebuffer_sRGB".to_string(), "GLX_SGI_swap_control"
"GLX_EXT_framebuffer_sRGB".to_string(), ])
"GLX_ARB_multisample".to_string(), .write_bindings(gl_generator::StructGenerator, &mut file).unwrap();
"GLX_EXT_swap_control".to_string(),
"GLX_SGI_swap_control".to_string()
],
"1.4", "core", &mut file).unwrap();
let mut file = File::create(&dest.join("egl_bindings.rs")).unwrap(); let mut file = File::create(&dest.join("egl_bindings.rs")).unwrap();
gl_generator::generate_bindings(gl_generator::StructGenerator, Registry::new(Api::Egl, (1, 5), Profile::Core, Fallbacks::All, [
gl_generator::registry::Ns::Egl, "EGL_KHR_create_context",
gl_generator::Fallbacks::All, "EGL_EXT_create_context_robustness",
khronos_api::EGL_XML, "EGL_KHR_create_context_no_error",
vec![ "EGL_KHR_platform_x11",
"EGL_KHR_create_context".to_string(), "EGL_KHR_platform_android",
"EGL_EXT_create_context_robustness".to_string(), "EGL_KHR_platform_wayland",
"EGL_KHR_create_context_no_error".to_string(), "EGL_KHR_platform_gbm",
"EGL_KHR_platform_x11".to_string(), "EGL_EXT_platform_base",
"EGL_KHR_platform_android".to_string(), "EGL_EXT_platform_x11",
"EGL_KHR_platform_wayland".to_string(), "EGL_MESA_platform_gbm",
"EGL_KHR_platform_gbm".to_string(), "EGL_EXT_platform_wayland",
"EGL_EXT_platform_base".to_string(), "EGL_EXT_platform_device",
"EGL_EXT_platform_x11".to_string(), ])
"EGL_MESA_platform_gbm".to_string(), .write_bindings(gl_generator::StructGenerator, &mut file).unwrap();
"EGL_EXT_platform_wayland".to_string(),
"EGL_EXT_platform_device".to_string(),
],
"1.5", "core", &mut file).unwrap();
} }
if target.contains("android") { if target.contains("android") {
let mut file = File::create(&dest.join("egl_bindings.rs")).unwrap(); let mut file = File::create(&dest.join("egl_bindings.rs")).unwrap();
gl_generator::generate_bindings(gl_generator::StaticStructGenerator, Registry::new(Api::Egl, (1, 5), Profile::Core, Fallbacks::All, [
gl_generator::registry::Ns::Egl, "EGL_KHR_create_context",
gl_generator::Fallbacks::All, "EGL_EXT_create_context_robustness",
khronos_api::EGL_XML, "EGL_KHR_create_context_no_error",
vec![ "EGL_KHR_platform_x11",
"EGL_KHR_create_context".to_string(), "EGL_KHR_platform_android",
"EGL_EXT_create_context_robustness".to_string(), "EGL_KHR_platform_wayland",
"EGL_KHR_create_context_no_error".to_string(), "EGL_KHR_platform_gbm",
"EGL_KHR_platform_x11".to_string(), "EGL_EXT_platform_base",
"EGL_KHR_platform_android".to_string(), "EGL_EXT_platform_x11",
"EGL_KHR_platform_wayland".to_string(), "EGL_MESA_platform_gbm",
"EGL_KHR_platform_gbm".to_string(), "EGL_EXT_platform_wayland",
"EGL_EXT_platform_base".to_string(), "EGL_EXT_platform_device",
"EGL_EXT_platform_x11".to_string(), ])
"EGL_MESA_platform_gbm".to_string(), .write_bindings(gl_generator::StaticStructGenerator, &mut file).unwrap();
"EGL_EXT_platform_wayland".to_string(),
"EGL_EXT_platform_device".to_string(),
],
"1.5", "core", &mut file).unwrap();
} }
if target.contains("ios") { if target.contains("ios") {
let mut file = File::create(&dest.join("egl_bindings.rs")).unwrap(); let mut file = File::create(&dest.join("egl_bindings.rs")).unwrap();
gl_generator::generate_bindings(gl_generator::StaticStructGenerator, Registry::new(Api::Egl, (1, 5), Profile::Core, Fallbacks::All, [
gl_generator::registry::Ns::Egl, "EGL_KHR_create_context",
gl_generator::Fallbacks::All, "EGL_EXT_create_context_robustness",
khronos_api::EGL_XML, "EGL_KHR_create_context_no_error",
vec![ "EGL_KHR_platform_x11",
"EGL_KHR_create_context".to_string(), "EGL_KHR_platform_android",
"EGL_EXT_create_context_robustness".to_string(), "EGL_KHR_platform_wayland",
"EGL_KHR_create_context_no_error".to_string(), "EGL_KHR_platform_gbm",
"EGL_KHR_platform_x11".to_string(), "EGL_EXT_platform_base",
"EGL_KHR_platform_android".to_string(), "EGL_EXT_platform_x11",
"EGL_KHR_platform_wayland".to_string(), "EGL_MESA_platform_gbm",
"EGL_KHR_platform_gbm".to_string(), "EGL_EXT_platform_wayland",
"EGL_EXT_platform_base".to_string(), "EGL_EXT_platform_device",
"EGL_EXT_platform_x11".to_string(), ])
"EGL_MESA_platform_gbm".to_string(), .write_bindings(gl_generator::StaticStructGenerator, &mut file).unwrap();
"EGL_EXT_platform_wayland".to_string(),
"EGL_EXT_platform_device".to_string(),
],
"1.5", "core", &mut file).unwrap();
let mut file = File::create(&dest.join("gles2_bindings.rs")).unwrap(); let mut file = File::create(&dest.join("gles2_bindings.rs")).unwrap();
gl_generator::generate_bindings(gl_generator::StaticStructGenerator, Registry::new(Api::Gles2, (2, 0), Profile::Core, Fallbacks::None, [])
gl_generator::registry::Ns::Gles2, .write_bindings(gl_generator::StaticStructGenerator, &mut file).unwrap();
gl_generator::Fallbacks::None,
khronos_api::GL_XML,
vec![],
"2.0", "core", &mut file).unwrap();
} }
if target.contains("darwin") { if target.contains("darwin") {
let mut file = File::create(&dest.join("gl_bindings.rs")).unwrap(); let mut file = File::create(&dest.join("gl_bindings.rs")).unwrap();
gl_generator::generate_bindings(gl_generator::GlobalGenerator, Registry::new(Api::Gl, (3, 2), Profile::Core, Fallbacks::All, ["GL_EXT_framebuffer_object"])
gl_generator::registry::Ns::Gl, .write_bindings(gl_generator::GlobalGenerator, &mut file).unwrap();
gl_generator::Fallbacks::All,
khronos_api::GL_XML,
vec!["GL_EXT_framebuffer_object".to_string()],
"3.2", "core", &mut file).unwrap();
} }
// TODO: only build the bindings below if we run tests/examples // TODO: only build the bindings below if we run tests/examples
let mut file = File::create(&dest.join("test_gl_bindings.rs")).unwrap(); let mut file = File::create(&dest.join("test_gl_bindings.rs")).unwrap();
gl_generator::generate_bindings(gl_generator::StructGenerator, Registry::new(Api::Gles2, (3, 0), Profile::Core, Fallbacks::All, [])
gl_generator::registry::Ns::Gles2, .write_bindings(gl_generator::StructGenerator, &mut file).unwrap();
gl_generator::Fallbacks::All,
khronos_api::GL_XML, vec![],
"3.0", "core", &mut file).unwrap();
} }