Skip to content

Commit 46ae61d

Browse files
authored
Update Doxyfile for new copacabana
1 parent 2d60142 commit 46ae61d

5 files changed

Lines changed: 95 additions & 118 deletions

File tree

doc/Doxyfile

Lines changed: 9 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1382,38 +1382,14 @@ HTML_FOOTER = $(DOXYGEN_ASSETS)/footer.html
13821382

13831383
HTML_STYLESHEET =
13841384

1385-
# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined
1386-
# cascading style sheets that are included after the standard style sheets
1387-
# created by doxygen. Using this option one can overrule certain style aspects.
1388-
# This is preferred over using HTML_STYLESHEET since it does not replace the
1389-
# standard style sheet and is therefore more robust against future updates.
1390-
# Doxygen will copy the style sheet files to the output directory.
1391-
# Note: The order of the extra style sheet files is of importance (e.g. the last
1392-
# style sheet in the list overrules the setting of the previous ones in the
1393-
# list).
1394-
# Note: Since the styling of scrollbars can currently not be overruled in
1395-
# Webkit/Chromium, the styling will be left out of the default doxygen.css if
1396-
# one or more extra stylesheets have been specified. So if scrollbar
1397-
# customization is desired it has to be added explicitly. For an example see the
1398-
# documentation.
1399-
# This tag requires that the tag GENERATE_HTML is set to YES.
1400-
1401-
HTML_EXTRA_STYLESHEET = $(DOXYGEN_ASSETS)/custom.css \
1402-
color.css \
1403-
$(DOXYGEN_ASSETS)/doxygen-awesome.css \
1404-
$(DOXYGEN_ASSETS)/doxygen-awesome-sidebar-only.css
1405-
1406-
# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
1407-
# other source files which should be copied to the HTML output directory. Note
1408-
# that these files will be copied to the base HTML output directory. Use the
1409-
# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
1410-
# files. In the HTML_STYLESHEET file, use the file name only. Also note that the
1411-
# files will be copied as-is; there are no commands or markers available.
1412-
# This tag requires that the tag GENERATE_HTML is set to YES.
1413-
1414-
HTML_EXTRA_FILES = $(DOXYGEN_ASSETS)/godbolt.js \
1415-
$(DOXYGEN_ASSETS)/fragment.js \
1416-
$(DOXYGEN_ASSETS)/paragraph.js
1385+
HTML_EXTRA_STYLESHEET = $(AWESOME_ASSETS)/doxygen-awesome.css
1386+
HTML_EXTRA_STYLESHEET += $(AWESOME_ASSETS)/doxygen-awesome-sidebar-only.css
1387+
HTML_EXTRA_STYLESHEET += $(DOXYGEN_ASSETS)/custom.css
1388+
HTML_EXTRA_STYLESHEET += color.css
1389+
HTML_EXTRA_FILES = $(DOXYGEN_ASSETS)/godbolt.js
1390+
HTML_EXTRA_FILES += $(AWESOME_ASSETS)/doxygen-awesome-fragment-copy-button.js
1391+
HTML_EXTRA_FILES += $(AWESOME_ASSETS)/doxygen-awesome-paragraph-link.js
1392+
HTML_EXTRA_FILES += $(AWESOME_ASSETS)/doxygen-awesome-tabs.js
14171393

14181394
# The HTML_COLORSTYLE tag can be used to specify if the generated HTML output
14191395
# should be rendered with a dark or light theme.
@@ -1718,6 +1694,7 @@ ECLIPSE_DOC_ID = org.doxygen.Project
17181694
# This tag requires that the tag GENERATE_HTML is set to YES.
17191695

17201696
DISABLE_INDEX = YES
1697+
PAGE_OUTLINE_PANEL = NO
17211698

17221699
# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
17231700
# structure should be generated to display hierarchical information. If the tag

doc/base.html

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,12 @@
1717
<script type="text/javascript" src="$relpath^jquery.js"></script>
1818
<script type="text/javascript" src="$relpath^dynsections.js"></script>
1919
<script type="text/javascript" src="$relpath^godbolt.js"></script>
20-
<script type="text/javascript" src="$relpath^fragment.js"></script>
21-
<script type="text/javascript" src="$relpath^paragraph.js"></script>
20+
<script type="text/javascript" src="$relpath^doxygen-awesome-fragment-copy-button.js"></script>
21+
<script type="text/javascript" src="$relpath^doxygen-awesome-paragraph-link.js"></script>
22+
<script type="text/javascript" src="$relpath^doxygen-awesome-tabs.js"></script>
2223
<script type="text/javascript">
2324
DoxygenAwesomeParagraphLink.init()
25+
DoxygenAwesomeTabs.init()
2426
DoxygenAwesomeFragmentCopyButton.init()
2527
SendToGodbolt.init("spy","clang1600","-O3 -std=c++20 -DNEDBUG")
2628
</script>

doc/index.hpp

Lines changed: 0 additions & 63 deletions
This file was deleted.

doc/index.md

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
\mainpage The C++ Information Broker
2+
3+
Detection and versioning of operating systems, compilers, architecture, and other elements are traditionally done using preprocessor macros. Libraries like [Boost.Predef](https://www.boost.org/doc/libs/release/doc/html/predef.html) provide a sanitized interface on top of those but still exist in a world where the preprocessor is king.
4+
5+
SPY is a C++20 (and onward) library that gathers similar information and provides a `constexpr` compatible interface to access this information, making its exploitation within `constexpr` contexts possible.
6+
7+
# Some References
8+
9+
* [Our CppCon 2019 Lightning talk slides](https://docs.google.com/presentation/d/1nSBhU4pr5EWznni0MYsyDkMCr3O3q2XS-KQdz2_BRRI/edit?usp=sharing)
10+
* [Our CppCon 2019 Lightning talk](https://www.youtube.com/watch?v=t406o2EhG-A)
11+
12+
@htmlonly
13+
<center>
14+
<iframe width="560" height="315" src="https://www.youtube.com/embed/t406o2EhG-A&amp;controls=0" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen>
15+
</iframe>
16+
</center>
17+
@endhtmlonly
18+
19+
# A Short Example
20+
21+
```cpp
22+
#include <iostream>
23+
#include <spy/spy.hpp>
24+
25+
int main()
26+
{
27+
std::cout << "OS : " << spy::operating_system << std::endl;
28+
std::cout << "CPU Architecture : " << spy::architecture << std::endl;
29+
std::cout << "SIMD Instructions : " << spy::simd_instruction_set << std::endl;
30+
std::cout << "Compiler : " << spy::compiler << std::endl;
31+
std::cout << "libc version : " << spy::libc << std::endl;
32+
std::cout << "libstd : " << spy::stdlib << std::endl;
33+
}
34+
```
35+
36+
# Licence
37+
38+
This library is licensed under the [Boost Software License](https://opensource.org/licenses/BSL-1.0):
39+
40+
```
41+
Copyright : SPY Project Contributors
42+
43+
Permission is hereby granted, free of charge, to any person or organization obtaining a copy of the
44+
software and accompanying documentation covered by this license (the "Software") to use, reproduce,
45+
display, distribute, execute, and transmit the Software, and to prepare derivative works of the
46+
Software, and to permit third-parties to whom the Software is furnished to do so, all subject to the
47+
following:
48+
49+
The copyright notices in the Software and this entire statement, including the above license grant,
50+
this restriction and the following disclaimer, must be included in all copies of the Software, in
51+
whole or in part, and all derivative works of the Software, unless such copies or derivative works
52+
are solely in the form of machine-executable object code generated by a source language processor.
53+
54+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT
55+
NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND
56+
NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE
57+
BE LIABLE FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING
58+
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
59+
```

include/spy/simd.hpp

Lines changed: 23 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,7 @@ namespace spy::_
164164

165165
namespace spy
166166
{
167+
// clang-format off
167168
//================================================================================================
168169
//! @ingroup api
169170
//! @brief SIMD extensions set reporting value
@@ -173,16 +174,16 @@ namespace spy
173174
//! exactly, below or above a given reference instruction set. Detectable instructions sets depends
174175
//! on SIMD hardware vendor
175176
//!
176-
//! | Architecture | Supported SIMD instructions sets | | ----------------- |
177-
//! --------------------------------------------------------------------------------------- | |
178-
//! **X86 SSE** | `spy::sse1_`, `spy::sse2_`, `spy::sse3_`, `spy::ssse3_`, `spy::sse41_`,
179-
//! `spy::sse42_` | | **X86 AVX** | `spy::avx_`, `spy::avx2_`, `spy::avx512_` | | **Power PC
180-
//! VMX** | `spy::vmx_`, `spy::vmx_2_03_`, `spy::vmx_2_05_`, `spy::vmx_2_06_`, `spy::vmx_2_07_`,
181-
//! `spy::vmx_3_00_`, `spy::vmx_3_01_` | | **Power PC VSX** | `spy::vsx_`, `spy::vsx_2_06_`,
182-
//! `spy::vsx_2_07_`, `spy::vsx_3_00_`, `spy::vsx_3_01_` | | **ARM NEON** | `spy::neon_`,
183-
//! `spy::asimd_` | | **ARM SVE** | `spy::sve_`,`spy::sve128_`, `spy::sve256_`,
184-
//! `spy::sve512_`, `spy::sve1024_` | | **WASM** | `spy::simd128_` | |
185-
//! **RISC-V** | `spy::rvv_`` |
177+
//! | Architecture | Supported SIMD instructions sets |
178+
//! | ----------------- | --------------------------------------------------------------------------------------- |
179+
//! | **X86 SSE** | `spy::sse1_`, `spy::sse2_`, `spy::sse3_`, `spy::ssse3_`, `spy::sse41_`, `spy::sse42_` |
180+
//! | **X86 AVX** | `spy::avx_`, `spy::avx2_`, `spy::avx512_` |
181+
//! | **Power PC VMX** | `spy::vmx_`, `spy::vmx_2_03_`, `spy::vmx_2_05_`, `spy::vmx_2_06_`, `spy::vmx_2_07_`, `spy::vmx_3_00_`, `spy::vmx_3_01_` |
182+
//! | **Power PC VSX** | `spy::vsx_`, `spy::vsx_2_06_`, `spy::vsx_2_07_`, `spy::vsx_3_00_`, `spy::vsx_3_01_` |
183+
//! | **ARM NEON** | `spy::neon_`, `spy::asimd_` |
184+
//! | **ARM SVE** | `spy::sve_`, `spy::sve128_`, `spy::sve256_`, `spy::sve512_`, `spy::sve1024_` |
185+
//! | **WASM** | `spy::simd128_` |
186+
//! | **RISC-V** | `spy::rvv_` |
186187
//!
187188
//! Complete set of comparison operators is provided for those sets. Order of instructions sets
188189
//! are built so that if an instructions set supersedes another, it is considered greater than. For
@@ -201,11 +202,11 @@ namespace spy
201202
//!
202203
//! | Architecture | Generic indicator |
203204
//! | ------------- | --------------------|
204-
//! | **X86** | `spy::x86_simd_` |
205-
//! | **Power PC** | `spy::ppc_simd_` |
206-
//! | **ARM** | `spy::arm_simd_` |
207-
//! | **WASM** | `spy::wasm_simd_` |
208-
//! | **RISC-V** | `spy::riscv_simd_` |
205+
//! | **X86** | `spy::x86_simd_` |
206+
//! | **Power PC** | `spy::ppc_simd_` |
207+
//! | **ARM** | `spy::arm_simd_` |
208+
//! | **WASM** | `spy::wasm_simd_` |
209+
//! | **RISC-V** | `spy::riscv_simd_` |
209210
//!
210211
//! @subgroupheader{Example - SIMD Architectures}
211212
//! @godbolt{samples/simd-arch.cpp}
@@ -215,19 +216,20 @@ namespace spy
215216
//! Some SIMD instructions set provides supplemental instructions on top of existing system.
216217
//! Those supplemental instruction set can be checked using the `spy::supports` namespace.
217218
//!
218-
//! | Architecture | Supported SIMD instructions sets | | ------------- |
219-
//! ------------------------------------------------------------------------------------| | X86 AVX
220-
//! | `xop_`, `fma_`, `fma4_` | | X86
221-
//! AVX512 | `bw_`, `cd_`, `dq_`, `er_`, `ifma_`, `pf_`, `vl_`, `popcntdq_` | | |
222-
//! `_4fmaps_`, `vnniw_`, `vbmi_`, `bf16_`,`bitalg_`, `vbmi2_`, `vnni_`, `vpintersect_` |
219+
//! | Architecture | Supported SIMD instructions sets |
220+
//! | ------------- | ------------------------------------------------------------------------------------------------|
221+
//! | **X86 AVX** | `xop_`, `fma_`, `fma4_` |
222+
//! | **X86 AVX512**| `bw_`, `cd_`, `dq_`, `er_`, `ifma_`, `pf_`, `vl_`, `popcntdq_`, `_4fmaps_`, `vnniw_`, `vbmi_` |
223+
//! | | `bf16_`, `bitalg_`, `vbmi2_`, `vnni_`, `vpintersect_` |
223224
//!
224225
//! @subgroupheader{Example - SIMD Architectures}
225226
//! @godbolt{samples/simd-additional.cpp}
226227
//!
227228
//================================================================================================
229+
// clang-format off
228230
#if defined(SPY_SIMD_DETECTED)
229231
constexpr inline auto simd_instruction_set = _::simd_info<SPY_SIMD_VENDOR, SPY_SIMD_DETECTED> {};
230-
#else
232+
#else
231233
constexpr inline auto simd_instruction_set = _::simd_info<> {};
232234
#endif
233235

0 commit comments

Comments
 (0)