Repository navigation
Expand file tree
/
Copy pathmcpp.toml
More file actions
65 lines (58 loc) · 2.83 KB
/
Copy pathmcpp.toml
File metadata and controls
65 lines (58 loc) · 2.83 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
[package]
name = "platform-targets"
version = "0.1.0"
# ANDROID'S API LEVEL IS A PROJECT DECISION, NOT A TOOLCHAIN PROPERTY, which
# is why it lives here and not in the triple. One NDK serves a range of levels,
# and the level selects which bionic symbols exist -- so it is an ABI axis and
# it enters the build fingerprint: two levels are two build directories.
#
# It is OPTIONAL. Left out, mcpp reads the floor the NDK itself declares in
# `meta/platforms.json` (21 for r30). It is stated here because a project that
# ships to a minimum should say so rather than inherit whatever the payload's
# floor happens to be.
#
# `macos_deployment_target` in `[package]` is the same axis for Apple targets;
# a target is one or the other, so they share one slot in the fingerprint.
[target.aarch64-linux-android]
min_api_level = 24
[target.x86_64-linux-android]
min_api_level = 24
# APPLE'S SECOND PLATFORM, AND ITS OWN VERSION SPACE. `"18.0"` is an iOS
# version; `macos_deployment_target` takes a macOS one, and `"14.0"` means
# nothing to an iOS SDK. A target is one platform or the other, so the two keys
# share a single slot in the build fingerprint.
#
# It is carried by the EFFECTIVE TRIPLE and nowhere else --
# `arm64-apple-ios18.0` and `arm64-apple-ios18.0-simulator`, Apple's own
# spellings. No `-miphoneos-version-min` flag is emitted: the triple fully
# determines the platform and the minimum, and a flag would be a second place
# answering a question the triple already answers.
[build]
ios_deployment_target = "18.0"
# THE SIMULATOR'S SESSION BELONGS TO A PACKAGE. `runner` is an argv prefix, so
# `mcpp run --target aarch64-ios-sim` executes `simctl-run <artifact>`; the
# program chooses a device, boots it if it is not booted, waits for the boot,
# spawns, and returns the program's own exit status. A manifest line has no
# beginning and no end, which is why that work is not written here.
#
# The DEVICE row keeps `runner` unset. An artifact cannot be run off an iOS
# device without a signature the developer owns.
[target.aarch64-ios-sim]
runner = ["simctl-run"]
[target.x86_64-ios-sim]
runner = ["simctl-run"]
# THE RUNNER'S PROGRAM IS DECLARED BESIDE THE ROWS THAT USE IT.
#
# `simctl-run` comes from `xim:apple-simulator-tools`, a package that exists for
# macOS alone. Declared under a target's `xlings.workspace`, it is installed
# only when that target is built, so the Linux, Android and Web rows of this
# example never ask for it.
#
# An earlier version of this file said the declaration was impossible, citing
# `[target.aarch64-ios-sim.xlings] does not accept 'deps'`. The refusal was
# real and the conclusion was not: `deps` is the unconditional spelling, and
# `workspace` is the one a target section accepts.
[target.aarch64-ios-sim.xlings.workspace]
"xim:apple-simulator-tools" = ""
[target.x86_64-ios-sim.xlings.workspace]
"xim:apple-simulator-tools" = ""