$ spn

Manifest reference

Top level

TableContents
[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 manifest_toolchain
[[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

FieldTypeRequired
namestringyes
versionstringyes
namespacestring
repostring
authorstring
maintainerstring
upstreamupstream
includearray of source_entry | string
definearray of string
system_depsarray of system_dep_entry | string
macosplatform_macos
buildbuild_script
configurebuild_script

target

FieldTypeRequired
namestringyes
kindsarray of string
sourcearray of source_entry | string
headersarray of source_entry | string
includearray of source_entry | string
definearray of value_entry | string
flagsarray of value_entry | string
system_depsarray of value_entry | string
depsarray of target_dep_entry | string
linkbool
cxxcxx_options
macosplatform_macos
windowsplatform_windows

manifest_toolchain

FieldType
namestring
compilerstring
linkerstring
archiverstring
drivergcc | clang | msvc | zig
cxxstring
hostmap of artifact
mirrorsstring
targetarray of triple

index

FieldTypeRequired
namestringyes
urlstring
pathstring
protocolgit | http | dir
revstring
publish_urlstring

profile

FieldType
linkageshared | static | source | object
standardc89 | c99 | c11
toolchainstring
moderelease | debug
opt0 | 1 | 2 | 3 | s | z
sanitizearray of address | thread | undefined | memory | leak
oswindows | linux | macos | wasi
archx86_64 | aarch64 | wasm32
abignu | musl | msvc | apple
optionswhen

option

FieldTypeRequired
typebool | enumyes
valuesarray of string
defaultoption_defaults
additivebool
definestring
publicbool

deps

FieldType
packagemap of dep | string
testmap of dep | string
buildmap of dep | string

config_entry

FieldType
kindshared | static | source | object
optionswhen
defaultsbool

patch_entry

FieldTypeRequired
filesarray of stringyes

publish

FieldType
copyarray of publish_copy

upstream

FieldTypeRequired
urlstringyes
commitstringyes

source_entry

FieldTypeRequired
pathstringyes
treemanifest | source
whenwhen

system_dep_entry

FieldTypeRequired
libstringyes
whenwhen

platform_macos

FieldType
frameworksarray of string
min_osos_version

build_script

FieldType
sourcearray of source_entry | string
includearray of source_entry | string
definearray of string
flagsarray of string

value_entry

FieldTypeRequired
valuestringyes
whenwhen

target_dep_entry

FieldTypeRequired
pkgstringyes
whenwhen

cxx_options

FieldType
standardc++11 | c++14 | c++17 | c++20 | c++23
exceptionsbool
rttibool

platform_windows

FieldType
subsystemconsole | windows

artifact

FieldType
urlstring
sha256string

triple

FieldType
archx86_64 | aarch64 | wasm32
oswindows | linux | macos | wasi
abignu | musl | msvc | apple

dep

FieldType
versionstring
pathstring
privatebool
whenwhen
optionswhen

publish_copy

FieldTypeRequired
fromstringyes
tostringyes

Extern types

These values are validated by spn itself, outside the manifest schema:

  • when
  • option_defaults
  • os_version