-
Notifications
You must be signed in to change notification settings - Fork 0
/
reference.html
263 lines (247 loc) · 12.7 KB
/
reference.html
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
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Reference — BASIS</title>
<link rel="stylesheet" href="_static/cmake-basis.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
VERSION: 'v3.3 (fb18c98)',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
};
</script>
<script type="text/javascript" src="_static/jquery.js"></script>
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<link rel="shortcut icon" href="_static/favicon.ico"/>
<link rel="author" title="About these documents" href="about.html" />
<link rel="top" title="BASIS" href="index.html" />
<link rel="next" title="API Reference" href="apidoc.html" />
<link rel="prev" title="Plain Text Format" href="guideline/plain-text-format.html" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
</head>
<body>
<div class="related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="apidoc.html" title="API Reference"
accesskey="N">next</a></li>
<li class="right" >
<a href="guideline/plain-text-format.html" title="Plain Text Format"
accesskey="P">previous</a> |</li>
<li><a href="sidebar.html">BASIS</a> »</li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body">
<div class="section" id="reference">
<span id="id1"></span><h1>Reference<a class="headerlink" href="#reference" title="Permalink to this headline">¶</a></h1>
<div class="section" id="basic-tools">
<h2>Basic Tools<a class="headerlink" href="#basic-tools" title="Permalink to this headline">¶</a></h2>
<p>In order to ease certain tasks, the BASIS package also includes the following command-line tools:</p>
<table border="1" class="docutils">
<colgroup>
<col width="18%" />
<col width="82%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="howto/create-and-modify-project.html"><span class="doc">basisproject</span></a></td>
<td>Creates a new project or modifies an existing one in order to add
or remove certain components of the template or to upgrade to a newer template.</td>
</tr>
<tr class="row-even"><td><a class="reference internal" href="howto/run-automated-tests.html"><span class="doc">basistest</span></a></td>
<td>Implements automated software tests.</td>
</tr>
<tr class="row-odd"><td><em>doxyfilter</em></td>
<td>Doxygen filter for all supported languages.</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="cmake-modules">
<h2>CMake Modules<a class="headerlink" href="#cmake-modules" title="Permalink to this headline">¶</a></h2>
<p>The CMake modules and corresponding auxiliary files are used by any BASIS project
for the configuration of the CMake-based build system, so that many setup steps
can be automated. These commands often replace the standard CMake commands.
For example, the CMake function <a class="reference external" href="https://cmake-basis.github.io/apidoc/latest/group__CMakeAPI.html#gab7b7600c0ab4197db811f810a04670be">basis_add_executable()</a> replaces CMake’s
<a class="reference external" href="http://www.cmake.org/cmake/help/cmake-2-8-docs.html#command:add_executable">add_executable()</a>
command.</p>
<p>The main CMake modules are:</p>
<table border="1" class="docutils">
<colgroup>
<col width="31%" />
<col width="69%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference external" href="https://cmake-basis.github.io/apidoc/latest/BasisProject_8cmake.html">BasisProject.cmake</a></td>
<td>File in every BASIS project defining basic project information.</td>
</tr>
<tr class="row-even"><td><a class="reference external" href="https://cmake-basis.github.io/apidoc/latest/BasisTools_8cmake.html">BasisTools.cmake</a></td>
<td>Defines CMake functions, macros, and variables.</td>
</tr>
<tr class="row-odd"><td><a class="reference external" href="https://cmake-basis.github.io/apidoc/latest/BasisTest_8cmake.html">BasisTest.cmake</a></td>
<td>Replacement for the CTest.cmake module of CMake.</td>
</tr>
<tr class="row-even"><td><a class="reference external" href="https://cmake-basis.github.io/apidoc/latest/BasisPack_8cmake.html">BasisPack.cmake</a></td>
<td>Replacement for the CPack.cmake module of CMake.</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="utilities">
<h2>Utilities<a class="headerlink" href="#utilities" title="Permalink to this headline">¶</a></h2>
<p>For each supported programming language, BASIS provides a library of
<a class="reference external" href="https://cmake-basis.github.io/apidoc/latest/group__BasisUtilities.html">utility functions</a>.
Some of these utilities are project independent and thus built and installed as
part of the CMake BASIS package itself. Other utility implementations are project dependent.
Therefore, the BASIS installation contains only template files which are customized and built
during the configuration and build, respectively, of the particular BASIS project. This customization
is done by the functions implemented by the <a class="reference external" href="https://cmake-basis.github.io/apidoc/latest/UtilitiesTools_8cmake.html">UtilitiesTools.cmake</a> module which is
included and utilized by the main <a class="reference external" href="https://cmake-basis.github.io/apidoc/latest/BasisTools_8cmake.html">BasisTools.cmake</a> module.</p>
<p>The BASIS utilities address the following aspects of the software implementation standard:</p>
<ul class="simple">
<li><a class="reference internal" href="standard/cmdline.html"><span class="doc">Command-line Parsing</span></a></li>
<li><a class="reference internal" href="standard/execution.html"><span class="doc">Calling Conventions</span></a></li>
<li><em>Software Testing</em> (TODO)</li>
</ul>
</div>
<div class="section" id="project-layout">
<h2>Project Layout<a class="headerlink" href="#project-layout" title="Permalink to this headline">¶</a></h2>
<p>A brief summary of the common project layout required by all projects that follow BASIS is given below.
Project templates are supplied by the BASIS package to make it easy for projects to follow
this <a class="reference internal" href="standard/fhs.html#sourcecodetree"><span class="std std-ref">BASIS Project Directory Layout</span></a> and standard <a class="reference internal" href="standard/template.html"><span class="doc">Project Template</span></a>.
How to create and use such template is explained in the <a class="reference internal" href="howto/use-and-customize-templates.html"><span class="doc">Using and Customizing Templates</span></a> guide.
The <a class="reference internal" href="howto/create-and-modify-project.html"><span class="doc">basisproject</span></a> command-line tool further automates and simplifies the creation of new projects
based on a project template.</p>
<table border="1" class="docutils">
<colgroup>
<col width="30%" />
<col width="70%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><strong>config/</strong></td>
<td>Package configuration files.</td>
</tr>
<tr class="row-even"><td><strong>data/</strong></td>
<td>Data files required by the software.</td>
</tr>
<tr class="row-odd"><td><strong>doc/</strong></td>
<td>Documentation source files.</td>
</tr>
<tr class="row-even"><td><strong>example/</strong></td>
<td>Example files for users to try out the software.</td>
</tr>
<tr class="row-odd"><td><strong>include/</strong></td>
<td>Header files of the public API of libraries.</td>
</tr>
<tr class="row-even"><td><strong>lib/</strong></td>
<td>Module files for scripting languages.</td>
</tr>
<tr class="row-odd"><td><strong>modules/</strong></td>
<td>Project <a class="reference internal" href="standard/modules.html"><span class="doc">Modules</span></a> (i.e., subprojects).</td>
</tr>
<tr class="row-even"><td><strong>src/</strong></td>
<td>Source code files.</td>
</tr>
<tr class="row-odd"><td><strong>test/</strong></td>
<td>Implementations of unit and regression tests.</td>
</tr>
<tr class="row-even"><td>AUTHORS (.txt|.md)</td>
<td>A list of the people who contributed to this sofware.</td>
</tr>
<tr class="row-odd"><td><a class="reference external" href="https://cmake-basis.github.io/apidoc/latest/BasisProject_8cmake.html">BasisProject.cmake</a></td>
<td>Calls <a class="reference external" href="https://cmake-basis.github.io/apidoc/latest/group__CMakeAPI.html#gad82d479d14499d09c5aeda3af646b9f6">basis_project()</a> to set basic project information.</td>
</tr>
<tr class="row-even"><td>CMakeLists.txt</td>
<td>Root CMake configuration file.</td>
</tr>
<tr class="row-odd"><td>COPYING (.txt|.md)</td>
<td>The copyright and license notices.</td>
</tr>
<tr class="row-even"><td>INSTALL (.txt|.md)</td>
<td>Build and installation instructions.</td>
</tr>
<tr class="row-odd"><td>README (.txt|.md)</td>
<td>Basic summary and references to the documentation.</td>
</tr>
</tbody>
</table>
<div class="admonition seealso">
<p class="first admonition-title">See also</p>
<p class="last">The <a class="reference internal" href="standard/template.html"><span class="doc">Project Template</span></a> for a complete list of required and other standard project files.
The <a class="reference internal" href="download.html#basispackagecontent"><span class="std std-ref">CMake BASIS Package</span></a> itself also serves as an example of a
project following this standard layout.</p>
</div>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">Not all of the named subdirectories must exist in every project.</p>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="sphinxsidebar">
<div class="sphinxsidebarwrapper">
<p class="logo"><a href="index.html">
<img class="logo" src="_static/logo_title.svg" alt="Logo"/>
</a></p>
<div id="searchbox" style="display: none">
<h3>Quick search</h3>
<form class="search" action="search.html" method="get">
<input type="text" name="q" />
<input type="submit" value="Go" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
<p class="searchtip" style="font-size: 90%">
Enter search terms.
</p>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
<h3><a href="contents.html">Table Of Contents</a></h3>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="index.html">Overview</a></li>
<li class="toctree-l1"><a class="reference internal" href="quickstart.html">Quick Start</a></li>
<li class="toctree-l1"><a class="reference internal" href="howto.html">How-to Guides</a></li>
<li class="toctree-l1"><a class="reference internal" href="standard.html">Standards</a></li>
<li class="toctree-l1"><a class="reference internal" href="guideline.html">Guidelines</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Reference</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#basic-tools">Basic Tools</a></li>
<li class="toctree-l2"><a class="reference internal" href="#cmake-modules">CMake Modules</a></li>
<li class="toctree-l2"><a class="reference internal" href="#utilities">Utilities</a></li>
<li class="toctree-l2"><a class="reference internal" href="#project-layout">Project Layout</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="apidoc.html">API</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="changelog.html">News</a></li>
<li class="toctree-l1"><a class="reference internal" href="download.html">Download</a></li>
<li class="toctree-l1"><a class="reference internal" href="install.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="help.html">Support</a></li>
<li class="toctree-l1"><a class="reference internal" href="about.html">About</a></li>
</ul>
<h3>External Links</h3>
<ul>
<li><a href="https://github.com/cmake-basis/BASIS">Repository</a></ li>
<li><a href="https://github.com/cmake-basis/BASIS/issues">Issues</a></ li>
</ul>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
© Copyright 2011-12 University of Pennsylvania, 2013-14 Carnegie Mellon University, 2013-16 Andreas Schuh.
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.4.1.
</div>
</body>
</html>