mirror of
https://github.com/QuasarApp/Guidelines.git
synced 2025-04-30 14:24:34 +00:00
Merge pull request #1 from QuasarApp/devGuide
Added the developing guide
This commit is contained in:
commit
127ec0076d
50
Developming.md
Normal file
50
Developming.md
Normal 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 😉
|
@ -12,3 +12,4 @@ Guidelines of Development in QuasarApp
|
|||||||
## List of Guidelines:
|
## List of Guidelines:
|
||||||
1. [Project structure](ProjectStructure.md)
|
1. [Project structure](ProjectStructure.md)
|
||||||
2. [Contribution in the QuasarApp group.](Contribution.md)
|
2. [Contribution in the QuasarApp group.](Contribution.md)
|
||||||
|
3. [Developing in the QuasarApp group.](Developming.md)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user