-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathgrpc.lua
More file actions
76 lines (74 loc) · 3.99 KB
/
Copy pathgrpc.lua
File metadata and controls
76 lines (74 loc) · 3.99 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
-- Form A descriptor: the public gRPC package ships its own mcpp.toml, so this
-- file carries metadata and a download address and nothing else. mcpp's default
-- lookup finds <verdir>/*/mcpp.toml inside the GitHub source tarball wrap.
--
-- WHY THIS IS A SEPARATE REPOSITORY. Every other heavy library in this index is
-- a `compat` descriptor pointing at an upstream tarball. gRPC cannot be: it
-- publishes NO self-contained source artifact. v1.83.0 has no release assets at
-- all, and its tag archive carries abseil, protobuf, re2, boringssl and zlib as
-- EMPTY submodule placeholders (one directory entry each), so there is nothing
-- for `url` + `sha256` to point at. grpc-m's release tarball IS that artifact:
-- upstream's src/ and include/ vendored with zero patches, plus the two
-- third_party pieces gRPC really does ship (address_sorting, xxhash).
--
-- WHAT IT DOES NOT VENDOR is the reason it belongs in this index rather than
-- standing alone. abseil, protobuf(+upb), re2, c-ares, OpenSSL and zlib are all
-- taken from the packages here, so a consumer that also uses protobuf or abseil
-- directly links ONE copy instead of colliding with a second vendored set. The
-- descriptors it depends on landed in #147 (abseil, protobuf), #148 (re2, the
-- protobuf `upb` feature) and #149 (c-ares).
--
-- The package builds without CMake, Bazel or a configure step: gRPC's tree
-- contains no .h.in or config.h.cmake, and its generated upb code is checked in
-- upstream, so mcpp needs only include paths. 1001 TUs, all compiled by the
-- resolved toolchain — no external build system runs, so nothing inherits a
-- foreign C++ ABI.
--
-- Exposes `import grpc;` over gRPC's public C++ API. The import must come AFTER
-- every textual #include in a TU (gRPC's codegen emits headers, so real
-- programs always mix the two); the package's README explains why and the
-- module's own header comment carries the measured failure modes.
--
-- linux + macOS only; see the note in the xpm table.
--
-- Optional feature `ares` is ON by default, matching upstream gRPC:
-- `grpc = { version = "1.83.0", default-features = false }` drops the c-ares
-- resolver and its dependency, which is upstream's own `grpc_no_ares=true`.
package = {
spec = "1",
name = "grpc",
namespace = "mcpplibs",
description = "gRPC 1.83.0 — vendored upstream source build with import grpc; (abseil/protobuf/re2/c-ares/OpenSSL come from this index)",
licenses = {"Apache-2.0"},
repo = "https://github.com/mcpplibs/grpc-m",
type = "package",
xpm = {
linux = {
["1.83.0"] = {
url = {
GLOBAL = "https://github.com/mcpplibs/grpc-m/archive/refs/tags/v1.83.0.tar.gz",
CN = "https://gitcode.com/mcpp-res/grpc/releases/download/1.83.0/grpc-m-1.83.0.tar.gz",
},
sha256 = "99cf3bda0a4e025f674f08dd68183538c2f655c3f72a55e1e2c1f4e05a282f43",
},
},
macosx = {
["1.83.0"] = {
url = {
GLOBAL = "https://github.com/mcpplibs/grpc-m/archive/refs/tags/v1.83.0.tar.gz",
CN = "https://gitcode.com/mcpp-res/grpc/releases/download/1.83.0/grpc-m-1.83.0.tar.gz",
},
sha256 = "99cf3bda0a4e025f674f08dd68183538c2f655c3f72a55e1e2c1f4e05a282f43",
},
},
-- No windows block, and the reason is a DEPENDENCY rather than gRPC:
-- compat.openssl has no windows xpm entry ("windows deferred —
-- requires prebuilt MSVC libs"), so resolution there fails with
-- E_NOT_FOUND: package 'compat:openssl@3.5.1' not found
-- before anything is compiled. gRPC's secure build cannot drop TLS, so
-- this package's platform coverage is exactly compat.openssl's, and it
-- widens the day that entry lands — the package already carries its
-- windows compile/link flags.
},
-- (no `mcpp` field -- default lookup will find <verdir>/*/mcpp.toml)
}