From a871ec379b157ff091b28f822e899bbf3ed38070 Mon Sep 17 00:00:00 2001 From: kghugo Date: Fri, 4 Feb 2022 09:23:01 +0000 Subject: [PATCH] Add flake for bevy --- README.md | 20 ++++++++++++ bevy/.envrc | 1 + bevy/.github/workflows/build_nix.yml | 13 ++++++++ bevy/default.nix | 7 +++++ bevy/flake.nix | 46 ++++++++++++++++++++++++++++ bevy/shell.nix | 7 +++++ 6 files changed, 94 insertions(+) create mode 100644 bevy/.envrc create mode 100644 bevy/.github/workflows/build_nix.yml create mode 100644 bevy/default.nix create mode 100644 bevy/flake.nix create mode 100644 bevy/shell.nix diff --git a/README.md b/README.md index 3259d13..7d7cfb2 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,4 @@ +<<<<<<< Updated upstream # Official Nix templates Templates are there to help you start your Nix project. @@ -64,3 +65,22 @@ Each template needs: Note: contributing implies licensing those contributions under the terms of [COPYING](COPYING), which is the MIT license. +======= +# NixOS/templates + +A repository for generating Nix Flake for projects in different languages. + +## Examples + +Create a flake based on the Rust template + +``` +nix flake init -t github:NixOS/templates#rust +``` + +Create a flake based on the Python template + +``` +nix flake init -t github:NixOS/templates#python +``` +>>>>>>> Stashed changes diff --git a/bevy/.envrc b/bevy/.envrc new file mode 100644 index 0000000..3550a30 --- /dev/null +++ b/bevy/.envrc @@ -0,0 +1 @@ +use flake diff --git a/bevy/.github/workflows/build_nix.yml b/bevy/.github/workflows/build_nix.yml new file mode 100644 index 0000000..2f684e1 --- /dev/null +++ b/bevy/.github/workflows/build_nix.yml @@ -0,0 +1,13 @@ +name: "Build legacy Nix package on Ubuntu" + +on: + push: + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: cachix/install-nix-action@v12 + - name: Building package + run: nix-build . -A defaultPackage.x86_64-linux diff --git a/bevy/default.nix b/bevy/default.nix new file mode 100644 index 0000000..39bacff --- /dev/null +++ b/bevy/default.nix @@ -0,0 +1,7 @@ +(import ( + fetchTarball { + url = "https://github.com/edolstra/flake-compat/archive/99f1c2157fba4bfe6211a321fd0ee43199025dbf.tar.gz"; + sha256 = "0x2jn3vrawwv9xp15674wjz9pixwjyj3j771izayl962zziivbx2"; } +) { + src = ./.; +}).defaultNix diff --git a/bevy/flake.nix b/bevy/flake.nix new file mode 100644 index 0000000..164c030 --- /dev/null +++ b/bevy/flake.nix @@ -0,0 +1,46 @@ +{ + name = "bevy"; + description = "A flake for setting up a dev environment for Bevy game engine"; + inputs = { + naersk.url = "github:nmattia/naersk/master"; + nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; + utils.url = "github:numtide/flake-utils"; + }; + + outputs = { self, nixpkgs, utils, naersk }: + utils.lib.eachDefaultSystem (system: + let + pkgs = import nixpkgs { inherit system; }; + naersk-lib = pkgs.callPackage naersk { }; + in { + + defaultPackage = naersk-lib.buildPackage ./.; + + defaultApp = utils.lib.mkApp { drv = self.defaultPackage."${system}"; }; + + #REF https://github.com/bevyengine/bevy/blob/main/docs/linux_dependencies.md#nixos + devShell = with pkgs; + mkShell { + nativeBuildInputs = [ pkgconfig clang lld ]; + buildInputs = [ + cargo + rustc + rustfmt + rustPackages.clippy + alsa-lib + udev + vulkan-loader + xorg.libX11 + x11 + xorg.libXrandr + xorg.libXcursor + xorg.libXi + ]; + shellHook = '' + export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${ + pkgs.lib.makeLibraryPath [ udev alsaLib vulkan-loader ] + }"''; + RUST_SRC_PATH = rustPlatform.rustLibSrc; + }; + }); +} diff --git a/bevy/shell.nix b/bevy/shell.nix new file mode 100644 index 0000000..77db547 --- /dev/null +++ b/bevy/shell.nix @@ -0,0 +1,7 @@ +(import ( + fetchTarball { + url = "https://github.com/edolstra/flake-compat/archive/99f1c2157fba4bfe6211a321fd0ee43199025dbf.tar.gz"; + sha256 = "0x2jn3vrawwv9xp15674wjz9pixwjyj3j771izayl962zziivbx2"; } +) { + src = ./.; +}).shellNix