BlackTopp Studios
inc
Main
Namespaces
Classes
Files
File List
File Members
Mezzanine
src
dox
jagati_package.h
1
// © Copyright 2010 - 2016 BlackTopp Studios Inc.
2
/* This file is part of The Mezzanine Engine.
3
4
The Mezzanine Engine is free software: you can redistribute it and/or modify
5
it under the terms of the GNU General Public License as published by
6
the Free Software Foundation, either version 3 of the License, or
7
(at your option) any later version.
8
9
The Mezzanine Engine is distributed in the hope that it will be useful,
10
but WITHOUT ANY WARRANTY; without even the implied warranty of
11
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
GNU General Public License for more details.
13
14
You should have received a copy of the GNU General Public License
15
along with The Mezzanine Engine. If not, see <http://www.gnu.org/licenses/>.
16
*/
17
/* The original authors have included a copy of the license specified above in the
18
'Docs' folder. See 'gpl.txt'
19
*/
20
/* We welcome the use of the Mezzanine engine to anyone, including companies who wish to
21
Build professional software and charge for their product.
22
23
However there are some practical restrictions, so if your project involves
24
any of the following you should contact us and we will try to work something
25
out:
26
- DRM or Copy Protection of any kind(except Copyrights)
27
- Software Patents You Do Not Wish to Freely License
28
- Any Kind of Linking to Non-GPL licensed Works
29
- Are Currently In Violation of Another Copyright Holder's GPL License
30
- If You want to change our code and not add a few hundred MB of stuff to
31
your distribution
32
33
These and other limitations could cause serious legal problems if you ignore
34
them, so it is best to simply contact us or the Free Software Foundation, if
35
you have any questions.
36
37
Joseph Toppi - toppij@gmail.com
38
John Blackwood - makoenergy02@gmail.com
39
*/
40
#ifndef _jagati_package_h
41
#define _jagati_package_h
42
43
/**
44
@page jagati_package Jagati Package and Refactor
45
Currently the Mezzanine engine is one monolithic code base. Many of the libaries can work
46
independently and still be extemely useful. The Jagati Refactor is the modularizing of these
47
libraries.
48
49
@n
50
This page describes the contents of one Jagati package. We wil pull a piece of the Mezzanine out
51
and make a package from it. It will be refactored and adjusted to meet the standards here.
52
53
@n
54
Each package will compile under Clang, GCC, MinGW, TDM-gcc and Visual Studio. Each compilation
55
will enable "-werror" or whatever compiler flag turns all warnings into errors. A slew of extra
56
compiler warnings will be enabled to minimize the chance of writing bugs.
57
58
@n
59
We will keep our current level of documentation. We will keep out curent level of coverage for
60
our automated generation
61
62
@section jagati_package_package Modules after Jagati Refactor
63
64
@dot Jagati Packages and Dependencies
65
digraph JagatiPackages {
66
67
EntreLua [shape=box];
68
Armadillo [shape=box];
69
70
Lua51Bindings [shape=box];
71
RubyBindings [shape=box];
72
JavaBindings [shape=box];
73
74
Scripting [shape=box];
75
Input [shape=box];
76
Network [shape=box];
77
Resource [shape=box];
78
79
Graphics [shape=box];
80
UI [shape=box];
81
Physics [shape=box];
82
Noise [shape=box];
83
Audio [shape=box];
84
85
Entresol [shape=box];
86
Threading [shape=box];
87
Base [shape=box];
88
Math [shape=box];
89
90
StaticFoundation [shape=box];
91
Testing [shape=box];
92
Foundation [shape=box];
93
94
EntreLua -> Lua51Bindings;
95
Armadillo -> UI;
96
97
Lua51Bindings -> Scripting;
98
RubyBindings -> Scripting;
99
JavaBindings -> Scripting;
100
101
Scripting -> Base;
102
Input -> Base;
103
Network -> Base;
104
Resource -> Base;
105
106
UI -> Graphics;
107
Graphics -> Base;
108
Graphics -> Math;
109
Audio -> Base;
110
Audio -> Math;
111
Physics -> Base;
112
Physics -> Math;
113
Noise -> Base;
114
Noise -> Math;
115
116
Entresol -> Threading;
117
Entresol -> Base;
118
Threading -> Foundation;
119
Base -> Foundation;
120
Math -> Foundation;
121
122
Foundation -> Testing;
123
Testing -> StaticFoundation;
124
Foundation -> StaticFoundation;
125
}
126
@enddot
127
128
@section jagati_package_files Files and Folders in a package
129
A rough file hiearchy:
130
131
- @ref jagati_package_root – Package Root
132
- @ref jagati_package_cmake "CMakeLists.txt"
133
- @ref jagati_package_license
134
- @ref jagati_package_ci
135
- @ref jagati_package_readme
136
- @ref jagati_package_dox_dir
137
- @ref jagati_package_dox_h
138
- @ref jagati_package_include_dir
139
- @ref jagati_package_lib_dir
140
- @ref jagati_package_src_dir
141
- @ref jagati_package_swig_dir
142
- @ref jagati_package_swig_config_h
143
- @ref jagati_package_test_dir
144
145
@section jagati_package_root / – Package Root
146
The root folder.
147
148
@section jagati_package_cmake CMakeLists.txt and Jagati CMake API
149
We need to describe variables the variables that the root CMakeLists.txt. This is still being
150
decided on and will likely be determined by ruslo/hunter.
151
152
@section jagati_package_gitignores .gitignore
153
This file tells git what does not need to be included in the build.
154
155
@section jagati_package_ci .travis.yml and appveyor.yml – Coninuous Integration Config
156
Each Jagati package will be built and run automatically on a variety of platforms automatically.
157
158
@section jagati_package_readme README.md – Technical details for Humans
159
This should have an overview
160
161
@section jagati_package_license COPYING.md
162
This file will have legal details about copying the files and resources in the package. The
163
Default for most Jagati packages is the
164
@htmlonly<a href="">@endhtmlonly
165
GPL v3
166
@htmlonly</a>@endhtmlonly
167
but the
168
@htmlonly<a href="">@endhtmlonly
169
BSD License
170
@htmlonly</a>@endhtmlonly
171
is good to. The are no technical reasons other licenses couldn't be described here.
172
173
@section jagati_package_dox_dir dox/ – Special Considerations for Doxygen.
174
Extra docmentation headers and files ought to go here.
175
176
@subsection jagati_package_dox_h dox/dox.h – Doxygen entry point
177
If this optional file is present it is the file that Doxygen will read. This should include
178
all the files that are Doxygen documented.
179
180
@section jagati_package_include_dir include/ – Header directory for others to use
181
Describe why to separate headers from source files here.
182
183
@section jagati_package_lib_dir lib/ – Internal libraray source
184
Many Packages provide some kind of functionality provided by external systems or that require
185
very complex algorithms. Any external libraries providing such functionality can
186
187
@section jagati_package_src_dir src/ – Actual source code
188
The implementation of a package goes here.
189
190
@section jagati_package_swig_dir swig/ – Special Considerations for SWIG.
191
Most people do not want to build their whole game or application in C++. Swig reads the C/C++
192
source code of the package and generates bindings for other languages to be able to use the
193
Mezzanine.
194
195
@subsection jagati_package_swig_config_h swig/SwigConfig.h – SWIG Entry Point.
196
If this file is present it is the entry point for Swig. This should include all the headers
197
that SWIG is to read and prepare bindings for.
198
199
@section jagati_package_test_dir test/ – Test Headers
200
A directory full of files that each contain one class describing tests for one part of the
201
system
202
203
*/
204
205
#endif
Generated on Wed Apr 6 2016 08:34:46 for BlackTopp Studios inc by
1.8.9.1. Thanks to the
Open Icon Library
for help with some of the icons.