summaryrefslogtreecommitdiff
path: root/manifest-format.html
blob: 0fb42ade407a2496a630f0076623bafcfe473e6e (plain) (blame)
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 &mdash; 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 &mdash; 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&lt;string, number&gt; Package type</span>
<span class="c1">--- @field public Arch table&lt;string, number&gt; 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>