Top level
| Table | Contents |
|---|---|
[package] | package — required |
[[lib]] | array of target |
[[bin]] | array of target |
[[script]] | array of target |
[[test]] | array of target |
[[example]] | array of target |
[[toolchain]] | array of toolchain_decl |
[[index]] | array of index |
[profile.<name>] | map of profile |
[options.<name>] | map of option |
[deps] | deps |
[config.<name>] | map of config_entry |
[patch.<name>] | map of patch_entry |
[publish] | publish |
package
| Field | Type | Required |
|---|---|---|
name | string | yes |
version | string | yes |
namespace | string | |
repo | string | |
author | string | |
maintainer | string | |
upstream | upstream | |
include | array of source_entry | string | |
define | array of value_entry | string | |
system_deps | array of system_dep_entry | string | |
macos | platform_macos | |
build | build_script | |
configure | build_script |
target
| Field | Type | Required |
|---|---|---|
name | string | yes |
kinds | array of string | |
source | array of source_entry | string | |
headers | array of source_entry | string | |
include | array of source_entry | string | |
define | array of value_entry | string | |
flags | array of value_entry | string | |
link_flags | array of value_entry | string | |
linker_script | array of source_entry | string | |
system_deps | array of value_entry | string | |
deps | array of target_dep_entry | string | |
link | bool | |
cxx | cxx_options | |
macos | platform_macos | |
windows | platform_windows |
toolchain_decl
| Field | Type |
|---|---|
name | string |
version | string |
compiler | string |
linker | gnu | lld | ld64 | msvc |
link_args | array of string |
archiver | string |
driver | gcc | clang | msvc | zig |
cxx | string |
detect | msvc |
host | map of artifact |
mirrors | string |
target | array of toolchain_target | string |
index
| Field | Type | Required |
|---|---|---|
name | string | yes |
url | string | |
path | string | |
protocol | git | http | dir | |
rev | string | |
publish_url | string |
profile
| Field | Type |
|---|---|
linkage | array of value_entry | string |
standard | array of value_entry | string |
toolchain | array of value_entry | string |
mode | array of value_entry | string |
opt | array of value_entry | string |
sanitize | array of address | thread | undefined | memory | leak |
os | windows | linux | macos | wasi | freestanding |
arch | x86_64 | aarch64 | wasm32 |
abi | array of value_entry | string |
options | when |
option
| Field | Type | Required |
|---|---|---|
type | bool | enum | yes |
values | array of string | |
default | option_defaults | |
additive | bool | |
define | string | |
public | bool |
deps
| Field | Type |
|---|---|
package | map of dep | string |
test | map of dep | string |
build | map of dep | string |
config_entry
| Field | Type |
|---|---|
kind | shared | static | source | object |
options | when |
defaults | bool |
patch_entry
| Field | Type | Required |
|---|---|---|
files | array of string | yes |
publish
| Field | Type |
|---|---|
copy | array of publish_copy |
upstream
| Field | Type | Required |
|---|---|---|
url | string | yes |
commit | string | yes |
source_entry
| Field | Type | Required |
|---|---|---|
path | string | yes |
tree | manifest | source | |
when | when |
value_entry
| Field | Type | Required |
|---|---|---|
value | string | yes |
when | when |
system_dep_entry
| Field | Type | Required |
|---|---|---|
lib | string | yes |
when | when |
platform_macos
| Field | Type |
|---|---|
frameworks | array of value_entry | string |
min_os | os_version |
build_script
| Field | Type |
|---|---|
source | array of source_entry | string |
include | array of source_entry | string |
define | array of value_entry | string |
flags | array of value_entry | string |
target_dep_entry
| Field | Type | Required |
|---|---|---|
pkg | string | yes |
when | when |
cxx_options
| Field | Type |
|---|---|
standard | c++11 | c++14 | c++17 | c++20 | c++23 |
exceptions | bool |
rtti | bool |
platform_windows
| Field | Type |
|---|---|
subsystem | console | windows |
artifact
| Field | Type |
|---|---|
url | string |
sha256 | string |
toolchain_target
| Field | Type |
|---|---|
kind | string |
arch | x86_64 | aarch64 | wasm32 |
os | windows | linux | macos | wasi | freestanding |
abi | gnu | musl | msvc | apple | none | elf |
sdk | string |
sanitizers | array of address | thread | undefined | memory | leak |
dep
| Field | Type |
|---|---|
version | string |
path | string |
private | bool |
when | when |
options | when |
publish_copy
| Field | Type | Required |
|---|---|---|
from | string | yes |
to | string | yes |
when | when |
Extern types
These values are validated by spn itself, outside the manifest schema:
whenoption_defaultsos_version