mirror of
https://github.com/AlexandreRouma/SDRPlusPlus.git
synced 2024-09-20 04:52:36 +02:00
56 lines
1.5 KiB
Markdown
56 lines
1.5 KiB
Markdown
|
# Pull Requests
|
||
|
|
||
|
TODO
|
||
|
|
||
|
# Code Style
|
||
|
|
||
|
## Naming Convention
|
||
|
|
||
|
- Namespaces: `CamelCase`
|
||
|
- Classes: `CamelCase`
|
||
|
- Structs: `CamelCase_t`
|
||
|
- Members: `camelCase`
|
||
|
- Enum: `SNAKE_CASE`
|
||
|
- Macros: `SNAKE_CASE`
|
||
|
|
||
|
## Brace Style
|
||
|
|
||
|
```c++
|
||
|
int myFunction() {
|
||
|
if (shortIf) { shortFunctionName(); }
|
||
|
|
||
|
if (longIf) {
|
||
|
longFunction();
|
||
|
otherStuff();
|
||
|
myLongFunction();
|
||
|
}
|
||
|
}
|
||
|
```
|
||
|
|
||
|
Note: If it makes the code cleaner, remember to use the `?` keyword instead of a `if else` statement.
|
||
|
|
||
|
## Structure
|
||
|
|
||
|
Headers and their associated C++ files shall be in the same directory. All headers must use `#pragma once` instead of other include guards. Only include files in a header that are being used in that header. Include the rest in the associated C++ file.
|
||
|
|
||
|
# Modules
|
||
|
|
||
|
## Module Naming Convention
|
||
|
|
||
|
All modules names must be `snake_case`. If the module is a source, it must end with `_source`. If it is a sink, it must end with `_sink`.
|
||
|
|
||
|
For example, lets take the module named `cool_source`:
|
||
|
|
||
|
- Directory: `cool_source`
|
||
|
- Class: `CoolSourceModule`
|
||
|
- Binary: `cool_source.<os dynlib extension>`
|
||
|
|
||
|
## Integration into main repository
|
||
|
|
||
|
If the module meets the code quality requirements, it may be added to the official repository. A module that doesn't require any external dependencies that the core doesn't already use may be enabled for build by default. Otherwise, they must be disabled for build by default with a `OPT_BUILD_MODULE_NAME` variable set to `OFF`.
|
||
|
|
||
|
# Best Practices
|
||
|
|
||
|
* All additions and/or bug fixes to the core must not add additional dependencies.
|
||
|
|