summaryrefslogtreecommitdiff
path: root/engine/build.rs
diff options
context:
space:
mode:
authorHampusM <hampus@hampusmat.com>2025-10-18 17:04:28 +0200
committerHampusM <hampus@hampusmat.com>2025-10-18 17:04:28 +0200
commit7083a19bf1029bff21a9550d40cc3260e99aac53 (patch)
tree524a8bd2e75ca712b0536218089804cf9838553b /engine/build.rs
parent7f3072ed7e016dff359439d7580403e36ad6b325 (diff)
refactor(engine): use winit instead of glfw
Diffstat (limited to 'engine/build.rs')
-rw-r--r--engine/build.rs63
1 files changed, 63 insertions, 0 deletions
diff --git a/engine/build.rs b/engine/build.rs
new file mode 100644
index 0000000..58029fc
--- /dev/null
+++ b/engine/build.rs
@@ -0,0 +1,63 @@
+// Original file:
+// https://github.com/rust-windowing/glutin/blob/
+// 0433af9018febe0696c485ed9d66c40dad41f2d4/glutin-winit/build.rs
+//
+// Copyright © 2022 Kirill Chibisov
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the “Software”), to deal
+// in the Software without restriction, including without limitation the rights to
+// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+// of the Software, and to permit persons to whom the Software is furnished to do
+// so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in all
+// copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+// SOFTWARE.
+
+// Keep this in sync with glutin's build.rs.
+
+use cfg_aliases::cfg_aliases;
+
+fn main()
+{
+ // Setup alias to reduce `cfg` boilerplate.
+ cfg_aliases! {
+ // Systems.
+ android_platform: { target_os = "android" },
+ wasm_platform: { target_family = "wasm" },
+ macos_platform: { target_os = "macos" },
+ ios_platform: { target_os = "ios" },
+ apple: { any(ios_platform, macos_platform) },
+ free_unix: { all(unix, not(apple), not(android_platform)) },
+
+ // Native displays.
+ x11_platform: { all(free_unix, not(wasm_platform)) },
+ wayland_platform: { all(free_unix, not(wasm_platform)) },
+ // x11_platform: { all(feature = "x11", free_unix, not(wasm_platform)) },
+ // wayland_platform: { all(feature = "wayland", free_unix, not(wasm_platform)) },
+
+ // Backends.
+ egl_backend: {
+ all(any(windows, unix), not(apple), not(wasm_platform))
+ },
+ glx_backend: { all(x11_platform, not(wasm_platform)) },
+ wgl_backend: { all(windows, not(wasm_platform)) },
+ cgl_backend: { all(macos_platform, not(wasm_platform)) },
+
+ // Backends.
+ // egl_backend: {
+ // all(feature = "egl", any(windows, unix), not(apple), not(wasm_platform))
+ // },
+ // glx_backend: { all(feature = "glx", x11_platform, not(wasm_platform)) },
+ // wgl_backend: { all(feature = "wgl", windows, not(wasm_platform)) },
+ // cgl_backend: { all(macos_platform, not(wasm_platform)) },
+ }
+}