Skip to content

Commit a77ffc4

Browse files
authored
Merge pull request #230 from eseiler/infra/bump_doxygen
[INFRA] Update doxygen
2 parents fc521fe + f0119fd commit a77ffc4

File tree

21 files changed

+371
-207
lines changed

21 files changed

+371
-207
lines changed

.github/workflows/ci_documentation.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ jobs:
5050
- name: Install Doxygen
5151
uses: seqan/actions/setup-doxygen@main
5252
with:
53-
doxygen: 1.9.6
53+
doxygen: 1.10.0
5454

5555
- name: Configure tests
5656
run: |

.github/workflows/documentation.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ jobs:
5252
- name: Install Doxygen
5353
uses: seqan/actions/setup-doxygen@main
5454
with:
55-
doxygen: 1.9.6
55+
doxygen: 1.10.0
5656

5757
- name: Load cached documentation
5858
uses: actions/cache@v4

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ If possible, provide tooling that performs the changes, e.g. a shell-script.
3131
#### Dependencies
3232
* TDL is now an optional dependency and can be force deactivated via CMake (`-DSHARG_NO_TDL=ON`)
3333
([#218](https://github.com/seqan/sharg-parser/pull/218)).
34+
* We now use Doxygen version 1.10.0 to build our documentation
35+
([\#230](https://github.com/seqan/sharg-parser/pull/230)).
3436

3537
# Release 1.1.1
3638

CODE_OF_CONDUCT.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,5 @@ SPDX-License-Identifier: CC-BY-4.0
99
The Sharg-parser adheres to the [Berlin Code of Conduct](https://berlincodeofconduct.org/). As the Sharg-parser was
1010
created and is maintained by the SeqAn team, it is part of the SeqAn project. Therefore, SeqAn's Code of Conduct
1111
applies to the Sharg-parser as well. Please see
12-
[SeqAn's Code of Conduct](http://docs.seqan.de/seqan/3-master-user/about_code_of_conduct.html) for more
12+
[SeqAn's Code of Conduct](https://docs.seqan.de/seqan3/main_user/about_code_of_conduct.html) for more
1313
information on our Code of Conduct.

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ When you are done with committing changes to your branch and you have tested you
6868
We have continuous integration in place that should inform you of test failures. Please try to resolve any
6969
breakage that your pull request introduces.
7070

71-
[Here is a guide for setting up unit tests locally.](https://docs.seqan.de/seqan/3-master-user/setup_tests.html)
71+
[Here is a guide for setting up unit tests locally.](https://docs.seqan.de/seqan3/main_dev/setup_tests.html)
7272

7373
If there are test failures that you don't understand, clearly indicate that you have seen the errors, but cannot resolve
7474
them – then the first reviewer will have a look at them. Otherwise the PR will be treated as still being

doc/about/api/index.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,14 @@ Sharg adheres to [semantic versioning](https://semver.org) and provides a stable
1414
one major release unless otherwise noted.
1515

1616
For details regarding API stability, please see the
17-
[SeqAn documentation on API stability](https://docs.seqan.de/seqan/3-master-user/about_api.html#api_stability).
17+
[SeqAn documentation on API stability](https://docs.seqan.de/seqan3/main_user/about_api.html#api_stability).
1818

1919
# Application Binary Interface (ABI) stability
2020

2121
There is no A<strong>B</strong>I stability.
2222

2323
For details regarding ABI stability, please see the
24-
[SeqAn documentation on ABI stability](https://docs.seqan.de/seqan/3-master-user/about_api.html#autotoc_md38).
24+
[SeqAn documentation on ABI stability](https://docs.seqan.de/seqan3/main_user/about_api.html#autotoc_md47).
2525

2626
# Platform stability {#platform_stability}
2727

doc/about/customisation/index.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,5 @@ SPDX-FileCopyrightText: 2016-2024 Knut Reinert & MPI für molekulare Genetik
66
SPDX-License-Identifier: CC-BY-4.0
77
-->
88

9-
Please see the SeqAn documentation about [customisation](https://docs.seqan.de/seqan/3-master-user/about_customisation.html).
9+
Please see the SeqAn documentation about
10+
[customisation](https://docs.seqan.de/seqan3/main_user/about_customisation.html).

doc/setup/library_tests/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@ SPDX-FileCopyrightText: 2016-2024 Knut Reinert & MPI für molekulare Genetik
66
SPDX-License-Identifier: CC-BY-4.0
77
-->
88

9-
Please see the SeqAn documentation about [setup tests](https://docs.seqan.de/seqan/3-master-user/setup_tests.html).
9+
Please see the SeqAn documentation about [setup tests](https://docs.seqan.de/seqan3/main_dev/setup_tests.html).

doc/setup/quickstart_cmake/index.md

Lines changed: 48 additions & 107 deletions
Original file line numberDiff line numberDiff line change
@@ -14,93 +14,66 @@ works.
1414

1515
[TOC]
1616

17-
<br>
18-
1917
# Software
2018
Requirements:
2119
- gcc >= 11 or clang >= 17
2220
- cmake >= 3.16
2321
- git
2422

25-
## Installing GCC
26-
27-
Sharg requires GCC >= 11 or LLVM/Clang >= 17. Current versions of VisualStudio/MSVC are **not yet supported**.
28-
We will briefly explain how to install GCC-11 (or the latest GCC if such an option is available) on some popular
29-
operating systems. We recommend using the latest version of GCC available. For more information, refer to your
30-
operating system's documentation.
23+
## Installing a Compiler
3124

32-
\startcollapsible{Linux-based}
33-
34-
#### Ubuntu >= 22.04
35-
```bash
36-
# Installs default compiler version (gcc-11 for Ubuntu 22.04).
37-
sudo apt install g++
38-
# To install gcc-12, follow below instructions.
39-
```
25+
Sharg requires GCC >= 11 or LLVM/Clang >= 17. Presently, VisualStudio/MSVC is **not supported**.
26+
We'll offer a brief tutorial on compiler updates through common package managers and suggest some web-based
27+
alternatives. For further details, consult your OS documentation.
4028

41-
#### Ubuntu < 22.04
29+
<div class="tabbed">
30+
- <b class="tab-title">Ubuntu</b>
4231
```bash
32+
# Installs gcc-13
4333
sudo add-apt-repository --no-update --yes ppa:ubuntu-toolchain-r/ppa
4434
sudo add-apt-repository --no-update --yes ppa:ubuntu-toolchain-r/test
4535
sudo apt-get update
46-
sudo apt install g++-11
36+
sudo apt install g++-13
4737
```
48-
49-
#### Using [conda](https://conda.io)
38+
See https://apt.llvm.org/ if you prefer to use LLVM's Clang.
39+
- <b class="tab-title">Conda</b>
5040
To avoid interference with system packages, we recommend creating a new environment when using conda.
5141
```bash
5242
conda create -n conda_gcc_env -c conda-forge gcc_linux-64
5343
conda activate conda_gcc_env
5444
```
5545
This will put GCC in a separate environment `conda_gcc_env` which can be activated via `conda activate conda_gcc_env`
5646
and deactivated via `conda deactivate`.
57-
58-
\endcollapsible
59-
60-
\startcollapsible{macOS}
61-
62-
#### Using [Homebrew](https://brew.sh/)
47+
- <b class="tab-title">Homebrew</b>
6348
```bash
64-
brew install gcc@11
49+
brew install gcc@13
50+
brew install llvm@17
6551
```
66-
67-
#### Using [MacPorts](https://www.macports.org/)
52+
- <b class="tab-title">Macports</b>
6853
```bash
69-
sudo port install gcc11
54+
sudo port install gcc13
55+
sudo port install llvm-17
7056
```
71-
72-
\endcollapsible
73-
74-
\startcollapsible{Windows}
75-
76-
#### Using [WSL](https://docs.microsoft.com/en-us/windows/wsl/about)
57+
- <b class="tab-title">Windows</b>
7758
The Windows Subsystem for Linux offers an easy way to run a Linux distribution under Windows.
7859
Follow [Microsoft's setup guide](https://docs.microsoft.com/en-us/windows/wsl/about) to install WSL and then follow
7960
the steps listed for Linux-based systems.
80-
81-
\endcollapsible
82-
83-
\startcollapsible{Browser-based}
84-
85-
#### Using [gitpod.io](https://gitpod.io/#https://github.com/seqan/sharg-parser/)
86-
[gitpod.io](https://gitpod.io) allows you to edit, compile and run code from within your browser. The free version
87-
includes 50 hours of use per month, which is plenty for our tutorials. A GitHub account is required.
88-
[Click here](https://gitpod.io/#https://github.com/seqan/sharg-parser/) to open Sharg in gitpod.
89-
90-
<!-- Codespaces are currently not free. Revisit in the future.
91-
#### Using [GitHub codespaces](https://github.com/codespaces)
92-
GitHub offers a service similar to gitpod. Codespaces are currently in **public beta** and may not be available to
93-
everyone. [Click here](https://github.com/codespaces) to check for availability.
94-
61+
- <b class="tab-title">gitpod.io</b>
62+
[gitpod.io](https://gitpod.io) allows you to edit, compile and run code from within your browser. The free version includes 50
63+
hours of use per month, which is plenty for our tutorials. A GitHub account is required.
64+
[Click here](https://gitpod.io/#https://github.com/seqan/sharg-parser) to open Sharg in gitpod.
65+
- <b class="tab-title">GitHub Codespaces</b>
66+
[GitHub Codespaces](https://github.com/codespaces) offer a service similar to gitpod, including a free monthly quota.
67+
[Click here](https://codespaces.new/seqan/sharg-parser) to open Sharg in Codespaces.
9568
Please note that you may have to manually clone the submodules by running `git submodule update --init`.
96-
-->
9769

98-
\endcollapsible
70+
</div>
9971

100-
\attention After installing, `g++ --version` should print the desired version.
101-
If not, you may have to use, for example, `g++-11 --version` or even specify the full path to your compiler.
72+
<br>
73+
\note After installing, `g++ --version` should print the desired GCC version.
74+
If not, you may have to use, for example, `g++-11 --version` or even specify the full path to your compiler.
10275

103-
Similarly, you may need to install CMake and git, e.g. `apt install cmake git`.
76+
Similarly, you may need to install CMake and git, e.g. `sudo apt install cmake git`.
10477

10578
# Directory Structure
10679
In this section we will use the `tree` command to show the directory structure. This program may not be installed
@@ -116,16 +89,13 @@ tutorial
11689
└── source
11790
```
11891

119-
To set these directories up you can follow this script:
92+
To set these directories up you can follow this script (note the <b>\--recurse-submodules</b> when cloning Sharg):
12093
```bash
12194
mkdir tutorial
12295
cd tutorial
12396
mkdir build
12497
mkdir source
125-
git clone https://github.com/seqan/sharg-parser.git
126-
cd sharg-parser
127-
git submodule update --init
128-
cd ..
98+
git clone --recurse-submodules https://github.com/seqan/sharg-parser.git
12999
```
130100

131101
The output of the command `tree -L 2` should now look like this:
@@ -135,18 +105,9 @@ The output of the command `tree -L 2` should now look like this:
135105
├── sharg-parser
136106
│   ├── CHANGELOG.md
137107
│   ├── CMakeLists.txt
138-
│   ├── CODE_OF_CONDUCT.md
139-
│   ├── CONTRIBUTING.md
140-
│   ├── LICENSE.md
141-
│   ├── README.md
142-
│   ├── build_system
143-
│   ├── doc
144-
│   ├── include
145-
│   ├── submodules
108+
│   ├── ...
146109
│   └── test
147110
└── source
148-
149-
7 directories, 6 files
150111
```
151112

152113
# Compiling and Running
@@ -155,42 +116,27 @@ To test whether everything works, we will now compile and run a small example.
155116

156117
First we create the file `hello_world.cpp` in the `source` directory with the following contents:
157118

158-
```
159-
#include <sharg/core/debug_stream.hpp>
160-
161-
int main()
162-
{
163-
sharg::debug_stream << "Hello World!\n";
164-
return 0;
165-
}
166-
```
119+
\include test/external_project/src/hello_world.cpp
167120

168121
To compile it, we first create a `CMakeLists.txt` file in the `source` directory:
169-
170-
```
171-
cmake_minimum_required (VERSION 3.16)
172-
project (sharg_tutorial CXX)
173-
174-
# add sharg to search path
175-
list (APPEND CMAKE_PREFIX_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../sharg/build_system")
176-
177-
# require sharg with a version >=1.0.0
178-
find_package (sharg 1.0 REQUIRED)
179-
180-
# build app with sharg
181-
add_executable (hello_world hello_world.cpp)
182-
target_link_libraries (hello_world sharg::sharg)
183-
```
122+
<!-- Parsing the snippet like this to avoid verbatim includes of the snippet identifiers if we used nested snippets. -->
123+
<!-- Snippet start -->
124+
\dontinclude test/external_project/sharg_setup_tutorial/CMakeLists.txt
125+
\until cmake_minimum_required
126+
\skipline project
127+
\until target_link_libraries
128+
<!-- Snippet end -->
184129

185130
The directories should now look like this:
186131

187132
```
188133
.
189134
├── build
190135
├── sharg-parser
191-
│   ├── build_system
192-
│   ├── ...
193-
│   └── test
136+
│ ├── CHANGELOG.md
137+
│ ├── CMakeLists.txt
138+
│ ├── ...
139+
│ └── test
194140
└── source
195141
├── CMakeLists.txt
196142
└── hello_world.cpp
@@ -204,30 +150,25 @@ make
204150
./hello_world
205151
```
206152

207-
The output should be `Hello World!`. Note that the build type is specified with `-DCMAKE_BUILD_TYPE=Release`.
153+
This should output a basic help page. Note that the build type is specified with `-DCMAKE_BUILD_TYPE=Release`.
208154
Specifying `Release` enables an optimized build where no debug information is available. Release mode is therefore
209155
suitable for the end user. Programs built using `-DCMAKE_BUILD_TYPE=Debug` will run slower, but also make the detection
210156
of errors easier. `Debug` is suitable for contributors, and we recommend using it while working with our
211157
[Tutorials](usergroup1.html).
212158

159+
\anchor remark_cmake_cxx_compiler
213160
\remark Depending on the standard C++ compiler on your system, you may need to specify the compiler via
214161
`-DCMAKE_CXX_COMPILER=`, for example:
215162
```bash
216-
cmake -DCMAKE_CXX_COMPILER=/path/to/executable/g++-11 ../source
163+
cmake -DCMAKE_CXX_COMPILER=/path/to/executable/g++-13 ../source
217164
```
218165

219166
# Adding a new source file to your project
220167

221168
If you create a new `cpp` file and want to compile it, you need to add another `add_executable` and
222169
`target_link_libraries` directive to you `CMakeLists.txt`.
223170
For example, after adding `another_program.cpp` your `CMakeLists.txt` may look like this:
224-
225-
```
226-
# ... former cmake code from above
227-
228-
add_executable (another_program another_program.cpp)
229-
target_link_libraries (another_program sharg::sharg)
230-
```
171+
\snippet test/external_project/sharg_setup_tutorial/CMakeLists.txt adding_files
231172

232173
# Encountered issues
233174

include/sharg/enumeration_names.hpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -209,11 +209,9 @@ namespace sharg
209209
* \experimentalapi{Experimental since version 1.0.}
210210
*/
211211
// clang-format off
212-
// `SHARG_DOXYGEN_ONLY((size_t value))` is needed for Doxygen 1.9.5
213-
// Doxygen 1.9.5 bug: https://github.com/doxygen/doxygen/issues/9552
214212
template <typename option_type>
215213
requires requires { { detail::adl_only::enumeration_names_cpo<option_type>{}() }; }
216-
inline auto const enumeration_names SHARG_DOXYGEN_ONLY((size_t value)) = detail::adl_only::enumeration_names_cpo<option_type>{}();
214+
inline auto const enumeration_names = detail::adl_only::enumeration_names_cpo<option_type>{}();
217215
// clang-format on
218216
//!\}
219217

0 commit comments

Comments
 (0)