nix: add support to build with GCC
Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
This commit is contained in:
23
nix/build.nix
Normal file
23
nix/build.nix
Normal file
@@ -0,0 +1,23 @@
|
||||
{ stdenv
|
||||
, meson
|
||||
, ninja
|
||||
, pkg-config
|
||||
, src ? "../."
|
||||
, libraries ? [ ]
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "matar";
|
||||
version = "0.1";
|
||||
inherit src;
|
||||
|
||||
outputs = [ "out" "dev" ];
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
] ++ libraries;
|
||||
|
||||
enableParallelBuilding = true;
|
||||
}
|
||||
11
nix/default.nix
Normal file
11
nix/default.nix
Normal file
@@ -0,0 +1,11 @@
|
||||
{ ... }: {
|
||||
imports = [
|
||||
./matar.nix
|
||||
./matar-clang.nix
|
||||
];
|
||||
|
||||
perSystem = { self', pkgs, ... }: {
|
||||
packages.default = self'.packages.matar-clang;
|
||||
devShells.default = self'.devShells.matar-clang;
|
||||
};
|
||||
}
|
||||
22
nix/matar-clang.nix
Normal file
22
nix/matar-clang.nix
Normal file
@@ -0,0 +1,22 @@
|
||||
{ ... }: {
|
||||
perSystem = { pkgs, src, ... }:
|
||||
let
|
||||
llvm = pkgs.llvmPackages_16;
|
||||
stdenv = llvm.libcxxStdenv;
|
||||
|
||||
libraries = with pkgs; [
|
||||
((pkgs.fmt.override {
|
||||
inherit stdenv;
|
||||
enableShared = false;
|
||||
}).overrideAttrs (oa: {
|
||||
cmakeFlags = oa.cmakeFlags ++ [ "-DFMT_TEST=off" ];
|
||||
})).dev
|
||||
|
||||
(catch2_3.override { inherit stdenv; }).out
|
||||
];
|
||||
in
|
||||
{
|
||||
packages.matar-clang = pkgs.callPackage ./build.nix { inherit src libraries stdenv; };
|
||||
devShells.matar-clang = pkgs.callPackage ./shell.nix { inherit libraries stdenv; };
|
||||
};
|
||||
}
|
||||
13
nix/matar.nix
Normal file
13
nix/matar.nix
Normal file
@@ -0,0 +1,13 @@
|
||||
{ ... }: {
|
||||
perSystem = { pkgs, src, ... }:
|
||||
let
|
||||
libraries = with pkgs; [
|
||||
(pkgs.fmt.override { enableShared = false; }).dev
|
||||
catch2_3.out
|
||||
];
|
||||
in
|
||||
{
|
||||
packages.matar = pkgs.callPackage ./build.nix { inherit src libraries; };
|
||||
devShells.matar = pkgs.callPackage ./shell.nix {inherit libraries;};
|
||||
};
|
||||
}
|
||||
19
nix/shell.nix
Normal file
19
nix/shell.nix
Normal file
@@ -0,0 +1,19 @@
|
||||
{ stdenv
|
||||
, mkShell
|
||||
, meson
|
||||
, ninja
|
||||
, pkg-config
|
||||
, libraries ? [ ]
|
||||
}:
|
||||
|
||||
mkShell.override { inherit stdenv; } {
|
||||
name = "matar";
|
||||
|
||||
packages = [
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
] ++ libraries;
|
||||
|
||||
enableParallelBuilding = true;
|
||||
}
|
||||
Reference in New Issue
Block a user