diff options
| author | enzu.ru <enzuru@users.noreply.github.com> | 2026-05-07 14:15:10 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-05-07 17:15:10 -0400 |
| commit | 7dd94464cec0a7a7433e8aba6e0a1bbecf038039 (patch) | |
| tree | 3a80e727a2569908dd91ccb36cee89091046dfba /docs | |
| parent | ff235099f643712546c378ab272bea4ba7773b0c (diff) | |
Improve Nix support (#1643)
* Improve Nix support
* fixes
* Update BUILDING.md
Co-authored-by: ProverbialPennance <36955346+ProverbialPennance@users.noreply.github.com>
---------
Co-authored-by: ProverbialPennance <36955346+ProverbialPennance@users.noreply.github.com>
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/BUILDING.md | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/docs/BUILDING.md b/docs/BUILDING.md index e81cb5478..98a4a34a9 100644 --- a/docs/BUILDING.md +++ b/docs/BUILDING.md @@ -118,6 +118,78 @@ zypper in gcc gcc-c++ git cmake ninja SDL2-devel libpng16-devel libzip-devel lib # or using clang zypper in clang libstdc++-devel git cmake ninja SDL2-devel libpng16-devel libzip-devel libzip-tools nlohmann_json-devel tinyxml2-devel spdlog-devel ``` +#### Nix +You can use a `flake.nix` file to instantly setup a development environment using [Nix](https://nixos.org/). Write this `flake.nix` file in the root directory: +```nix +{ + description = "Shipwright development environment"; + + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + flake-utils.url = "github:numtide/flake-utils"; + }; + + outputs = { self, nixpkgs, flake-utils }: + flake-utils.lib.eachDefaultSystem (system: + let + pkgs = nixpkgs.legacyPackages.${system}; + in + { + devShells.default = pkgs.mkShell { + buildInputs = with pkgs; [ + # Build tools + clang + git + cmake + ninja + lsb-release + pkg-config + + # Asset extraction + python3 + imagemagick + + # SDL2 libraries + SDL2 + SDL2.dev + SDL2_net + + # Other libraries + libpng + libzip + nlohmann_json + tinyxml-2 + spdlog + libGL + libGL.dev + bzip2 + + # X11 libraries + libx11 + + # Audio libraries + libogg + libogg.dev + libvorbis + libvorbis.dev + libopus + libopus.dev + opusfile + opusfile.dev + + # Runtime Deps + zenity + ]; + + shellHook = '' + echo "Shipwright development environment loaded" + echo "Available tools: clang, git, cmake, ninja" + ''; + }; + }); +} +``` +Now type `nix develop` and you will be dropped into a shell with all dependencies, ensuring that all build commands work. ### Build |
