3.4 KiB
3.4 KiB
Exemples / DO-DON'T — Chapitre 35 — Manifests et workspaces
Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
Exemples actuellement présents dans le chapitre
Exemple 1
workspace.manifest.toml
project.manifest.toml
Exemple 2
manifest-version = 1
Exemple 3
manifest-version = 1
[workspace]
projects-root = "projects"
members = [
"core",
"compiler",
"sdk",
]
[workspace.output]
build-root = "build"
temp-build-root = ".saselang/tmp"
[workspace.defaults.project]
vendor = "saselang"
version = "0.1.0"
license = "..."
authors = ["..."]
repository = "..."
[workspace.defaults.source]
root = "src"
[workspace.defaults.build]
profile = "dev"
target = "host"
[workspace.defaults.paths]
dependencies = ["vendor"]
native-libraries = ["native/lib"]
native-includes = ["native/include"]
[workspace.dependencies."saselang/core@^1.0"]
source = "registry"
[workspace.dependencies."acme/math@^2.4"]
source = "git"
url = "https://example.invalid/acme/math.git"
[workspace.dependencies."local/tools@^1.0"]
source = "local"
path = "../shared/tools"
Exemple 4
build-root
racine des sorties de build persistantes
temp-build-root
racine des fichiers temporaires/intermédiaires de build
Exemple 5
workspace.defaults.project
workspace.defaults.source
workspace.defaults.build
workspace.defaults.paths
Exemple 6
scalaire absent dans le projet
-> valeur workspace héritée
scalaire présent dans le projet
-> remplacement
liste absente dans le projet
-> liste workspace héritée
liste présente dans le projet
-> remplacement complet de la liste
Exemple 7
vendor/package@requirement
Exemple 8
workspace
local
git
registry
native
system
Exemple 9
manifest-version = 1
[project]
vendor = "acme"
name = "my-application"
version = "1.2.0"
type = "bin"
description = "..."
license = "..."
authors = ["..."]
repository = "..."
[source]
root = "src"
[build]
profile = "dev"
target = "host"
[paths]
dependencies = ["vendor"]
native-libraries = ["native/lib"]
native-includes = ["native/include"]
[dependencies]
"saselang/core@^1.0" = { workspace = true }
[build.dependencies]
[dev.dependencies]
[dev.unit.dependencies]
[dev.integration.dependencies]
[dev.environment.dependencies]
Exemple 10
vendor
name
version
type
Exemple 11
description
license
authors
repository
Exemple 12
src
Exemple 13
profile
target
Exemple 14
dependencies
native-libraries
native-includes
Exemple 15
[dependencies]
"saselang/core@^1.0" = { workspace = true }
Exemple 16
[dependencies."acme/math@^2.4"]
source = "git"
url = "https://example.invalid/acme/math.git"
Exemple 17
valeurs intrinsèques/defaults du langage/toolchain
< workspace.defaults.*
< project.manifest.toml
< options explicites de la commande de build lorsque l'option est conçue pour être overridable
Exemple 18
lib
bin
DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration 0.2.12 conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.