From b09a5a1db37096e342383208c04de567a1089aa2 Mon Sep 17 00:00:00 2001 From: NIMFER Date: Sun, 17 Mar 2024 04:44:26 +0100 Subject: [PATCH] Nix stuff --- .cargo/config | 3 + .envrc | 1 + .gitignore | 2 + Cargo.lock | 330 ++++++++++++++++++++++++++++++++++++++++-------- Cargo.toml | 12 +- README.md | 38 ++++++ assets/bevy.png | Bin 0 -> 17329 bytes flake.lock | 166 ++++++++++++++++++++++++ flake.nix | 86 +++++++++++++ 9 files changed, 583 insertions(+), 55 deletions(-) create mode 100644 .cargo/config create mode 100644 .envrc create mode 100644 README.md create mode 100644 assets/bevy.png create mode 100644 flake.lock create mode 100644 flake.nix diff --git a/.cargo/config b/.cargo/config new file mode 100644 index 0000000..ec26773 --- /dev/null +++ b/.cargo/config @@ -0,0 +1,3 @@ +[target.x86_64-unknown-linux-gnu] +linker = "clang" +rustflags = ["-Clink-arg=-fuse-ld=mold"] \ No newline at end of file diff --git a/.envrc b/.envrc new file mode 100644 index 0000000..8392d15 --- /dev/null +++ b/.envrc @@ -0,0 +1 @@ +use flake \ No newline at end of file diff --git a/.gitignore b/.gitignore index ea8c4bf..052de26 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ /target +/result +/.direnv diff --git a/Cargo.lock b/Cargo.lock index 6a01410..9e80d2c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -316,6 +316,15 @@ dependencies = [ "bevy_internal", ] +[[package]] +name = "bevy-flake-template" +version = "0.1.0" +dependencies = [ + "bevy", + "bevy_editor_pls", + "bevy_xpbd_3d", +] + [[package]] name = "bevy-inspector-egui" version = "0.23.4" @@ -353,7 +362,7 @@ checksum = "b3c488161a04a123e10273e16d4533945943fcfcf345f066242790e8977aee2d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -444,7 +453,7 @@ dependencies = [ "bevy_macro_utils", "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -510,7 +519,7 @@ checksum = "028ae2a34678055185d7f1beebb1ebe6a8dcf3733e139e4ee1383a7f29ae8ba6" dependencies = [ "bevy_macro_utils", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -558,7 +567,7 @@ dependencies = [ "bevy_macro_utils", "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -673,7 +682,7 @@ dependencies = [ "bevy_macro_utils", "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -799,7 +808,7 @@ dependencies = [ "proc-macro2", "quote", "rustc-hash", - "syn 2.0.52", + "syn 2.0.53", "toml_edit", ] @@ -895,7 +904,7 @@ dependencies = [ "bevy_macro_utils", "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", "uuid", ] @@ -953,7 +962,7 @@ dependencies = [ "bevy_macro_utils", "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -1121,7 +1130,7 @@ checksum = "31ae98e9c0c08b0f5c90e22cd713201f759b98d4fd570b99867a695f8641859a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -1169,7 +1178,8 @@ dependencies = [ [[package]] name = "bevy_xpbd_3d" version = "0.4.2" -source = "git+https://git.opencodebox.com/MikolajG/bevy_xpbd?branch=reflect-serialize#489e53505abda9649a9ee6e9de6e03a7d5801e28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0425ea7361b9b27c2a382e0663deb42f41147eee60fb2b3d5fa7e42d363ea848" dependencies = [ "bevy", "bevy_math", @@ -1186,11 +1196,11 @@ dependencies = [ [[package]] name = "bevy_xpbd_derive" version = "0.1.0" -source = "git+https://git.opencodebox.com/MikolajG/bevy_xpbd?branch=reflect-serialize#489e53505abda9649a9ee6e9de6e03a7d5801e28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e1ef1d5e328abe1b76df974245f78e17fd17867583883d5e77444c6a8223a64" dependencies = [ - "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -1210,7 +1220,7 @@ dependencies = [ "regex", "rustc-hash", "shlex", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -1335,9 +1345,9 @@ checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa" [[package]] name = "bytemuck" -version = "1.14.3" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2ef034f05691a48569bd920a96c81b9d91bbad1ab5ac7c4616c1f6ef36cb79f" +checksum = "5d6d68c57235a3a081186990eca2867354726650f42f7516ca50c28d6281fd15" dependencies = [ "bytemuck_derive", ] @@ -1350,7 +1360,7 @@ checksum = "4da9a32f3fed317401fa3c862968128267c3106685286e15d5aaa3d7389c2f60" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -1379,6 +1389,18 @@ dependencies = [ "thiserror", ] +[[package]] +name = "calloop-wayland-source" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f0ea9b9476c7fad82841a8dbb380e2eae480c21910feba80725b46931ed8f02" +dependencies = [ + "calloop", + "rustix", + "wayland-backend", + "wayland-client", +] + [[package]] name = "cc" version = "1.0.90" @@ -1429,9 +1451,9 @@ dependencies = [ [[package]] name = "clipboard-win" -version = "5.2.0" +version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12f9a0700e0127ba15d1d52dd742097f821cd9c65939303a44d970465040a297" +checksum = "d517d4b86184dbb111d3556a10f1c8a04da7428d2987bf1081602bf11c3aa9ee" dependencies = [ "error-code", ] @@ -1538,9 +1560,9 @@ checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" [[package]] name = "constgebra" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edd23e864550e6dafc1e41ac78ce4f1ccddc8672b40c403524a04ff3f0518420" +checksum = "e1aaf9b65849a68662ac6c0810c8893a765c960b907dd7cfab9c4a50bf764fbc" dependencies = [ "const_soft_float", ] @@ -1772,9 +1794,9 @@ dependencies = [ [[package]] name = "egui-gizmo" -version = "0.16.1" +version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cdd96a8bc62d5a7dbc03fe08db7bb44b50ac4167c2620d482530d9af6e27634" +checksum = "65371711037f6f256024371f21fd8f8c5fa2ce5221469a5fb1efc670f205f740" dependencies = [ "egui", "glam", @@ -1836,7 +1858,7 @@ checksum = "92959a9e8d13eaa13b8ae8c7b583c3bf1669ca7a8e7708a088d12587ba86effc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -1997,7 +2019,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -2074,9 +2096,9 @@ dependencies = [ [[package]] name = "gilrs" -version = "0.10.5" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0510502768c64b944bf4d1518ba36e2431c638ac996ebacb543a297b145f8300" +checksum = "499067aa54af19f88732dc418f61f23d5912de1518665bb0eca034ca0d07574c" dependencies = [ "fnv", "gilrs-core", @@ -2167,7 +2189,7 @@ dependencies = [ "inflections", "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -2400,9 +2422,9 @@ dependencies = [ [[package]] name = "io-kit-sys" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4769cb30e5dcf1710fc6730d3e94f78c47723a014a567de385e113c737394640" +checksum = "617ee6cf8e3f66f3b4ea67a4058564628cde41901316e19f559e14c7c72c5e7b" dependencies = [ "core-foundation-sys", "mach2", @@ -2636,6 +2658,15 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" +[[package]] +name = "memmap2" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322" +dependencies = [ + "libc", +] + [[package]] name = "metal" version = "0.27.0" @@ -2862,7 +2893,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -2913,7 +2944,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -3310,6 +3341,15 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43d84d1d7a6ac92673717f9f6d1518374ef257669c24ebc5ac25d5033828be58" +[[package]] +name = "quick-xml" +version = "0.31.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33" +dependencies = [ + "memchr", +] + [[package]] name = "quote" version = "1.0.35" @@ -3534,12 +3574,31 @@ dependencies = [ "winapi-util", ] +[[package]] +name = "scoped-tls" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" + [[package]] name = "scopeguard" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" +[[package]] +name = "sctk-adwaita" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82b2eaf3a5b264a521b988b2e73042e742df700c4f962cde845d1541adb46550" +dependencies = [ + "ab_glyph", + "log", + "memmap2", + "smithay-client-toolkit", + "tiny-skia", +] + [[package]] name = "semver" version = "1.0.22" @@ -3563,7 +3622,7 @@ checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -3592,15 +3651,6 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" -[[package]] -name = "silly_game" -version = "0.1.0" -dependencies = [ - "bevy", - "bevy_editor_pls", - "bevy_xpbd_3d", -] - [[package]] name = "simba" version = "0.8.1" @@ -3647,6 +3697,31 @@ dependencies = [ "serde", ] +[[package]] +name = "smithay-client-toolkit" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "922fd3eeab3bd820d76537ce8f582b1cf951eceb5475c28500c7457d9d17f53a" +dependencies = [ + "bitflags 2.4.2", + "calloop", + "calloop-wayland-source", + "cursor-icon", + "libc", + "log", + "memmap2", + "rustix", + "thiserror", + "wayland-backend", + "wayland-client", + "wayland-csd-frame", + "wayland-cursor", + "wayland-protocols", + "wayland-protocols-wlr", + "wayland-scanner", + "xkeysym", +] + [[package]] name = "smol_str" version = "0.2.1" @@ -3683,6 +3758,12 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" +[[package]] +name = "strict-num" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6637bab7722d379c8b41ba849228d680cc12d0a45ba1fa2b48f2a30577a06731" + [[package]] name = "svg_fmt" version = "0.4.2" @@ -3702,9 +3783,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.52" +version = "2.0.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b699d15b36d1f02c3e7c69f8ffef53de37aefae075d8488d4ba1a7788d574a07" +checksum = "7383cd0e49fff4b6b90ca5670bfd3e9d6a733b3f90c686605aa7eec8c4996032" dependencies = [ "proc-macro2", "quote", @@ -3763,7 +3844,7 @@ checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -3787,6 +3868,31 @@ dependencies = [ "weezl", ] +[[package]] +name = "tiny-skia" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83d13394d44dae3207b52a326c0c85a8bf87f1541f23b0d143811088497b09ab" +dependencies = [ + "arrayref", + "arrayvec", + "bytemuck", + "cfg-if", + "log", + "tiny-skia-path", +] + +[[package]] +name = "tiny-skia-path" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c9e7fc0c2e86a30b117d0462aa261b72b7a99b7ebd7deb3a14ceda95c5bdc93" +dependencies = [ + "arrayref", + "bytemuck", + "strict-num", +] + [[package]] name = "tinyvec" version = "1.6.0" @@ -3838,7 +3944,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -4039,7 +4145,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", "wasm-bindgen-shared", ] @@ -4073,7 +4179,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -4084,6 +4190,114 @@ version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" +[[package]] +name = "wayland-backend" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d50fa61ce90d76474c87f5fc002828d81b32677340112b4ef08079a9d459a40" +dependencies = [ + "cc", + "downcast-rs", + "rustix", + "scoped-tls", + "smallvec", + "wayland-sys", +] + +[[package]] +name = "wayland-client" +version = "0.31.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82fb96ee935c2cea6668ccb470fb7771f6215d1691746c2d896b447a00ad3f1f" +dependencies = [ + "bitflags 2.4.2", + "rustix", + "wayland-backend", + "wayland-scanner", +] + +[[package]] +name = "wayland-csd-frame" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e" +dependencies = [ + "bitflags 2.4.2", + "cursor-icon", + "wayland-backend", +] + +[[package]] +name = "wayland-cursor" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71ce5fa868dd13d11a0d04c5e2e65726d0897be8de247c0c5a65886e283231ba" +dependencies = [ + "rustix", + "wayland-client", + "xcursor", +] + +[[package]] +name = "wayland-protocols" +version = "0.31.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f81f365b8b4a97f422ac0e8737c438024b5951734506b0e1d775c73030561f4" +dependencies = [ + "bitflags 2.4.2", + "wayland-backend", + "wayland-client", + "wayland-scanner", +] + +[[package]] +name = "wayland-protocols-plasma" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23803551115ff9ea9bce586860c5c5a971e360825a0309264102a9495a5ff479" +dependencies = [ + "bitflags 2.4.2", + "wayland-backend", + "wayland-client", + "wayland-protocols", + "wayland-scanner", +] + +[[package]] +name = "wayland-protocols-wlr" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad1f61b76b6c2d8742e10f9ba5c3737f6530b4c243132c2a2ccc8aa96fe25cd6" +dependencies = [ + "bitflags 2.4.2", + "wayland-backend", + "wayland-client", + "wayland-protocols", + "wayland-scanner", +] + +[[package]] +name = "wayland-scanner" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63b3a62929287001986fb58c789dce9b67604a397c15c611ad9f747300b6c283" +dependencies = [ + "proc-macro2", + "quick-xml", + "quote", +] + +[[package]] +name = "wayland-sys" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15a0c8eaff5216d07f226cb7a549159267f3467b289d9a2e52fd3ef5aae2b7af" +dependencies = [ + "dlib", + "log", + "pkg-config", +] + [[package]] name = "web-sys" version = "0.3.67" @@ -4562,10 +4776,11 @@ checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8" [[package]] name = "winit" -version = "0.29.14" +version = "0.29.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a3db69ffbe53a9babec7804da7a90f21020fcce1f2f5e5291e2311245b993d" +checksum = "0d59ad965a635657faf09c8f062badd885748428933dad8e8bdd64064d92e5ca" dependencies = [ + "ahash", "android-activity", "atomic-waker", "bitflags 2.4.2", @@ -4579,6 +4794,7 @@ dependencies = [ "js-sys", "libc", "log", + "memmap2", "ndk", "ndk-sys", "objc2 0.4.1", @@ -4588,10 +4804,16 @@ dependencies = [ "raw-window-handle 0.6.0", "redox_syscall 0.3.5", "rustix", + "sctk-adwaita", + "smithay-client-toolkit", "smol_str", "unicode-segmentation", "wasm-bindgen", "wasm-bindgen-futures", + "wayland-backend", + "wayland-client", + "wayland-protocols", + "wayland-protocols-plasma", "web-sys", "web-time", "windows-sys 0.48.0", @@ -4641,6 +4863,12 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e63e71c4b8bd9ffec2c963173a4dc4cbde9ee96961d4fcb4429db9929b606c34" +[[package]] +name = "xcursor" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a0ccd7b4a5345edfcd0c3535718a4e9ff7798ffc536bb5b5a0e26ff84732911" + [[package]] name = "xi-unicode" version = "0.3.0" @@ -4689,5 +4917,5 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] diff --git a/Cargo.toml b/Cargo.toml index 1dfc26b..4b98f22 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,11 +1,15 @@ [package] -name = "silly_game" +name = "bevy-flake-template" version = "0.1.0" edition = "2021" -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html +[profile.dev] +opt-level = 1 + +[profile.dev.pacakge."*"] +opt-level = 3 [dependencies] -bevy = "0.13.0" +bevy = { version = "0.13", features = [ "wayland" ] } bevy_editor_pls = "0.8.1" -bevy_xpbd_3d = {git = "https://git.opencodebox.com/MikolajG/bevy_xpbd", branch = "reflect-serialize"} +bevy_xpbd_3d = "0.4" diff --git a/README.md b/README.md new file mode 100644 index 0000000..256b852 --- /dev/null +++ b/README.md @@ -0,0 +1,38 @@ +# Bevy Flake Template +Simple flake template for the Bevy game engine using Naersk. + +### Usage + +Running without cloning +```bash +nix run github:justryanw/bevy-flake-template +``` + +Build with nix +```bash +# Clone and cd into repo +nix build +# Or +nix run # Runs client in release mode by default +``` + +Use dev or release profiles +```bash +nix run .#dev +nix run .#release +``` + +or enter dev environment and build using cargo +```bash +nix develop -c $SHELL # Use direnv to do this automatically +cargo run +``` + +### Issues / Limitations + +- Workaround needed for multiple binaries (e.g. client/server), look at the [multiple-binaries](https://github.com/justryanw/bevy-flake-template/tree/multiple-binaries) branch +- Not setup for MacOS yet. +- NixGL is needed to run on non NixOS systems +```bash +nix run --impure github:guibou/nixGL -- nix run +``` \ No newline at end of file diff --git a/assets/bevy.png b/assets/bevy.png new file mode 100644 index 0000000000000000000000000000000000000000..155abe3a7b9fbe7ac685addf9c9fa67f71d470a1 GIT binary patch literal 17329 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