-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathflake.nix
More file actions
89 lines (73 loc) · 2.1 KB
/
flake.nix
File metadata and controls
89 lines (73 loc) · 2.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
{
description = "Novus Nix Dev Environment";
inputs = {
nixpkgs.url = "nixpkgs/nixos-25.11";
};
outputs =
{ self, nixpkgs, ... }:
let
system = "x86_64-linux";
pkgs = import nixpkgs { inherit system; };
llvmPkg = pkgs.llvmPackages_21;
in
{
packages.${system}.default = llvmPkg.stdenv.mkDerivation rec {
pname = "novus";
version = "0.18.0";
src = ./.;
nativeBuildInputs = [
pkgs.git
pkgs.cmake
pkgs.makeWrapper
];
cmakeFlags = [
"-DCMAKE_BUILD_TYPE=Release"
"-DFETCHCONTENT_FULLY_DISCONNECTED=ON"
];
cli11Src = pkgs.fetchFromGitHub {
owner = "CLIUtils";
repo = "CLI11";
rev = "v2.6.1";
sha256 = "sha256-q5q6TgSex0xjdWFf/4e6dhrN0qWPDjIgWBpdkCTlLys=";
};
rangSrc = pkgs.fetchFromGitHub {
owner = "agauniyal";
repo = "rang";
rev = "v3.1.0";
sha256 = "3k5ERH8XDk9eIA3H06j9054joz7pPVrFquISP3pzKFk=";
};
preConfigure = ''
mkdir -p build/_deps/cli11-src
cp -r ${cli11Src}/* build/_deps/cli11-src
chmod -R u+w build/_deps/cli11-src
mkdir -p build/_deps/rang-src
cp -r ${rangSrc}/* build/_deps/rang-src
chmod -R u+w build/_deps/rang-src
'';
# TODO: Instead of this manual copying implement a proper install target in our CMake setup.
installPhase = ''
cd ../bin
mv VERSION NOVUS_VERSION
mkdir -p $out/bin
cp -r * $out/bin/
'';
};
defaultPackage.${system} = self.packages.${system};
devShells.${system} = rec {
llvm = (pkgs.mkShellNoCC.override { stdenv = llvmPkg.stdenv; }) {
packages = [
pkgs.nixfmt-rfc-style
pkgs.clang-tools
llvmPkg.lld
llvmPkg.libcxx
llvmPkg.lldb
llvmPkg.clang
llvmPkg.bintools
pkgs.cmake
pkgs.gnumake
];
};
default = llvm;
};
};
}