improve nix docs (#7044)
# Objective `xlibsWrapper` is being deprecated: https://github.com/NixOS/nixpkgs/issues/194054, this pr removes the deprecated xlibsWrapper and makes a couple more improvements ## Solution - rename NixOS to Nix since this is not specific to NixOS - remove usage of `xlibsWrapper` - add instructions for nix flakes with `nix develop` - add example of a packaged bevy program in nixpkgs - minor cosmetic/grammatical changes
This commit is contained in:
parent
61e027e8a8
commit
d2963267ba
@ -101,29 +101,44 @@ Depending on your graphics card, you may have to install one of the following:
|
|||||||
sudo xbps-install -S pkgconf alsa-lib-devel libX11-devel eudev-libudev-devel
|
sudo xbps-install -S pkgconf alsa-lib-devel libX11-devel eudev-libudev-devel
|
||||||
```
|
```
|
||||||
|
|
||||||
## NixOS
|
## [Nix](https://nixos.org)
|
||||||
|
|
||||||
Add a `shell.nix` file to the root of the project containing:
|
Add a `shell.nix` file to the root of the project containing:
|
||||||
|
|
||||||
```nix
|
```nix
|
||||||
{ pkgs ? import <nixpkgs> {} }:
|
{ pkgs ? import <nixpkgs> { } }:
|
||||||
with pkgs; mkShell rec {
|
|
||||||
|
with pkgs;
|
||||||
|
|
||||||
|
mkShell rec {
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
pkg-config
|
pkg-config
|
||||||
llvmPackages.bintools # To use lld linker
|
|
||||||
];
|
];
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
udev alsa-lib vulkan-loader
|
udev alsa-lib vulkan-loader
|
||||||
xlibsWrapper xorg.libXcursor xorg.libXrandr xorg.libXi # To use x11 feature
|
xorg.libX11 xorg.libXcursor xorg.libXi xorg.libXrandr # To use the x11 feature
|
||||||
libxkbcommon wayland # To use wayland feature
|
libxkbcommon wayland # To use the wayland feature
|
||||||
];
|
];
|
||||||
LD_LIBRARY_PATH = pkgs.lib.makeLibraryPath buildInputs;
|
LD_LIBRARY_PATH = lib.makeLibraryPath buildInputs;
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
And enter it by just running `nix-shell`. You should be able compile Bevy programs using `cargo run` within this nix-shell. You can do this in one line with `nix-shell --run "cargo run"`.
|
And enter it by just running `nix-shell`.
|
||||||
|
You should be able compile Bevy programs using `cargo run` within this nix-shell.
|
||||||
|
You can do this in one line with `nix-shell --run "cargo run"`.
|
||||||
|
|
||||||
Note that this template does not add Rust to the environment because there are many ways to do it. For example, to use stable Rust from nixpkgs you can add `cargo` to `nativeBuildInputs`.
|
This is also possible with [Nix flakes](https://nixos.org/manual/nix/unstable/command-ref/new-cli/nix3-flake.html).
|
||||||
|
Instead of creating `shell.nix`, you just need to add the derivation (`mkShell`)
|
||||||
|
to your `devShells` in `flake.nix`. Run `nix develop` to enter the shell and
|
||||||
|
`nix develop -c cargo run` to run the program. See
|
||||||
|
[Nix's documentation](https://nixos.org/manual/nix/unstable/command-ref/new-cli/nix3-develop.html)
|
||||||
|
for more information about `devShells`.
|
||||||
|
|
||||||
|
Note that this template does not add Rust to the environment because there are many ways to do it.
|
||||||
|
For example, to use stable Rust from nixpkgs, you can add `cargo` and `rustc` to `nativeBuildInputs`.
|
||||||
|
|
||||||
|
[Here](https://github.com/NixOS/nixpkgs/blob/master/pkgs/games/jumpy/default.nix)
|
||||||
|
is an example of packaging a Bevy program in nix.
|
||||||
|
|
||||||
## [OpenSUSE](https://www.opensuse.org/)
|
## [OpenSUSE](https://www.opensuse.org/)
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user