Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Doxygen updates #647

Merged
merged 43 commits into from
Oct 13, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
4ae3d35
minor modules updates
victimsnino Sep 26, 2024
2a9eee6
actualize a bit
victimsnino Sep 26, 2024
d7c9c54
exclude build
victimsnino Sep 26, 2024
0a9b349
missing images
victimsnino Sep 27, 2024
486bf1c
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Sep 29, 2024
a74eec4
readme
victimsnino Sep 30, 2024
9e060c6
readme
victimsnino Sep 30, 2024
96d3e3c
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Sep 30, 2024
9e202f2
Merge branch 'v2' into doxygen_updates
victimsnino Oct 4, 2024
daf677e
Minor comments
victimsnino Oct 5, 2024
8cfa267
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Oct 5, 2024
a7900b7
minor
victimsnino Oct 5, 2024
2904e05
update doxygen itself a bit
victimsnino Oct 5, 2024
b5fc528
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Oct 5, 2024
a7d0476
address PR comments
victimsnino Oct 5, 2024
cb4f680
address PR comments
victimsnino Oct 5, 2024
9865384
extend a bit
victimsnino Oct 10, 2024
18ae1a5
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Oct 10, 2024
b3f020f
adapt
victimsnino Oct 10, 2024
489615e
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Oct 10, 2024
66d6897
Merge branch 'v2' into doxygen_updates
victimsnino Oct 11, 2024
c70f0fd
refactor a bit
victimsnino Oct 12, 2024
a71b7bd
fix a bit
victimsnino Oct 12, 2024
c369dd2
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Oct 12, 2024
69ed6fc
extract to operator
victimsnino Oct 12, 2024
f75bcde
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Oct 12, 2024
a1d2b00
minor
victimsnino Oct 12, 2024
36c7a40
change groups
victimsnino Oct 12, 2024
e429b5e
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Oct 12, 2024
a0a8740
fixes
victimsnino Oct 12, 2024
2af8ca3
Cusstomize
victimsnino Oct 12, 2024
00eaa48
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Oct 12, 2024
2262329
minor changes
victimsnino Oct 13, 2024
2d48f43
Improve readability
victimsnino Oct 13, 2024
9a7b872
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Oct 13, 2024
217f965
revert a bit
victimsnino Oct 13, 2024
51e0ed1
minor
victimsnino Oct 13, 2024
956059f
qt, grpc
victimsnino Oct 13, 2024
a6ed81c
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Oct 13, 2024
a935837
extensions
victimsnino Oct 13, 2024
8a59ee1
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Oct 13, 2024
5bbe662
adapt ci
victimsnino Oct 13, 2024
0dbdbc4
credit
victimsnino Oct 13, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/workflows/ci v2.yml
Original file line number Diff line number Diff line change
Expand Up @@ -217,6 +217,8 @@ jobs:

steps:
- uses: actions/checkout@v4
with:
submodules: true

- uses: actions/setup-python@v5
with: { python-version: "3.8" }
Expand Down
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "docs/doxygen-awesome-css"]
path = docs/doxygen-awesome-css
url = https://github.com/jothepro/doxygen-awesome-css.git
Comment on lines +1 to +3
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codebase verification

Missing HTML_HEADER Configuration for doxygen-awesome-css

While the HTML_EXTRA_STYLESHEET is correctly set to include doxygen-awesome-css, the HTML_HEADER is not configured to use the doxygen-awesome-css theme. This may result in incomplete theming of your Doxygen documentation.

  • File to Update: Doxyfile
  • Add or Verify the Following Line:
    HTML_HEADER = docs/doxygen-awesome-css/header.html
    

Ensure that the HTML_HEADER points to the correct header file within the doxygen-awesome-css submodule to fully integrate the theme.

🔗 Analysis chain

Excellent addition of the doxygen-awesome-css submodule!

The inclusion of the doxygen-awesome-css submodule is a great choice for enhancing the visual appeal and user experience of your project's documentation. This modern and customizable Doxygen theme will likely make your documentation more engaging and easier to navigate.

To ensure proper integration, please verify that the Doxygen configuration (typically Doxyfile) has been updated to use this theme. You can run the following script to check for the necessary configuration:

If the script doesn't find the necessary configurations, consider updating your Doxyfile to include:

HTML_EXTRA_STYLESHEET  = docs/doxygen-awesome-css/doxygen-awesome.css
HTML_HEADER            = docs/doxygen-awesome-css/header.html
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify Doxygen configuration for doxygen-awesome-css theme

# Test: Check if HTML_EXTRA_STYLESHEET is set to use doxygen-awesome-css
rg --type-add 'doxyfile:*.Doxyfile' --type doxyfile 'HTML_EXTRA_STYLESHEET.*doxygen-awesome-css'

# Test: Check if HTML_HEADER is set to use doxygen-awesome-css
rg --type-add 'doxyfile:*.Doxyfile' --type doxyfile 'HTML_HEADER.*doxygen-awesome-css'

Length of output: 485


Script:

#!/bin/bash
# Description: Locate all Doxygen configuration files and verify the use of doxygen-awesome-css theme

# Step 1: Find all potential Doxygen configuration files
fd --extension Doxyfile --type file > doxyfiles_list.txt

# Step 2: Display the list of found Doxygen configuration files
cat doxyfiles_list.txt

# Step 3: Search for HTML_EXTRA_STYLESHEET and HTML_HEADER settings in each found Doxyfile
while IFS= read -r file; do
  echo "Checking $file for doxygen-awesome-css configurations:"
  rg 'HTML_EXTRA_STYLESHEET.*doxygen-awesome-css' "$file" || echo "HTML_EXTRA_STYLESHEET not set correctly in $file"
  rg 'HTML_HEADER.*doxygen-awesome-css' "$file" || echo "HTML_HEADER not set correctly in $file"
  echo ""
done < doxyfiles_list.txt

Length of output: 84


Script:

#!/bin/bash
# Description: Search for any Doxygen configuration references in the repository

# Step 1: Find all files with 'Doxygen' in their name, case-insensitive
fd -i 'Doxygen' --type file > doxygen_files_list.txt

# Step 2: Display the list of found files
if [ -s doxygen_files_list.txt ]; then
  echo "Found Doxygen-related configuration files:"
  cat doxyfiles_list.txt
else
  echo "No files with 'Doxygen' in their name were found."
fi

# Step 3: Search all files for 'Doxygen' mentions, case-insensitive
echo "Searching for 'Doxygen' mentions in the codebase..."
rg -i 'Doxygen' > doxygen_mentions.txt

if [ -s doxygen_mentions.txt ]; then
  echo "Found the following 'Doxygen' mentions:"
  cat doxygen_mentions.txt
else
  echo "No mentions of 'Doxygen' were found in the codebase."
fi

Length of output: 23080

26 changes: 13 additions & 13 deletions BUILDING.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,15 +27,10 @@ But RPP is header-only library, so, without enabling any extra options is just c
- `RPP_BUILD_EXAMPLES` - (ON/OFF) build examples of usage of RPP (default OFF)
- `RPP_BUILD_SFML_CODE` - (ON/OFF) build RPP code related to SFML or not (default OFF) - requires SFML to be installed
- `RPP_BUILD_QT_CODE` - (ON/OFF) build QT related code (examples/tests)(rppqt module doesn't require this one) (default OFF) - requires QT5/6 to be installed
- `RPP_BUILD_GRPC_CODE` - (ON/OFF) build GRPC related code (examples/tests)(rppgrpc module doesn't require this one) (default OFF) - requires grpc++/protobuf to be installed
- `RPP_BUILD_GRPC_CODE` - (ON/OFF) build gRPC related code (examples/tests)(rppgrpc module doesn't require this one) (default OFF) - requires gRPC++/protobuf to be installed
- `RPP_BUILD_ASIO_CODE` - (ON/OFF) build RPPASIO related code (examples/tests)(rppasio module doesn't require this one) (default OFF) - requires asio to be installed

By default, it provides rpp and rppqt INTERFACE modules.

<!-- ### Building on Apple Silicon

CMake supports building on Apple Silicon properly since 3.20.1. Make sure you
have the [latest version][1] installed. -->
By default, it provides rpp, rppqt, rppgrpc, rppasio INTERFACE modules.

## Install

Expand Down Expand Up @@ -82,18 +77,22 @@ command of CMake:
* Package name: `RPP`
* Target names:
- `RPP::rpp` - main rpp INTERFACE target
- `RPP::rppqt` - additional INTERFACE target to extend functionality for QT. rppqt doesn't include QT or even doesn't link with that.
- `RPP::rppqt` - additional INTERFACE target to extend functionality for QT. rppqt doesn't include QT or even doesn't link with that itself.
- `RPP::rppasio` - additional INTERFACE target to extend functionality for ASIO. rppasio doesn't include boost::asio or even doesn't link with that itself.
- `RPP::rppgrpc` - additional INTERFACE target to extend functionality for gRPC. rppgrpc doesn't include gRPC or even doesn't link with that itself.

Example usage:

```cmake
find_package(RPP REQUIRED)
# Declare the imported target as a build requirement using PRIVATE, where
# project_target is a target created in the consuming project
target_link_libraries(
project_target PRIVATE
RPP::rpp
RPP::rppqt
target_link_libraries(project_target
PRIVATE
RPP::rpp
RPP::rppqt
RPP::rppasio
RPP::rppgrpc
)
```

Expand All @@ -103,7 +102,8 @@ To use ReactivePlusPlus in your code just do
```cpp
#include <rpp/rpp.hpp>
```
to include whole library functionality and don't worry about includes. Also you can include only forwardings for everyting
to include whole library functionality and don't worry about includes. (same can be applied to rppgrpc or rppqt modules)
Also you can include only forwardings for everyting
```cpp
#include <rpp/fwd.hpp>
```
Expand Down
559 changes: 335 additions & 224 deletions Doxyfile

Large diffs are not rendered by default.

76 changes: 43 additions & 33 deletions DoxygenLayout.xml
Original file line number Diff line number Diff line change
@@ -1,49 +1,55 @@
<?xml version="1.0" encoding="UTF-8"?>
<doxygenlayout version="1.0">
<!-- Generated by doxygen 1.9.8 -->
<!-- Generated by doxygen 1.12.0 -->
<!-- Navigation index tabs for HTML output -->
<navindex>
<tab type="mainpage" visible="yes" title=""/>
<tab type="pages" visible="yes" title="" intro=""/>
<tab type="topics" visible="yes" title="API reference" intro=""/>
<tab type="namespaces" visible="yes" title="">
<tab type="namespacelist" visible="yes" title="" intro=""/>
<tab type="namespacemembers" visible="yes" title="" intro=""/>
<tab type="topics" visible="yes" title="API Reference" intro=""/>
<tab type="usergroup" title="Doxygen generated" url="[none]">
<tab type="modules" visible="yes" title="" intro="">
<tab type="modulelist" visible="yes" title="" intro=""/>
<tab type="modulemembers" visible="yes" title="" intro=""/>
</tab>
<tab type="namespaces" visible="yes" title="">
<tab type="namespacelist" visible="yes" title="" intro=""/>
<tab type="namespacemembers" visible="yes" title="" intro=""/>
</tab>
<tab type="concepts" visible="yes" title="">
</tab>
<tab type="interfaces" visible="yes" title="">
<tab type="interfacelist" visible="yes" title="" intro=""/>
<tab type="interfaceindex" visible="$ALPHABETICAL_INDEX" title=""/>
<tab type="interfacehierarchy" visible="yes" title="" intro=""/>
</tab>
<tab type="classes" visible="yes" title="">
<tab type="classlist" visible="yes" title="" intro=""/>
<tab type="classindex" visible="$ALPHABETICAL_INDEX" title=""/>
<tab type="hierarchy" visible="yes" title="" intro=""/>
<tab type="classmembers" visible="yes" title="" intro=""/>
</tab>
<tab type="structs" visible="yes" title="">
<tab type="structlist" visible="yes" title="" intro=""/>
<tab type="structindex" visible="$ALPHABETICAL_INDEX" title=""/>
</tab>
<tab type="exceptions" visible="yes" title="">
<tab type="exceptionlist" visible="yes" title="" intro=""/>
<tab type="exceptionindex" visible="$ALPHABETICAL_INDEX" title=""/>
<tab type="exceptionhierarchy" visible="yes" title="" intro=""/>
</tab>
<tab type="files" visible="yes" title="">
<tab type="filelist" visible="yes" title="" intro=""/>
<tab type="globals" visible="yes" title="" intro=""/>
</tab>
<tab type="examples" visible="yes" title="" intro=""/>
</tab>
<tab type="concepts" visible="yes" title="">
</tab>
<tab type="interfaces" visible="yes" title="">
<tab type="interfacelist" visible="yes" title="" intro=""/>
<tab type="interfaceindex" visible="$ALPHABETICAL_INDEX" title=""/>
<tab type="interfacehierarchy" visible="yes" title="" intro=""/>
</tab>
<tab type="classes" visible="yes" title="">
<tab type="classlist" visible="yes" title="" intro=""/>
<tab type="classindex" visible="$ALPHABETICAL_INDEX" title=""/>
<tab type="hierarchy" visible="yes" title="" intro=""/>
<tab type="classmembers" visible="yes" title="" intro=""/>
</tab>
<tab type="structs" visible="yes" title="">
<tab type="structlist" visible="yes" title="" intro=""/>
<tab type="structindex" visible="$ALPHABETICAL_INDEX" title=""/>
</tab>
<tab type="exceptions" visible="yes" title="">
<tab type="exceptionlist" visible="yes" title="" intro=""/>
<tab type="exceptionindex" visible="$ALPHABETICAL_INDEX" title=""/>
<tab type="exceptionhierarchy" visible="yes" title="" intro=""/>
</tab>
<tab type="files" visible="yes" title="">
<tab type="filelist" visible="yes" title="" intro=""/>
<tab type="globals" visible="yes" title="" intro=""/>
</tab>
<tab type="examples" visible="yes" title="" intro=""/>
</navindex>

<!-- Layout definition for a class page -->
<class>
<briefdescription visible="yes"/>
<includes visible="$SHOW_HEADERFILE"/>
<inheritancegraph visible="$CLASS_GRAPH"/>
<inheritancegraph visible="no"/>
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Reconsider disabling inheritance graphs for all classes.

The inheritance graph visibility has been set to "no" for all classes. While this can reduce clutter for simple classes, it might hide valuable information for complex class hierarchies.

Consider a more flexible approach:

  1. Keep the original $CLASS_GRAPH variable to allow per-project configuration.
  2. Use a threshold (e.g., minimum number of derived classes) to determine when to show the graph.
  3. Provide a way to enable/disable graphs for specific classes using special comments.

Would you like assistance in implementing a more flexible solution?

<collaborationgraph visible="yes"/>
<memberdecl>
<nestedclasses visible="yes" title=""/>
Expand Down Expand Up @@ -115,6 +121,7 @@
<enums title=""/>
<functions title=""/>
<variables title=""/>
<properties title=""/>
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Clarify the purpose of adding properties to namespaces.

Properties have been added to both the memberdecl and memberdef sections of the namespace layout. This is unusual for C++ namespaces, which typically don't have properties.

Please clarify:

  1. What types of elements are intended to be documented as "properties" within namespaces?
  2. Is this meant to document static members or global variables within namespaces?
  3. If this is not applicable to C++ namespaces, consider removing these entries to avoid confusion.

Would you like assistance in refining this section to better reflect C++ namespace documentation needs?

Also applies to: 134-134

<membergroups visible="yes"/>
</memberdecl>
<detaileddescription title=""/>
Expand All @@ -126,6 +133,7 @@
<enums title=""/>
<functions title=""/>
<variables title=""/>
<properties title=""/>
</memberdef>
<authorsection visible="yes"/>
</namespace>
Expand Down Expand Up @@ -161,6 +169,7 @@
<enums title=""/>
<functions title=""/>
<variables title=""/>
<properties title=""/>
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Clarify the purpose of adding properties to file documentation.

Properties have been added to both the memberdecl and memberdef sections of the file layout. This is unusual for C++ file documentation, as files typically don't have properties in the traditional sense.

Please clarify:

  1. What types of elements are intended to be documented as "properties" for files?
  2. Is this meant to document file-level attributes, metadata, or some other information?
  3. If this is not applicable to C++ file documentation, consider removing these entries to avoid confusion.

Would you like assistance in refining this section to better reflect C++ file documentation needs?

Also applies to: 183-183

<membergroups visible="yes"/>
</memberdecl>
<detaileddescription title=""/>
Expand All @@ -173,6 +182,7 @@
<enums title=""/>
<functions title=""/>
<variables title=""/>
<properties title=""/>
</memberdef>
<authorsection/>
</file>
Expand Down
26 changes: 4 additions & 22 deletions HACKING.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ the project:
{
"name": "dev",
"binaryDir": "${sourceDir}/build",
"inherits": ["ci-<os>"],
"inherits": ["<some_preset>"],
"cacheVariables": {
"CMAKE_BUILD_TYPE" : "Release",
"RPP_BUILD_EXAMPLES" : "ON"
Expand Down Expand Up @@ -69,9 +69,8 @@ the project:
}
```

You should replace `<os>` in your newly created presets file with the name of
the operating system you have, which may be `win64` or `unix`. You can see what
these correspond to in the [`CMakePresets.json`](CMakePresets.json) file.
You should replace `<some_preset>` in your newly created presets file with the name of
some base preset from [`CMakePresets.json`](CMakePresets.json) file. It is highly recommended to use `user-*` presets.

`CMakeUserPresets.json` is also the perfect place in which you can put all
sorts of things that you would otherwise want to pass to the configure command
Expand Down Expand Up @@ -108,24 +107,7 @@ additional `-t <target>` flag:
#### `coverage`

Available if `RPP_ENABLE_COVERAGE` is enabled. This target processes the output of
the previously run tests when built with coverage configuration. The commands
this target runs can be found in the `COVERAGE_TRACE_COMMAND` and
`COVERAGE_HTML_COMMAND` cache variables. The trace command produces an info
file by default, which can be submitted to services with CI integration. The
HTML command uses the trace command's output to generate a HTML document to
`<binary-dir>/coverage_html` by default.
<!--
#### `format-check` and `format-fix`

These targets run the clang-format tool on the codebase to check errors and to
fix them respectively. Customization available using the `FORMAT_PATTERNS` and
`FORMAT_COMMAND` cache variables.

#### `spell-check` and `spell-fix`

These targets run the codespell tool on the codebase to check errors and to fix
them respectively. Customization available using the `SPELL_COMMAND` cache
variable. -->
the previously run tests when built with coverage configuration.

[1]: https://cmake.org/cmake/help/latest/manual/cmake-presets.7.html
[2]: https://cmake.org/download/
Expand Down
Loading
Loading