Flake added
parent
6e75b5e597
commit
37772bb92b
|
@ -0,0 +1,58 @@
|
|||
{
|
||||
description = "SFML flake for building and developing";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs?ref=nixos-unstable";
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs }:
|
||||
let
|
||||
# Systems supported
|
||||
allSystems = [
|
||||
"x86_64-linux" # 64-bit Intel/AMD Linux
|
||||
"aarch64-linux" # 64-bit ARM Linux
|
||||
"x86_64-darwin" # 64-bit Intel macOS
|
||||
"aarch64-darwin" # 64-bit ARM macOS
|
||||
];
|
||||
|
||||
# Helper to provide system-specific attributes
|
||||
forAllSystems = f: nixpkgs.lib.genAttrs allSystems (system: f {
|
||||
pkgs = import nixpkgs { inherit system; };
|
||||
});
|
||||
in
|
||||
{
|
||||
# Development section
|
||||
devShells = forAllSystems ({ pkgs }: {
|
||||
default = pkgs.mkShell {
|
||||
# The Nix packages provided in the environment
|
||||
packages = with pkgs; [
|
||||
boost
|
||||
gcc
|
||||
poco
|
||||
];
|
||||
};
|
||||
});
|
||||
# Build section
|
||||
packages = forAllSystems ({ pkgs }: {
|
||||
default =
|
||||
let
|
||||
binName = "SFML_Game";
|
||||
cppDependencies = with pkgs; [
|
||||
boost
|
||||
gcc
|
||||
poco
|
||||
];
|
||||
in
|
||||
pkgs.stdenv.mkDerivation {
|
||||
name = "zero-to-nix-cpp";
|
||||
src = self;
|
||||
buildInputs = cppDependencies;
|
||||
buildPhase = "c++ -std=c++17 -o ${binName} ${./main.cpp} -lPocoFoundation -lboost_system";
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp ${binName} $out/bin/
|
||||
'';
|
||||
};
|
||||
});
|
||||
};
|
||||
}
|
Loading…
Reference in New Issue