-
Notifications
You must be signed in to change notification settings - Fork 11
Expand file tree
/
Copy pathmcpp.plugins.lua
More file actions
166 lines (164 loc) · 9.09 KB
/
Copy pathmcpp.plugins.lua
File metadata and controls
166 lines (164 loc) · 9.09 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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
-- mcpp:plugins -- the build plugins the mcpp project maintains, one package,
-- each member selected by a feature.
--
-- [dependencies.mcpp]
-- plugins = { version = "0.2.1", features = ["rules-spirv"], host-module = true }
--
-- // build.mcpp
-- import mcpp;
-- import mcpp.rules.spirv;
--
-- Members of 0.2.1, with the mcpp release each relies on:
--
-- mcpp.rules.cuda `rules-cuda` >= 2026.9.5.2
-- mcpp.rules.spirv `rules-spirv` >= 2026.9.5.3; since 0.2.0 it drives glslc
-- as well as glslang, because `xim:shaderc`
-- publishes one -- the route this rule's own
-- source used to call "a claim rather than a
-- feature"
-- mcpp.tools.embed `tools-embed` >= 2026.9.5.4, whose fast path compares a
-- declared file input; without it an edit to
-- the embedded data does not reach the binary
-- mcpp.rules.hip `rules-hip` >= 2026.9.5.2. HIP on the NVIDIA platform
-- is a header layer over the CUDA runtime,
-- so the compiler is the project's own clang
-- and `xim:hip-nvidia` carries no binaries
-- mcpp.rules.sycl `rules-sycl` >= 2026.9.6.1, the release whose
-- device-source table carries `.sycl`. Needs
-- `compat:sycl-runtime` so the artifact can
-- reach `libsycl.so.9` at run time. Since
-- 0.2.1 it also names the C library: the
-- device compiler is a second compiler and
-- does not inherit the toolchain the engine
-- configured, so without `-isystem` pointing
-- at `xim:glibc` and `xim:linux-headers` it
-- reads the host's `/usr/include`. The rule
-- requires both declarations and refuses
-- naming them when they are absent; both are
-- unpinned, because the C library version is
-- the runtime binding's choice and differs
-- between a developer machine and a runner
--
-- The floor recorded for this package is the HIGHEST of those, so it is the
-- collection's floor rather than any one feature's: a project on 2026.9.5.4
-- that wants only `rules-cuda` is refused by it. Splitting the package per
-- member is the alternative and is not taken, because one host-module package
-- is what makes the collection a collection. The
-- engine compiles every module interface unit among a host-module package's
-- feature-resolved sources as a host module of its own (mcpp 2026.9.5.3+),
-- which is what lets one package carry the collection; a consumer on an older
-- mcpp sees the lib root alone and an unknown-module error on import.
--
-- The naming rule is the rule-package specification's I8: `mcpp.rules.<x>` for
-- rules, `mcpp.tools.<x>` for build-time utilities, and the `mcpp.` prefix
-- reserved for this package. `mcpplibs:rules-cuda@0.1.0` (pkgs/r/rules-cuda.lua)
-- stays in the index, superseded by this collection.
--
-- The descriptor points at the source archive of the tag, the shape `grpcgen`
-- established; the CN asset is the same bytes, so one sha256 names both.
package = {
spec = "1",
namespace = "mcpp",
name = "plugins",
description = "Official mcpp build plugins: rule packages under mcpp.rules.*, build-time utilities under mcpp.tools.*, each member selected by a feature (host-module)",
licenses = {"Apache-2.0"},
repo = "https://github.com/mcpp-community/mcpp-plugins",
type = "package",
xpm = {
linux = {
["0.2.1"] = {
url = {
GLOBAL = "https://github.com/mcpp-community/mcpp-plugins/archive/refs/tags/v0.2.1.tar.gz",
CN = "https://gitcode.com/mcpp-res/mcpp-plugins/releases/download/0.2.1/mcpp-plugins-0.2.1.tar.gz",
},
sha256 = "86dcc5975f7fb17910182bc890536fa2685ef2ca947a405969bd9c74e49a48fe",
},
["0.2.0"] = {
url = {
GLOBAL = "https://github.com/mcpp-community/mcpp-plugins/archive/refs/tags/v0.2.0.tar.gz",
CN = "https://gitcode.com/mcpp-res/mcpp-plugins/releases/download/0.2.0/mcpp-plugins-0.2.0.tar.gz",
},
sha256 = "b5ee0cf41f156a3a327c665a84cc60769864f171f20965568255147f06fd4ca2",
},
["0.1.1"] = {
url = {
GLOBAL = "https://github.com/mcpp-community/mcpp-plugins/archive/refs/tags/v0.1.1.tar.gz",
CN = "https://gitcode.com/mcpp-res/mcpp-plugins/releases/download/0.1.1/mcpp-plugins-0.1.1.tar.gz",
},
sha256 = "f2c82e72094b64dddb4edee75173851691e52de9680cd2d07bee5b557d805949",
},
["0.1.0"] = {
url = {
GLOBAL = "https://github.com/mcpp-community/mcpp-plugins/archive/refs/tags/v0.1.0.tar.gz",
CN = "https://gitcode.com/mcpp-res/mcpp-plugins/releases/download/0.1.0/mcpp-plugins-0.1.0.tar.gz",
},
sha256 = "adf1f9d6691a5d05a8a4a94e83c733ea39caee1510ce2c9af4cb23bebabea9f5",
},
["latest"] = { ref = "0.2.1" },
},
macosx = {
["0.2.1"] = {
url = {
GLOBAL = "https://github.com/mcpp-community/mcpp-plugins/archive/refs/tags/v0.2.1.tar.gz",
CN = "https://gitcode.com/mcpp-res/mcpp-plugins/releases/download/0.2.1/mcpp-plugins-0.2.1.tar.gz",
},
sha256 = "86dcc5975f7fb17910182bc890536fa2685ef2ca947a405969bd9c74e49a48fe",
},
["0.2.0"] = {
url = {
GLOBAL = "https://github.com/mcpp-community/mcpp-plugins/archive/refs/tags/v0.2.0.tar.gz",
CN = "https://gitcode.com/mcpp-res/mcpp-plugins/releases/download/0.2.0/mcpp-plugins-0.2.0.tar.gz",
},
sha256 = "b5ee0cf41f156a3a327c665a84cc60769864f171f20965568255147f06fd4ca2",
},
["0.1.1"] = {
url = {
GLOBAL = "https://github.com/mcpp-community/mcpp-plugins/archive/refs/tags/v0.1.1.tar.gz",
CN = "https://gitcode.com/mcpp-res/mcpp-plugins/releases/download/0.1.1/mcpp-plugins-0.1.1.tar.gz",
},
sha256 = "f2c82e72094b64dddb4edee75173851691e52de9680cd2d07bee5b557d805949",
},
["0.1.0"] = {
url = {
GLOBAL = "https://github.com/mcpp-community/mcpp-plugins/archive/refs/tags/v0.1.0.tar.gz",
CN = "https://gitcode.com/mcpp-res/mcpp-plugins/releases/download/0.1.0/mcpp-plugins-0.1.0.tar.gz",
},
sha256 = "adf1f9d6691a5d05a8a4a94e83c733ea39caee1510ce2c9af4cb23bebabea9f5",
},
["latest"] = { ref = "0.2.1" },
},
windows = {
["0.2.1"] = {
url = {
GLOBAL = "https://github.com/mcpp-community/mcpp-plugins/archive/refs/tags/v0.2.1.tar.gz",
CN = "https://gitcode.com/mcpp-res/mcpp-plugins/releases/download/0.2.1/mcpp-plugins-0.2.1.tar.gz",
},
sha256 = "86dcc5975f7fb17910182bc890536fa2685ef2ca947a405969bd9c74e49a48fe",
},
["0.2.0"] = {
url = {
GLOBAL = "https://github.com/mcpp-community/mcpp-plugins/archive/refs/tags/v0.2.0.tar.gz",
CN = "https://gitcode.com/mcpp-res/mcpp-plugins/releases/download/0.2.0/mcpp-plugins-0.2.0.tar.gz",
},
sha256 = "b5ee0cf41f156a3a327c665a84cc60769864f171f20965568255147f06fd4ca2",
},
["0.1.1"] = {
url = {
GLOBAL = "https://github.com/mcpp-community/mcpp-plugins/archive/refs/tags/v0.1.1.tar.gz",
CN = "https://gitcode.com/mcpp-res/mcpp-plugins/releases/download/0.1.1/mcpp-plugins-0.1.1.tar.gz",
},
sha256 = "f2c82e72094b64dddb4edee75173851691e52de9680cd2d07bee5b557d805949",
},
["0.1.0"] = {
url = {
GLOBAL = "https://github.com/mcpp-community/mcpp-plugins/archive/refs/tags/v0.1.0.tar.gz",
CN = "https://gitcode.com/mcpp-res/mcpp-plugins/releases/download/0.1.0/mcpp-plugins-0.1.0.tar.gz",
},
sha256 = "adf1f9d6691a5d05a8a4a94e83c733ea39caee1510ce2c9af4cb23bebabea9f5",
},
["latest"] = { ref = "0.2.1" },
},
},
-- The package's own manifest, at the archive root.
mcpp = "*/mcpp.toml",
}