forked from nodejs/node
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathnon-v8-deps-mock.nix
More file actions
76 lines (71 loc) · 1.77 KB
/
non-v8-deps-mock.nix
File metadata and controls
76 lines (71 loc) · 1.77 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
{
symlinkJoin,
writeTextFile,
validatePkgConfig,
testers,
lib,
}:
let
sharedLibsToMock = {
zlib = [ "zlib" ];
http-parser = [ "libllhttp" ];
libuv = [ "libuv" ];
ada = [ "ada" ];
simdjson = [ "simdjson" ];
brotli = [
"libbrotlidec"
"libbrotlienc"
];
cares = [ "libcares" ];
gtest = [ "gtest" ];
hdr-histogram = [ "hdr_histogram" ];
merve = [ "merve" ];
nbytes = [ "nbytes" ];
nghttp2 = [ "libnghttp2" ];
nghttp3 = [ "libnghttp3" ];
ngtcp2 = [ "libngtcp2" ];
uvwasi = [ "uvwasi" ];
zstd = [ "libzstd" ];
};
in
symlinkJoin (finalAttrs: {
pname = "non-v8-deps-mock";
version = "0.0.0-mock";
nativeBuildInputs = [ validatePkgConfig ];
paths = lib.concatMap (
sharedLibName:
(builtins.map (
pkgName:
writeTextFile {
name = "mock-${pkgName}.pc";
destination = "/lib/pkgconfig/${pkgName}.pc";
text = ''
Name: ${pkgName}
Description: Mock package for ${sharedLibName}
Version: ${finalAttrs.version}
Libs:
Cflags:
'';
}
) sharedLibsToMock.${sharedLibName})
) (builtins.attrNames sharedLibsToMock);
passthru = {
configureFlags = [
"--without-lief"
"--without-sqlite"
"--without-ssl"
]
++ (lib.concatMap (sharedLibName: [
"--shared-${sharedLibName}"
"--shared-${sharedLibName}-libname="
]) (builtins.attrNames sharedLibsToMock));
tests.pkg-config = testers.hasPkgConfigModules {
package = finalAttrs.finalPackage;
};
};
meta = {
description = "Mock of Node.js dependencies that are not needed for building V8";
license = lib.licenses.mit;
pkgConfigModules = lib.concatMap (x: x) (builtins.attrValues sharedLibsToMock);
};
})