1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
|
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Manifest Format — Divina</title>
<link rel="stylesheet" href="assets/fonts.css">
<link rel="stylesheet" href="assets/graphite.css">
<link rel="stylesheet" href="assets/pygments.css">
</head>
<body class="node-manifest-format node">
<header class="masthead">
<h1><a href="index.html">Divina</a></h1>
<p class="tagline">🎀 A modern build system for assembly</p>
<p class="version">Version 0.1.0</p>
<nav class="menu">
<input id="menu-check" type="checkbox"/>
<label id="menu-label" for="menu-check" class="unselectable">
<span class="icon close-icon">✕</span>
<span class="icon open-icon">☰</span>
<span class="text">Menu</span>
</label>
<ul>
<li><a href="index.html">Home</a></li>
<li><a href="manifest-format.html">Manifest Format</a><ul>
<li><a href="manifest-format/examples.html">Examples</a></li>
</ul>
</li>
<li><a href="about.html">About</a></li>
<li><a href="https://github.com/divinaland/Divina">GitHub</a></li>
</ul>
</nav>
</header>
<article class="main">
<header class="title">
<h1>Manifest Format — Divina</h1>
<hr>
</header>
<h2 id="rules">
Rules
</h2>
<ul>
<li>
All Divina manifests must be named <code>Divina.lua</code>
</li>
<li>
Package manifests should be in a subdirectory
</li>
<li>
A workspace manifest can only source package manifests
</li>
</ul>
<h2 id="divina-exposed-globals">
Divina Exposed Globals
</h2>
<pre class="lang-lua pygments" data-lang="lua">
<span class="c1">--- @class Divina</span>
<span class="c1">--- @field public version string Installed Divina version</span>
<span class="c1">--- @field public Type table<string, number> Package type</span>
<span class="c1">--- @field public Arch table<string, number> Architecture to compile for</span>
<span class="n">Divina</span> <span class="o">=</span> <span class="p">{</span>
<span class="n">version</span><span class="p">,</span>
<span class="n">Type</span> <span class="o">=</span> <span class="p">{</span>
<span class="n">Bin</span> <span class="o">=</span> <span class="mi">1</span><span class="p">,</span>
<span class="n">Lib</span> <span class="o">=</span> <span class="mi">2</span><span class="p">,</span>
<span class="p">},</span>
<span class="n">Arch</span> <span class="o">=</span> <span class="p">{</span>
<span class="n">x86</span> <span class="o">=</span> <span class="mi">1</span><span class="p">,</span>
<span class="n">x64</span> <span class="o">=</span> <span class="mi">2</span><span class="p">,</span>
<span class="p">},</span>
<span class="p">}</span>
<span class="c1">--- @return void</span>
<span class="kr">function</span> <span class="nf">test</span><span class="p">()</span> <span class="kr">end</span>
</pre>
<h2 id="workspace-manifest-format">
Workspace Manifest Format
</h2>
<pre class="lang-lua pygments" data-lang="lua">
<span class="c1">--- @class Workspace</span>
<span class="c1">--- @field public members string[]</span>
<span class="n">Workspace</span> <span class="o">=</span> <span class="p">{</span>
<span class="n">members</span><span class="p">,</span>
<span class="p">}</span>
</pre>
<h2 id="package-manifest-format">
Package Manifest Format
</h2>
<pre class="lang-lua pygments" data-lang="lua">
<span class="c1">--- @class Package</span>
<span class="c1">--- @field public name string</span>
<span class="c1">--- @field public version string</span>
<span class="c1">--- @field public description string</span>
<span class="c1">--- @field public compile_options string[]</span>
<span class="c1">--- @field public minimum_divina_version string</span>
<span class="c1">--- @field public sources string[]</span>
<span class="c1">--- @field public compiler string</span>
<span class="n">Package</span> <span class="o">=</span> <span class="p">{</span>
<span class="n">name</span><span class="p">,</span>
<span class="n">version</span><span class="p">,</span>
<span class="n">description</span><span class="p">,</span>
<span class="n">compile_options</span><span class="p">,</span>
<span class="n">minimum_divina_version</span><span class="p">,</span>
<span class="n">sources</span><span class="p">,</span>
<span class="nb">type</span><span class="p">,</span>
<span class="n">arch</span><span class="p">,</span>
<span class="n">compiler</span><span class="p">,</span>
<span class="p">}</span>
</pre>
</article>
</body>
</html>
|