summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorenzu.ru <enzuru@users.noreply.github.com>2026-05-07 14:15:10 -0700
committerGitHub <noreply@github.com>2026-05-07 17:15:10 -0400
commit7dd94464cec0a7a7433e8aba6e0a1bbecf038039 (patch)
tree3a80e727a2569908dd91ccb36cee89091046dfba /docs
parentff235099f643712546c378ab272bea4ba7773b0c (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.md72
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