Mercurial
annotate third_party/tectonic/runtime.bzl @ 254:2b6e732087ff
[ui] Add complete native component catalog
Co-authored-by: Copilot <[email protected]>
| author | MrJuneJune <me@mrjunejune.com> |
|---|---|
| date | Tue, 04 Aug 2026 15:12:09 -0700 |
| parents | 70f2a3dafc1c |
| children |
| rev | line source |
|---|---|
|
247
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
1 def _tectonic_runtime_impl(ctx): |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
2 output = ctx.actions.declare_directory(ctx.label.name) |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
3 commands = [ |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
4 "set -e", |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
5 "mkdir -p {}/bin {}/cache {}/sysroot/etc/fonts {}/sysroot/usr/share/fontconfig/conf.avail".format( |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
6 output.path, |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
7 output.path, |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
8 output.path, |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
9 output.path, |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
10 ), |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
11 "cp {} {}/bin/tectonic".format(ctx.file.binary.path, output.path), |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
12 "cp {} {}/sysroot/etc/fonts/fonts.conf".format( |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
13 ctx.file.fontconfig.path, |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
14 output.path, |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
15 ), |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
16 "cp {} {}/LICENSE".format(ctx.file.license.path, output.path), |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
17 "cp {} {}/THIRD_PARTY_NOTICES.md".format( |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
18 ctx.file.notices.path, |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
19 output.path, |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
20 ), |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
21 "tar -xzf {} -C {}/cache".format( |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
22 ctx.file.cache_archive.path, |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
23 output.path, |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
24 ), |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
25 "chmod 0555 {}/bin/tectonic".format(output.path), |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
26 "chmod 0444 {}/sysroot/etc/fonts/fonts.conf".format(output.path), |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
27 "chmod 0444 {}/LICENSE {}/THIRD_PARTY_NOTICES.md".format( |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
28 output.path, |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
29 output.path, |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
30 ), |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
31 ] |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
32 commands.append("chmod -R a-w {}/cache".format(output.path)) |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
33 |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
34 ctx.actions.run_shell( |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
35 inputs = [ |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
36 ctx.file.binary, |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
37 ctx.file.cache_archive, |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
38 ctx.file.fontconfig, |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
39 ctx.file.license, |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
40 ctx.file.notices, |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
41 ], |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
42 outputs = [output], |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
43 command = "\n".join(commands), |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
44 progress_message = "Assembling offline Tectonic runtime", |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
45 ) |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
46 return [ |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
47 DefaultInfo( |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
48 files = depset([output]), |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
49 runfiles = ctx.runfiles(files = [output]), |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
50 ), |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
51 ] |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
52 |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
53 tectonic_runtime = rule( |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
54 implementation = _tectonic_runtime_impl, |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
55 attrs = { |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
56 "binary": attr.label(allow_single_file = True, mandatory = True), |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
57 "cache_archive": attr.label(allow_single_file = True, mandatory = True), |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
58 "fontconfig": attr.label(allow_single_file = True, mandatory = True), |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
59 "license": attr.label(allow_single_file = True, mandatory = True), |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
60 "notices": attr.label(allow_single_file = True, mandatory = True), |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
61 }, |
|
70f2a3dafc1c
[build] Bundle offline Tectonic runtime
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
62 ) |