gtsam/DEVELOP.md

30 lines
1.3 KiB
Markdown
Raw Normal View History

# Information for Developers
2025-04-24 01:59:10 +08:00
## Coding Conventions
* Classes are Uppercase, methods and functions lowerMixedCase.
2023-01-20 01:45:32 +08:00
* Apart from those naming conventions, we adopt Google C++ style.
* Use meaningful variable names, e.g. `measurement` not `msm`, avoid abbreviations.
2025-04-24 01:59:10 +08:00
### Header-Wrapper Parameter Name Matching
2025-04-24 01:59:10 +08:00
If you add a C++ function to a `.i` file to expose it to the wrapper, you must ensure that the parameter names match exactly between the declaration in the header file and the declaration in the `.i`. Similarly, if you change any parameter names in a wrapped function in a header file, or change any parameter names in a `.i` file, you must change the corresponding function in the other file to reflect those changes.
> [!IMPORTANT]
> The Doxygen documentation from the C++ will not carry over into the Python docstring if the parameter names do not match exactly!
If you encounter any functions that do not meet this criterion, please submit a PR to make them match.
## Windows
On Windows it is necessary to explicitly export all functions from the library which should be externally accessible. To do this, include the macro `GTSAM_EXPORT` in your class or function definition.
For example:
```cpp
class GTSAM_EXPORT MyClass { ... };
2022-02-18 00:15:15 +08:00
GTSAM_EXPORT return_type myFunction();
```
2021-08-20 23:11:28 +08:00
More details [here](Using-GTSAM-EXPORT.md).