Currently the Mezzanine engine is one monolithic code base. Many of the libaries can work independently and still be extemely useful. The Jagati Refactor is the modularizing of these libraries.
This page describes the contents of one Jagati package. We wil pull a piece of the Mezzanine out and make a package from it. It will be refactored and adjusted to meet the standards here.
Each package will compile under Clang, GCC, MinGW, TDM-gcc and Visual Studio. Each compilation will enable "-werror" or whatever compiler flag turns all warnings into errors. A slew of extra compiler warnings will be enabled to minimize the chance of writing bugs.
We will keep our current level of documentation. We will keep out curent level of coverage for our automated generation
A rough file hiearchy:
The root folder.
We need to describe variables the variables that the root CMakeLists.txt. This is still being decided on and will likely be determined by ruslo/hunter.
This file tells git what does not need to be included in the build.
Each Jagati package will be built and run automatically on a variety of platforms automatically.
This should have an overview
This file will have legal details about copying the files and resources in the package. The Default for most Jagati packages is the GPL v3 but the BSD License is good to. The are no technical reasons other licenses couldn't be described here.
Extra docmentation headers and files ought to go here.
If this optional file is present it is the file that Doxygen will read. This should include all the files that are Doxygen documented.
Describe why to separate headers from source files here.
Many Packages provide some kind of functionality provided by external systems or that require very complex algorithms. Any external libraries providing such functionality can
The implementation of a package goes here.
Most people do not want to build their whole game or application in C++. Swig reads the C/C++ source code of the package and generates bindings for other languages to be able to use the Mezzanine.
If this file is present it is the entry point for Swig. This should include all the headers that SWIG is to read and prepare bindings for.
A directory full of files that each contain one class describing tests for one part of the system