forked from node-webrtc/node-webrtc
-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy pathflake.nix
85 lines (84 loc) · 2.38 KB
/
flake.nix
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
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11";
flake-utils.url = "github:numtide/flake-utils";
};
outputs =
{
self,
nixpkgs,
flake-utils,
}:
flake-utils.lib.eachDefaultSystem (
system:
let
pkgs = nixpkgs.legacyPackages.${system};
lib = nixpkgs.lib;
is-darwin = lib.strings.hasSuffix "darwin" system;
in
{
devShells.default =
let
apple-sdk = if is-darwin then pkgs.apple-sdk_12 else null;
llvm = pkgs.llvmPackages_14;
clang = llvm.clang.overrideAttrs {
apple-sdk = apple-sdk;
};
clang-tools = llvm.clang-tools.overrideAttrs {
apple-sdk = apple-sdk;
};
in
pkgs.mkShell {
nativeBuildInputs =
(with pkgs; [
cmake
ninja
nodejs_20
pkg-config
xcbuild
zlib
])
++ [
clang
clang-tools
]
++ (if is-darwin then [ apple-sdk ] else [ ]);
# Build variables based on documentation from https://github.com/timniederhausen/gn-build/blob/01c96fd9981b111a3a028356284968acd77fa435/README.md
shellHook =
''
cat <<EOF > nix.gni
is_clang=true
use_lld=false
clang_base_path="${clang}"
clang_use_chrome_plugins=false
''
+ (
if is-darwin then
''
mac_sdk_path="${apple-sdk}/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk"
''
else
""
)
+ ''
EOF
cat <<EOF > .lazy.lua
-- Override the version of clang used for clangd
return {
{
"neovim/nvim-lspconfig",
opts = {
servers = {
clangd = {
cmd = { "clangd", "--query-driver=${clang}/bin/clang++" },
},
},
},
},
}
EOF
'';
};
}
);
}