summaryrefslogtreecommitdiff
path: root/src/manifest-format.stx
diff options
context:
space:
mode:
Diffstat (limited to 'src/manifest-format.stx')
-rw-r--r--src/manifest-format.stx67
1 files changed, 67 insertions, 0 deletions
diff --git a/src/manifest-format.stx b/src/manifest-format.stx
new file mode 100644
index 0000000..f4d13e6
--- /dev/null
+++ b/src/manifest-format.stx
@@ -0,0 +1,67 @@
+---
+title: Manifest Format — Divina
+meta_title: Manifest Format — Divina
+---
+
+## Rules
+
+- All Divina manifests must be named `Divina.lua`
+- Package manifests should be in a subdirectory
+- A workspace manifest can only source package manifests
+
+## Divina Exposed Globals
+
+::: code lua
+
+ --- @class Divina
+ --- @field public version string Installed Divina version
+ --- @field public Type table<string, number> Package type
+ --- @field public Arch table<string, number> Architecture to compile for
+ Divina = {
+ version,
+ Type = {
+ Bin = 1,
+ Lib = 2,
+ },
+ Arch = {
+ x86 = 1,
+ x64 = 2,
+ },
+ }
+
+ --- @return void
+ function test() end
+
+## Workspace Manifest Format
+
+::: code lua
+
+ --- @class Workspace
+ --- @field public members string[]
+ Workspace = {
+ members,
+ }
+
+## Package Manifest Format
+
+::: code lua
+
+ --- @class Package
+ --- @field public name string
+ --- @field public version string
+ --- @field public description string
+ --- @field public compile_options string[]
+ --- @field public minimum_divina_version string
+ --- @field public sources string[]
+ --- @field public compiler string
+ Package = {
+ name,
+ version,
+ description,
+ compile_options,
+ minimum_divina_version,
+ sources,
+ type,
+ arch,
+ compiler,
+ }