From 1194185511b145b33221f655f335021f5edd695a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anders=20Christiansen=20S=C3=B8rby?= Date: Sun, 13 Jun 2021 22:57:31 +0200 Subject: [PATCH 1/3] Add nix flake devShell --- flake.lock | 42 ++++++++++++++++++++++++++++++++++++++++++ flake.nix | 18 ++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 flake.lock create mode 100644 flake.nix diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..a5e0d66 --- /dev/null +++ b/flake.lock @@ -0,0 +1,42 @@ +{ + "nodes": { + "flake-utils": { + "locked": { + "lastModified": 1622445595, + "narHash": "sha256-m+JRe6Wc5OZ/mKw2bB3+Tl0ZbtyxxxfnAWln8Q5qs+Y=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "7d706970d94bc5559077eb1a6600afddcd25a7c8", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1623617037, + "narHash": "sha256-oRkwdzK7W3EXtZYOcRnEE3PpDxlHxxFAtxbKkwtieEU=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "eb971d2e926cf8da0c423d8a1aefa683fadbdef7", + "type": "github" + }, + "original": { + "owner": "nixos", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..8fa2c1a --- /dev/null +++ b/flake.nix @@ -0,0 +1,18 @@ +{ + description = "MarbleMatcher"; + + inputs.nixpkgs.url = "github:nixos/nixpkgs"; + inputs.flake-utils.url = "github:numtide/flake-utils"; + + outputs = { self, nixpkgs, flake-utils }: + flake-utils.lib.eachDefaultSystem + (system: + let + pkgs = nixpkgs.legacyPackages.${system}; + inputs = with pkgs; [ eigen sfml cmake gnumake libGL ]; + in + { + devShell = pkgs.mkShell { buildInputs = inputs; }; + } + ); +} From da5407ffc0df1088fdf4b4571e3b2f8d7e02dd37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anders=20Christiansen=20S=C3=B8rby?= Date: Mon, 14 Jun 2021 00:11:50 +0200 Subject: [PATCH 2/3] Add run and package build --- flake.nix | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/flake.nix b/flake.nix index 8fa2c1a..1a9f817 100644 --- a/flake.nix +++ b/flake.nix @@ -9,9 +9,27 @@ (system: let pkgs = nixpkgs.legacyPackages.${system}; + name = "MarbleMatcher"; inputs = with pkgs; [ eigen sfml cmake gnumake libGL ]; + package = pkgs.stdenv.mkDerivation { + name = name; + src = self; + buildInputs = inputs; + buildPhase = '' + cmake -DCMAKE_CXX_FLAGS="-I/usr/local/include" . + cmake --build . + ''; + installPhase = '' + mkdir -p $out + cp MarbleMarcher $out/ + ''; + }; in { + defaultApp = { + type = "app"; + program = "${package}/MarbleMarcher"; + }; devShell = pkgs.mkShell { buildInputs = inputs; }; } ); From a435a8478d9c9b22260ce6b2304b88f6d15ef7b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anders=20Christiansen=20S=C3=B8rby?= Date: Mon, 14 Jun 2021 00:15:14 +0200 Subject: [PATCH 3/3] Add Nix flakes docs --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index c70ce90..3d65f5b 100644 --- a/README.md +++ b/README.md @@ -41,6 +41,11 @@ Alternatively, [vcpkg](https://github.com/Microsoft/vcpkg) can be used: Alternatively, one can use the platform-dependent build system, for example `Make`: * `make -C build` +### Nix (flakes) +With nix and flakes enabled: +* To build `nix build .` +* To build and run `nix run .` + ### Arch Linux * `cd ~` * `git clone https://github.com/HackerPoet/MarbleMarcher.git`