Commit 89f1daa
committed
dist-apple: the bundle directory is the terminal artifact
mcpp run --format <fmt> hands the runner the request's terminal artifact:
the output of an introduced action no other introduced action consumes.
dist-apple's plan submits info-plist, layout, icon and codesign as
parallel steps -- each writes a file inside the bundle and none consumes
another's output -- so a plan with more than one of them has that many
terminal artifacts and mcpp run has no single operand. This is the
iOS-row failure: "produced 4 distributables ... needs exactly one".
The distributable of --format app is the bundle directory itself, not any
one file inside it. Added a final step, id mcpp.dist.apple.bundle, whose
inputs are every previous step's own output (codesign's stamp included,
so the bundle is not the terminal until signing has happened) and whose
single output is the bundle directory, produced by /usr/bin/touch -- a
directory is an acceptable action output (the engine accepts
is_regular_file || is_directory), and touch's refreshed mtime is what
lets ninja record the edge as run. The same plan_for code path serves
both the Contents/-shaped macOS layout and the flat iOS one, so both rows
get the fix together.
tests/ios-app-consumer/check-ios-plan.sh now asserts the property, not
just the step's presence: for every row (simulator, simulator with an
empty stage dir, device, macOS), every other planned step's output must
be named among the bundle step's own inputs, and the bundle step's own
output must be named in no step's inputs anywhere in the plan -- the
property that makes it the plan's sole terminal. The check reads only the
declared "inputs" field, not the whole action line, because ditto's own
argv legitimately names the bundle directory as a copy destination on
every row and that is not a graph dependency. Also asserts no bundle step
is planned on the icon-refused path, where no steps are submitted at all.
tests/app-consumer carries no separate plan-check script; its CI step
execs the bundle directly rather than going through mcpp run --format,
so it was not exposed to this failure.
Verified against the released engine (2026.9.12.3): reverting the
dist/apple.cppm change makes the updated script fail with "no bundle
step planned" on every row; with the change, all five checks pass.1 parent 4438977 commit 89f1daa
2 files changed
Lines changed: 116 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
43 | 43 | | |
44 | 44 | | |
45 | 45 | | |
46 | | - | |
| 46 | + | |
47 | 47 | | |
48 | 48 | | |
49 | 49 | | |
50 | 50 | | |
51 | 51 | | |
| 52 | + | |
52 | 53 | | |
53 | 54 | | |
54 | 55 | | |
55 | 56 | | |
56 | 57 | | |
57 | | - | |
58 | | - | |
59 | | - | |
60 | | - | |
61 | | - | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
62 | 74 | | |
63 | 75 | | |
64 | 76 | | |
| |||
772 | 784 | | |
773 | 785 | | |
774 | 786 | | |
| 787 | + | |
775 | 788 | | |
776 | 789 | | |
| 790 | + | |
| 791 | + | |
| 792 | + | |
| 793 | + | |
| 794 | + | |
| 795 | + | |
| 796 | + | |
| 797 | + | |
| 798 | + | |
| 799 | + | |
| 800 | + | |
| 801 | + | |
| 802 | + | |
| 803 | + | |
| 804 | + | |
| 805 | + | |
| 806 | + | |
| 807 | + | |
| 808 | + | |
| 809 | + | |
| 810 | + | |
| 811 | + | |
| 812 | + | |
| 813 | + | |
| 814 | + | |
| 815 | + | |
| 816 | + | |
| 817 | + | |
| 818 | + | |
| 819 | + | |
777 | 820 | | |
778 | 821 | | |
779 | 822 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
18 | 18 | | |
19 | 19 | | |
20 | 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 | + | |
21 | 82 | | |
22 | 83 | | |
23 | 84 | | |
| |||
89 | 150 | | |
90 | 151 | | |
91 | 152 | | |
| 153 | + | |
92 | 154 | | |
93 | 155 | | |
94 | 156 | | |
| |||
101 | 163 | | |
102 | 164 | | |
103 | 165 | | |
| 166 | + | |
104 | 167 | | |
105 | 168 | | |
106 | 169 | | |
| |||
111 | 174 | | |
112 | 175 | | |
113 | 176 | | |
| 177 | + | |
| 178 | + | |
114 | 179 | | |
115 | 180 | | |
116 | 181 | | |
| |||
123 | 188 | | |
124 | 189 | | |
125 | 190 | | |
| 191 | + | |
126 | 192 | | |
127 | 193 | | |
128 | 194 | | |
| |||
137 | 203 | | |
138 | 204 | | |
139 | 205 | | |
| 206 | + | |
140 | 207 | | |
141 | 208 | | |
0 commit comments