Merge pull request #1 from QuasarApp/devGuide

Added the developing guide
This commit is contained in:
Andrei Yankovich 2021-04-04 19:38:04 +03:00 committed by GitHub
commit 127ec0076d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 51 additions and 0 deletions

50
Developming.md Normal file
View File

@ -0,0 +1,50 @@
# Developing in the QuasarApp group
QuasarApp group developing guid. This page collected all guides for using programming languages.
## C++
For build c++ projects QuasarApp group use the CMake build system.
1. All new projects should be created using our [cmake](https://github.com/QuasarApp/CMakeProject) tempalte.
2. All projects files must be copyrighted.
> Copyright example:
``` cpp
//#
//# Copyright (C) 2021-2021 QuasarApp.
//# Distributed under the lgplv3 software license, see the accompanying
//#
```
3. All projects must have a tests, main shared and static library and executable file for using a main library. For more information about structure projects see [this](ProjectStructure.md) guide.
4. All projects should be support next cmake targets:
* test - for run tests.
* deploy - for create a distribution kits.
* release - for prepare signed distro packages and update repositories
* doc - for generate technical documentation.
> Do not worry. All targets alredy support in our [CMake](https://github.com/QuasarApp/CMake) toolchains and [CMakeProject](https://github.com/QuasarApp/CMakeProject) templates.
5. All functions and classes must be documented using doxygen comments. For more information about syntaxis of the doxygen comments see the [doxygen](https://www.doxygen.nl/manual/docblocks.html) documentation
> Example:
``` cpp
/**
* @brief qHash are Simple hash function of the Random object
* @param rand are Input data.
* @return crc32 hash code.
*/
uint qHash(Random rand);
```
6. All develops library classes must be implemented on the library namespace to avoid conflicts with the names of other libraries.
> Example
``` cpp
namespace QH {
/**
* ...
*/
class PKG {
// ...
}
}
```
# And good luck it will be useful to you 😉

View File

@ -12,3 +12,4 @@ Guidelines of Development in QuasarApp
## List of Guidelines:
1. [Project structure](ProjectStructure.md)
2. [Contribution in the QuasarApp group.](Contribution.md)
3. [Developing in the QuasarApp group.](Developming.md)