Skip to content

Commit 0c3f732

Browse files
committed
nix: split out devshells to allow adding extra packages
1 parent 3b3815b commit 0c3f732

File tree

1 file changed

+57
-36
lines changed

1 file changed

+57
-36
lines changed

flake.nix

Lines changed: 57 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
flake-utils.lib.eachSystem [ flake-utils.lib.system.x86_64-linux ] (
2222
system:
2323
let
24+
defaultLlvmVersion = 16;
2425
pkgs = import nixpkgs { inherit system; };
2526

2627
drgnSrc = pkgs.fetchFromGitHub {
@@ -32,14 +33,16 @@
3233
};
3334

3435
mkOidPackage =
35-
llvmPackages:
36-
with pkgs;
36+
llvmVersion:
37+
let
38+
llvmPackages = pkgs."llvmPackages_${toString llvmVersion}";
39+
in
3740
llvmPackages.stdenv.mkDerivation rec {
3841
name = "oid";
3942

4043
src = self;
4144

42-
nativeBuildInputs = [
45+
nativeBuildInputs = with pkgs; [
4346
autoconf
4447
automake
4548
bison
@@ -57,36 +60,38 @@
5760
glibcLocales
5861
];
5962

60-
buildInputs = [
61-
llvmPackages.libclang
62-
llvmPackages.llvm
63-
llvmPackages.openmp
64-
65-
boost
66-
bzip2
67-
curl
68-
double-conversion
69-
elfutils
70-
flex
71-
folly
72-
folly.fmt
73-
gflags
74-
glog
75-
gtest
76-
icu
77-
jemalloc
78-
libarchive
79-
libmicrohttpd
80-
liburing
81-
libxml2
82-
lzma
83-
msgpack
84-
range-v3
85-
rocksdb_8_11
86-
sqlite
87-
tomlplusplus
88-
zstd
89-
];
63+
buildInputs =
64+
(with llvmPackages; [
65+
llvmPackages.libclang
66+
llvmPackages.llvm
67+
llvmPackages.openmp
68+
])
69+
++ (with pkgs; [
70+
boost
71+
bzip2
72+
curl
73+
double-conversion
74+
elfutils
75+
flex
76+
folly
77+
folly.fmt
78+
gflags
79+
glog
80+
gtest
81+
icu
82+
jemalloc
83+
libarchive
84+
libmicrohttpd
85+
liburing
86+
libxml2
87+
lzma
88+
msgpack
89+
range-v3
90+
rocksdb_8_11
91+
sqlite
92+
tomlplusplus
93+
zstd
94+
]);
9095

9196
cmakeFlags = [
9297
"-Ddrgn_SOURCE_DIR=${drgnSrc}"
@@ -95,13 +100,29 @@
95100

96101
outputs = [ "out" ];
97102
};
103+
104+
mkOidDevShell =
105+
llvmVersion:
106+
let
107+
llvmPackages = pkgs."llvmPackages_${toString llvmVersion}";
108+
in
109+
pkgs.mkShell.override { stdenv = llvmPackages.stdenv; } {
110+
inputsFrom = [ self.packages.${system}."oid-llvm${toString llvmVersion}" ];
111+
buildInputs = [ ];
112+
};
98113
in
99114
{
100115
packages = rec {
101-
default = oid-llvm16;
116+
default = self.packages.${system}."oid-llvm${toString defaultLlvmVersion}";
117+
118+
oid-llvm15 = mkOidPackage 15;
119+
oid-llvm16 = mkOidPackage 16;
120+
};
121+
devShells = rec {
122+
default = self.devShells.${system}."oid-llvm${toString defaultLlvmVersion}";
102123

103-
oid-llvm15 = mkOidPackage pkgs.llvmPackages_15;
104-
oid-llvm16 = mkOidPackage pkgs.llvmPackages_16;
124+
oid-llvm15 = mkOidDevShell 15;
125+
oid-llvm16 = mkOidDevShell 16;
105126
};
106127

107128
apps.default = {

0 commit comments

Comments
 (0)