diff --git a/README.md b/README.md index 2747b52..8656bc8 100644 --- a/README.md +++ b/README.md @@ -218,11 +218,45 @@ cmake --build build --config Debug .\build\tests\filewatcher\Debug\filewatcher_tests.exe ``` -## Nix Develop Shell +## Nix +### Nix Develop Shell ```sh nix develop ``` +### Nix Run / Install (one command) +Run without installing (builds and runs): +```sh +nix run github:jamylak/vsdf +``` + +Install into your profile (then `vsdf` is on PATH): +```sh +nix profile install github:jamylak/vsdf +``` + +Open a one-off shell with `vsdf` available: +```sh +nix shell github:jamylak/vsdf +``` + +### Home Manager (flake) install +```nix +# flake.nix +{ + inputs.vsdf.url = "github:jamylak/vsdf"; +} +``` +```nix +# home.nix +{ inputs, pkgs, ... }: +{ + home.packages = [ + inputs.vsdf.packages.${pkgs.system}.default + ]; +} +``` + ### Manually create your own vulkan compatible shader If you don't want any template prepended or you want to use a Vulkan shader directly you can copy `shaders/vulktemplate.frag` diff --git a/default.nix b/default.nix index 0f5e0d7..b6b9e83 100644 --- a/default.nix +++ b/default.nix @@ -63,6 +63,7 @@ stdenv.mkDerivation { description = "Vulkan SDF Renderer + Hot Reloader"; homepage = "https://github.com/jamylak/vsdf"; license = licenses.mit; + mainProgram = "vsdf"; platforms = platforms.linux ++ platforms.darwin; }; } diff --git a/flake.nix b/flake.nix index 226ac2e..08491e7 100644 --- a/flake.nix +++ b/flake.nix @@ -29,6 +29,8 @@ # # config.allowUnfree = true; }; + + vsdfPkg = pkgs.callPackage ./default.nix { }; in { devShells.default = @@ -71,6 +73,20 @@ ''; }; - packages.default = pkgs.callPackage ./default.nix { }; + packages = { + default = vsdfPkg; + vsdf = vsdfPkg; + }; + + apps = { + default = { + type = "app"; + program = "${vsdfPkg}/bin/vsdf"; + }; + vsdf = { + type = "app"; + program = "${vsdfPkg}/bin/vsdf"; + }; + }; }); }