Skip to content

Commit 74fb5fb

Browse files
committed
Make khronos_api an internal dependency of gl_generator
As discussed in #338, this means that users no longer need to depend on khronos_api.
1 parent 2e4df26 commit 74fb5fb

File tree

10 files changed

+122
-162
lines changed

10 files changed

+122
-162
lines changed

gl/Cargo.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ readme = "README.md"
1515

1616
[build-dependencies]
1717
gl_generator = { version = "0.4.2", path = "../gl_generator" }
18-
khronos_api = { version = "1.0.0", path = "../khronos_api" }
1918

2019
[dev-dependencies]
2120
glutin = "0.4"

gl/build.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
// limitations under the License.
1414

1515
extern crate gl_generator;
16-
extern crate khronos_api;
1716

1817
use gl_generator::{Fallbacks, GlobalGenerator, Api};
1918
use std::env;
@@ -27,6 +26,5 @@ fn main() {
2726

2827
let mut file = BufWriter::new(File::create(&dest.join("bindings.rs")).unwrap());
2928
gl_generator::generate_bindings(GlobalGenerator, Api::Gl, Fallbacks::All,
30-
khronos_api::GL_XML, vec![], "4.5", "core",
31-
&mut file).unwrap();
29+
vec![], "4.5", "core", &mut file).unwrap();
3230
}

gl_generator/README.md

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ Add this to your `Cargo.toml`:
2020
```toml
2121
[build-dependencies]
2222
gl_generator = "0.4.2"
23-
khronos_api = "1.0.0"
2423
```
2524

2625
Under the `[package]` section, add:
@@ -33,7 +32,6 @@ Create a `build.rs` to pull your specific version/API:
3332

3433
```rust
3534
extern crate gl_generator;
36-
extern crate khronos_api;
3735

3836
use gl_generator::{Fallbacks, GlobalGenerator, Api};
3937
use std::env;
@@ -47,8 +45,7 @@ fn main() {
4745

4846
let mut file = BufWriter::new(File::create(&dest.join("bindings.rs")).unwrap());
4947
gl_generator::generate_bindings(GlobalGenerator, Api::Gl, Fallbacks::All,
50-
khronos_api::GL_XML, vec![], "4.5", "core",
51-
&mut file).unwrap();
48+
vec![], "4.5", "core", &mut file).unwrap();
5249
}
5350
```
5451

@@ -147,6 +144,8 @@ also attempt to load `glGenFramebuffersEXT` as a fallback.
147144

148145
- Rename `Ns` to `API`, and expose at the top level
149146
- Use `Api` for `Extension::supported` and `Filter::api` fields
147+
- Remove `source` argument from `generate_bindings`, removing the need for
148+
clients to depend on the `khronos_api` crate
150149

151150
### v0.4.2
152151

gl_generator/lib.rs

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
//!
2626
//! ```no_run
2727
//! extern crate gl_generator;
28-
//! extern crate khronos_api;
2928
//!
3029
//! use gl_generator::{Fallbacks, GlobalGenerator, Api};
3130
//! use std::env;
@@ -34,12 +33,10 @@
3433
//!
3534
//! fn main() {
3635
//! let dest = env::var("OUT_DIR").unwrap();
37-
//!
3836
//! let mut file = File::create(&Path::new(&dest).join("gl_bindings.rs")).unwrap();
3937
//!
4038
//! gl_generator::generate_bindings(GlobalGenerator, Api::Gl, Fallbacks::All,
41-
//! khronos_api::GL_XML, vec![], "4.5", "core",
42-
//! &mut file).unwrap();
39+
//! vec![], "4.5", "core", &mut file).unwrap();
4340
//! }
4441
//! ```
4542
//!
@@ -84,6 +81,7 @@
8481
//! - `NativeWindowType`
8582
//!
8683
84+
extern crate khronos_api;
8785
#[macro_use]
8886
extern crate log;
8987

@@ -105,7 +103,7 @@ pub mod generators;
105103
pub mod registry;
106104

107105
/// Public function that generates Rust source code.
108-
pub fn generate_bindings<G, W>(generator: G, api: registry::Api, fallbacks: Fallbacks, source: &[u8],
106+
pub fn generate_bindings<G, W>(generator: G, api: registry::Api, fallbacks: Fallbacks,
109107
extensions: Vec<String>, version: &str, profile: &str,
110108
dest: &mut W) -> io::Result<()> where G: Generator, W: io::Write
111109
{
@@ -122,7 +120,15 @@ pub fn generate_bindings<G, W>(generator: G, api: registry::Api, fallbacks: Fall
122120
// Generate the registry of all bindings
123121
let registry = {
124122
use std::io::BufReader;
125-
let reader = BufReader::new(source);
123+
124+
let src = match api {
125+
Api::Gl | Api::GlCore | Api::Gles1 | Api::Gles2 => khronos_api::GL_XML,
126+
Api::Glx => khronos_api::GLX_XML,
127+
Api::Wgl => khronos_api::WGL_XML,
128+
Api::Egl => khronos_api::EGL_XML,
129+
};
130+
131+
let reader = BufReader::new(src);
126132
Registry::from_xml(reader, api, filter)
127133
};
128134

gl_tests/test_gen_symbols/Cargo.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,3 @@ path = "lib.rs"
99

1010
[build-dependencies]
1111
gl_generator = { path = "../../gl_generator" }
12-
khronos_api = { path = "../../khronos_api" }

gl_tests/test_gen_symbols/build.rs

Lines changed: 15 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
// limitations under the License.
1414

1515
extern crate gl_generator;
16-
extern crate khronos_api;
1716

1817
use gl_generator::*;
1918
use std::env;
@@ -26,35 +25,30 @@ fn main() {
2625
let dest = env::var("OUT_DIR").unwrap();
2726
let mut file = BufWriter::new(File::create(&Path::new(&dest).join("test_gen_symbols.rs")).unwrap());
2827

29-
(writeln!(&mut file, "mod gl {{")).unwrap();
28+
writeln!(&mut file, "mod gl {{").unwrap();
3029
gl_generator::generate_bindings(GlobalGenerator, Api::Gl, Fallbacks::All,
31-
khronos_api::GL_XML, vec![], "4.5", "core",
32-
&mut file).unwrap();
33-
(writeln!(&mut file, "}}")).unwrap();
30+
vec![], "4.5", "core", &mut file).unwrap();
31+
writeln!(&mut file, "}}").unwrap();
3432

35-
(writeln!(&mut file, "mod gles {{")).unwrap();
33+
writeln!(&mut file, "mod gles {{").unwrap();
3634
gl_generator::generate_bindings(GlobalGenerator, Api::Gles2, Fallbacks::All,
37-
khronos_api::GL_XML, vec![], "3.1", "core",
38-
&mut file).unwrap();
39-
(writeln!(&mut file, "}}")).unwrap();
35+
vec![], "3.1", "core", &mut file).unwrap();
36+
writeln!(&mut file, "}}").unwrap();
4037

41-
(writeln!(&mut file, "mod glx {{")).unwrap();
38+
writeln!(&mut file, "mod glx {{").unwrap();
4239
gl_generator::generate_bindings(GlobalGenerator, Api::Glx, Fallbacks::All,
43-
khronos_api::GLX_XML, vec![], "1.4", "core",
44-
&mut file).unwrap();
45-
(writeln!(&mut file, "}}")).unwrap();
40+
vec![], "1.4", "core", &mut file).unwrap();
41+
writeln!(&mut file, "}}").unwrap();
4642

47-
(writeln!(&mut file, "mod wgl {{")).unwrap();
43+
writeln!(&mut file, "mod wgl {{").unwrap();
4844
gl_generator::generate_bindings(GlobalGenerator, Api::Wgl, Fallbacks::All,
49-
khronos_api::WGL_XML, vec![], "1.0", "core",
50-
&mut file).unwrap();
51-
(writeln!(&mut file, "}}")).unwrap();
45+
vec![], "1.0", "core", &mut file).unwrap();
46+
writeln!(&mut file, "}}").unwrap();
5247

53-
(writeln!(&mut file, "mod egl {{ {}", build_egl_symbols())).unwrap();
48+
writeln!(&mut file, "mod egl {{ {}", build_egl_symbols()).unwrap();
5449
gl_generator::generate_bindings(GlobalGenerator, Api::Egl, Fallbacks::All,
55-
khronos_api::EGL_XML, vec![], "1.5", "core",
56-
&mut file).unwrap();
57-
(writeln!(&mut file, "}}")).unwrap();
50+
vec![], "1.5", "core", &mut file).unwrap();
51+
writeln!(&mut file, "}}").unwrap();
5852
}
5953

6054
fn build_egl_symbols() -> &'static str {

gl_tests/test_no_warnings/Cargo.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,3 @@ path = "lib.rs"
99

1010
[build-dependencies]
1111
gl_generator = { path = "../../gl_generator" }
12-
khronos_api = { path = "../../khronos_api" }

0 commit comments

Comments
 (0)