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 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

FieldTypeRequired
namestringyes
versionstringyes
namespacestring
repostring
authorstring
maintainerstring
upstreamupstream
includearray of source_entry | string
definearray of value_entry | 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
link_flagsarray of value_entry | string
linker_scriptarray of source_entry | string
system_depsarray of value_entry | string
depsarray of target_dep_entry | string
linkbool
cxxcxx_options
macosplatform_macos
windowsplatform_windows

toolchain_decl

FieldType
namestring
versionstring
compilerstring
linkergnu | lld | ld64 | msvc
link_argsarray of string
archiverstring
drivergcc | clang | msvc | zig
cxxstring
detectmsvc
hostmap of artifact
mirrorsstring
targetarray of toolchain_target | string

index

FieldTypeRequired
namestringyes
urlstring
pathstring
protocolgit | http | dir
revstring
publish_urlstring

profile

FieldType
linkagearray of value_entry | string
standardarray of value_entry | string
toolchainarray of value_entry | string
modearray of value_entry | string
optarray of value_entry | string
sanitizearray of address | thread | undefined | memory | leak
oswindows | linux | macos | wasi | freestanding
archx86_64 | aarch64 | wasm32
abiarray of value_entry | string
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

value_entry

FieldTypeRequired
valuestringyes
whenwhen

system_dep_entry

FieldTypeRequired
libstringyes
whenwhen

platform_macos

FieldType
frameworksarray of value_entry | string
min_osos_version

build_script

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

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

toolchain_target

FieldType
kindstring
archx86_64 | aarch64 | wasm32
oswindows | linux | macos | wasi | freestanding
abignu | musl | msvc | apple | none | elf
sdkstring
sanitizersarray of address | thread | undefined | memory | leak

dep

FieldType
versionstring
pathstring
privatebool
whenwhen
optionswhen

publish_copy

FieldTypeRequired
fromstringyes
tostringyes
whenwhen

Extern types

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

  • when
  • option_defaults
  • os_version