├── VERSION ├── testing ├── 100 │ └── group___c.xml ├── test.h ├── sample.html ├── sample.tex ├── subsub.md ├── sample.png ├── sub.md ├── 007_b.dox ├── 002_addindex.dox ├── 038_n.dox ├── example_test.cpp ├── 001_a.dox ├── 023_e.dox ├── Doxyfile ├── members.ci ├── 008_brief.c ├── 010_c.dox ├── 061_Únicod€_file.cpp ├── 017_copyright.dox ├── decl_def.h ├── 056_latexinclude.dox ├── 030_htmlinclude.dox ├── 040_namespace.cpp ├── 003_anchor.dox ├── latex_065.sty ├── 103_include.cpp ├── 042_package.java ├── 072_using.cpp ├── 052_tilde.dox ├── snip.md ├── more_099_b.c ├── 032_include.cpp ├── 006_author.dox ├── 033_internal.dox ├── 071_enum_in_anon_ns.cpp ├── 029_hideinit.c ├── 053_tilde.dox ├── 062_main.md ├── 063_main.md ├── 036_link.c ├── 066_property_initializer.cs ├── 012_cite.dox ├── 035_invariant.c ├── 050_verbatim.dox ├── 051_escape.dox ├── 048_showinit.c ├── 049_snippet.cpp ├── obsolete ├── 014_code.dox ├── 077_no_xml_namespace_members_in_file_scope.h ├── 099_a.c ├── 047_return.cpp ├── 082_decl_def.cpp ├── 083_decl_def.cpp ├── 078_xml_namespace_members_in_file_scope.h ├── 084_markdown_pre.f90 ├── 005_attention.dox ├── 101_static_assert.c ├── 065_tilde.dox ├── 004_arg.dox ├── 068_ref_varargs.cpp ├── 019 │ ├── group___b.xml │ ├── group___c.xml │ ├── group___d.xml │ └── group___a.xml ├── 067_link_varargs.cpp ├── 039_name.cpp ├── 045_refitem.dox ├── more_100_d.cpp ├── 016_copydoc.c ├── 081_brief_lists.h ├── 020_only.dox ├── 046_related.cpp ├── 034_internal.dox ├── 055_markdown.md ├── 022_dot.cpp ├── 043 │ └── another.xml ├── 044_section.h ├── 079_tableofcontents.dox ├── 040 │ └── namespace_n_s.xml ├── 079 │ └── empty.xml ├── 007 │ └── indexpage.xml ├── 015_cond.c ├── 065 │ └── indexpage.xml ├── 073_typed_enum.cpp ├── 001 │ └── indexpage.xml ├── 052 │ └── indexpage.xml ├── 053 │ └── indexpage.xml ├── 025_example.cpp ├── 008 │ └── 008__brief_8c.xml ├── 013_class.h ├── 088_module_var.f90 ├── 093_interface_inside_routine.f90 ├── 033 │ └── indexpage.xml ├── 038 │ └── indexpage.xml ├── 021_dontinclude.cpp ├── 095 │ ├── namespacem2.xml │ ├── namespacem3.xml │ └── namespacem1.xml ├── 096 │ ├── namespacem2.xml │ ├── namespacem3.xml │ └── namespacem1.xml ├── 056 │ └── indexpage.xml ├── 023 │ └── indexpage.xml ├── 042 │ └── namespaceorg_1_1doxygen_1_1_test.xml ├── 059_template.cpp ├── 086_style_tags.h ├── 030 │ └── indexpage.xml ├── 098_abstract_type.f03 ├── 102_header.hpp ├── 061 │ └── 061___xC3_x9Anicod_xE2_x82_xAC__file_8cpp.xml ├── 003 │ └── indexpage.xml ├── 085_tooltip.cpp ├── 010 │ └── indexpage.xml ├── 051 │ └── indexpage.xml ├── 002 │ └── indexpage.xml ├── 011_category.m ├── 026_exception.cpp ├── 077 │ └── 077__no__xml__namespace__members__in__file__scope_8h.xml ├── 013 │ ├── class_t1.xml │ ├── class_t2.xml │ ├── class_t3.xml │ └── class_t4.xml ├── more_100_b.c ├── 060 │ ├── class_details_c_s_style.xml │ ├── class_details_summary_at_top.xml │ ├── class_details_summary_at_bottom.xml │ ├── class_details_without_summary.xml │ ├── class_details_nested.xml │ └── class_details_multi_summary.xml ├── 018_def.c ├── 089_module_proc.f90 ├── 096_namespace_inheritance.cpp ├── 017 │ └── indexpage.xml ├── 064_castoperator.cpp ├── 087_public_type.F90 ├── 028_formula.c ├── 020 │ └── indexpage.xml ├── 022 │ └── indexpage.xml ├── 012 │ └── indexpage.xml ├── 095_inheritance.f03 ├── 094_old_style_fortran_routines.f90 ├── snippet_test.cpp ├── 080_extract_private_virtual.cpp ├── 041_overload.cpp ├── 057_inlinenamespace.cpp ├── 043_page.dox ├── 045 │ └── indexpage.xml ├── 075_argmatch.cpp ├── 091_module_with_procs.f90 └── 006 │ └── indexpage.xml ├── doc ├── .gitignore ├── smile.png ├── infoflow.png ├── expert_int.png ├── doxygen_logo.pdf ├── expert_bool.png ├── expert_enum.png ├── doxywizard_main.png ├── doxywizard_run.png ├── expert_list_dir.png ├── extsearch_flow.png ├── doxywizard_expert.png ├── doxywizard_page1.png ├── doxywizard_page2.png ├── doxywizard_page3.png ├── doxywizard_page4.png ├── expert_list_file.png ├── expert_list_string.png ├── expert_string_dir.png ├── expert_string_file.png ├── doxywizard_menu_file.png ├── doxywizard_menu_help.png ├── expert_list_filedir.png ├── expert_string_image.png ├── expert_string_string.png ├── expert_string_filedir.png ├── doxywizard_menu_settings.png ├── layout_index_and_treeview.png ├── layout_index_and_notreeview.png ├── layout_noindex_and_sidebar.png ├── layout_noindex_and_treeview.png ├── layout_noindex_and_notreeview.png ├── doxysearch.1 ├── doxywizard.1 ├── replace_version.py ├── extsearch_flow.dot └── doxyindexer.1 ├── deps ├── iconv_winbuild │ ├── .gitignore │ ├── x64 │ │ └── iconv.lib │ └── x86 │ │ └── iconv.lib ├── libmd5 │ ├── CMakeLists.txt │ └── md5_loc.h ├── sqlite3 │ ├── CMakeLists.txt │ └── README.md ├── jquery │ ├── .gitignore │ ├── sass │ │ ├── sm-dox.scss │ │ ├── _sub-items-indentation.scss │ │ └── _round-corners-last-item.scss │ └── README ├── liblodepng │ └── CMakeLists.txt ├── spdlog │ ├── include │ │ └── spdlog │ │ │ ├── fmt │ │ │ ├── bundled │ │ │ │ └── locale.h │ │ │ ├── xchar.h │ │ │ ├── chrono.h │ │ │ ├── ostr.h │ │ │ ├── ranges.h │ │ │ ├── compile.h │ │ │ ├── std.h │ │ │ └── fmt.h │ │ │ ├── details │ │ │ ├── windows_include.h │ │ │ ├── console_globals.h │ │ │ ├── periodic_worker-inl.h │ │ │ └── synchronous_factory.h │ │ │ ├── fwd.h │ │ │ ├── version.h │ │ │ ├── formatter.h │ │ │ ├── sinks │ │ │ ├── sink-inl.h │ │ │ └── sink.h │ │ │ └── cfg │ │ │ └── helpers.h │ ├── src │ │ ├── cfg.cpp │ │ ├── async.cpp │ │ └── file_sinks.cpp │ └── cmake │ │ ├── spdlog.pc.in │ │ └── spdlogConfig.cmake.in ├── CMakeLists.txt ├── libmscgen │ ├── gd_color.h │ ├── gdfonts.h │ ├── gdfontt.h │ ├── gd_security.c │ └── README.txt └── svg │ ├── README │ └── Makefile ├── addon ├── doxmlparser │ ├── requirements.txt │ ├── doxmlparser │ │ └── __init__.py │ ├── README.md │ ├── setup.py │ └── examples │ │ └── dump │ │ └── dump.py ├── doxywizard │ ├── images │ │ ├── add.png │ │ ├── del.png │ │ ├── file.png │ │ ├── folder.png │ │ ├── refresh.png │ │ └── tunecolor.png │ ├── README │ ├── config_msg.h │ ├── doxywizard.qrc │ ├── configdoc.h │ └── docintf.h ├── CMakeLists.txt ├── doxyparse │ ├── doxyparse.1 │ └── CMakeLists.txt └── doxyapp │ └── README ├── templates ├── icon │ ├── doxygen.rc │ └── doxygen.ico ├── html │ ├── nav_g.png │ ├── search_nomenu.css │ ├── nav_h.lum │ ├── nav_hd.lum │ ├── search_sidebar.css │ ├── tab_s.lum │ ├── tab_a.lum │ ├── tab_b.lum │ ├── tab_h.lum │ ├── tab_sd.lum │ ├── tab_ad.lum │ ├── tab_bd.lum │ ├── tab_hd.lum │ ├── nav_fd.lum │ ├── search.css │ ├── search_nomenu_toggle.css │ ├── nav_f.lum │ ├── search_fixedtabs.css │ ├── dynsections_tooltips.js │ ├── scrollbar.css │ ├── minus.svg │ ├── minusd.svg │ ├── .eslintrc.js │ ├── plus.svg │ ├── plusd.svg │ ├── closed.luma │ ├── open.luma │ ├── footer.html │ ├── mag.svg │ ├── mag_d.svg │ └── close.svg └── xml │ └── xml.xsd ├── examples ├── example_test.cpp ├── include_test.cpp ├── diagrams_a.h ├── diagrams_b.h ├── diagrams_e.h ├── diagrams_c.h ├── docuexample.cfg ├── par.cfg ├── diagrams_d.h ├── group.cfg ├── page.cfg ├── qtstyle.cfg ├── templ.cfg ├── author.cfg ├── class.h ├── tag.cpp ├── jdstyle.cfg ├── relates.cfg ├── autolink.cfg ├── enum.cfg ├── file.cfg ├── func.cfg ├── chmexample.cfg ├── class.cfg ├── restypedef.cfg ├── file.h ├── afterdoc.cfg ├── pyexample.cfg ├── overload.cfg ├── tag.cfg ├── memgrp.cfg ├── structcmd.cfg ├── include.cfg ├── define.cfg ├── docstring.cfg ├── example.cfg ├── javadoc-banner.cfg ├── strip_example.py ├── baseexample.cfg ├── diagrams.cfg ├── relates.cpp ├── mux.cfg ├── par.cpp ├── manual.cfg ├── page.doc ├── afterdoc.h ├── example.cpp ├── author.cpp ├── enum.h ├── docstring.py ├── restypedef.cpp ├── include.cpp ├── define.h ├── func.h ├── pyexample.py ├── overload.cpp ├── templ.cpp ├── mux.vhdl └── memgrp.cpp ├── libversion ├── doxyversion.cpp.in ├── fullversion.cpp ├── gitversion.cpp.in └── version.h ├── .gitattributes ├── .github ├── dependabot.yml ├── FUNDING.yml └── workflows │ └── doxmlparser-publish.yml ├── cmake ├── version.cmake ├── SearchReplace.cmake ├── QueryCodePage.py ├── ApplyEditbin.cmake ├── FindgenerateDS.cmake ├── WindowsEncoding.cmake └── FindJavacc.cmake ├── INSTALL ├── .editorconfig ├── .codedocs ├── .dockerignore ├── .gitignore ├── Dockerfile ├── libxml └── CMakeLists.txt ├── src ├── defgen.h ├── perlmodgen.h ├── sqlite3gen.h ├── configoptions.h ├── tagreader.h ├── aliases.h ├── language.h ├── htmlattrib.h ├── arguments.cpp ├── stlsupport.h └── htags.h ├── doc_internal └── doc_internal.css └── vhdlparser └── TokenManager.h /VERSION: -------------------------------------------------------------------------------- 1 | 1.13.0 2 | -------------------------------------------------------------------------------- /testing/test.h: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /doc/.gitignore: -------------------------------------------------------------------------------- 1 | *.bak 2 | -------------------------------------------------------------------------------- /deps/iconv_winbuild/.gitignore: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /testing/sample.html: -------------------------------------------------------------------------------- 1 |

Hello world

2 | -------------------------------------------------------------------------------- /testing/sample.tex: -------------------------------------------------------------------------------- 1 | \section{Hello world} 2 | -------------------------------------------------------------------------------- /addon/doxmlparser/requirements.txt: -------------------------------------------------------------------------------- 1 | lxml>=4.0.0 2 | six>=1.0.0 3 | -------------------------------------------------------------------------------- /deps/libmd5/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library(md5 STATIC 2 | md5.c 3 | ) 4 | -------------------------------------------------------------------------------- /deps/sqlite3/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library(sqlite3 STATIC 2 | sqlite3.c 3 | ) 4 | -------------------------------------------------------------------------------- /doc/smile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/doxygen/master/doc/smile.png -------------------------------------------------------------------------------- /deps/jquery/.gitignore: -------------------------------------------------------------------------------- 1 | .sass-cache 2 | *-min.js 3 | doxmenu*.css 4 | jquery.js 5 | -------------------------------------------------------------------------------- /deps/liblodepng/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library(lodepng STATIC 2 | lodepng.cpp 3 | ) 4 | -------------------------------------------------------------------------------- /doc/infoflow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/doxygen/master/doc/infoflow.png -------------------------------------------------------------------------------- /testing/subsub.md: -------------------------------------------------------------------------------- 1 | # Included Section x.1.1 2 | 3 | Some text in subsub.md. 4 | -------------------------------------------------------------------------------- /doc/expert_int.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/doxygen/master/doc/expert_int.png -------------------------------------------------------------------------------- /testing/sample.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/doxygen/master/testing/sample.png -------------------------------------------------------------------------------- /doc/doxygen_logo.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/doxygen/master/doc/doxygen_logo.pdf -------------------------------------------------------------------------------- /doc/expert_bool.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/doxygen/master/doc/expert_bool.png -------------------------------------------------------------------------------- /doc/expert_enum.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/doxygen/master/doc/expert_enum.png -------------------------------------------------------------------------------- /templates/icon/doxygen.rc: -------------------------------------------------------------------------------- 1 | IDI_ICON1 ICON DISCARDABLE "doxygen.ico" 2 | -------------------------------------------------------------------------------- /addon/doxmlparser/doxmlparser/__init__.py: -------------------------------------------------------------------------------- 1 | from .index import * 2 | from .compound import * 3 | -------------------------------------------------------------------------------- /doc/doxywizard_main.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/doxygen/master/doc/doxywizard_main.png -------------------------------------------------------------------------------- /doc/doxywizard_run.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/doxygen/master/doc/doxywizard_run.png -------------------------------------------------------------------------------- /doc/expert_list_dir.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/doxygen/master/doc/expert_list_dir.png -------------------------------------------------------------------------------- /doc/extsearch_flow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/doxygen/master/doc/extsearch_flow.png -------------------------------------------------------------------------------- /examples/example_test.cpp: -------------------------------------------------------------------------------- 1 | void main() 2 | { 3 | Example_Test t; 4 | t.example(); 5 | } 6 | -------------------------------------------------------------------------------- /examples/include_test.cpp: -------------------------------------------------------------------------------- 1 | void main() 2 | { 3 | Include_Test t; 4 | t.example(); 5 | } 6 | -------------------------------------------------------------------------------- /doc/doxywizard_expert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/doxygen/master/doc/doxywizard_expert.png -------------------------------------------------------------------------------- /doc/doxywizard_page1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/doxygen/master/doc/doxywizard_page1.png -------------------------------------------------------------------------------- /doc/doxywizard_page2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/doxygen/master/doc/doxywizard_page2.png -------------------------------------------------------------------------------- /doc/doxywizard_page3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/doxygen/master/doc/doxywizard_page3.png -------------------------------------------------------------------------------- /doc/doxywizard_page4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/doxygen/master/doc/doxywizard_page4.png -------------------------------------------------------------------------------- /doc/expert_list_file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/doxygen/master/doc/expert_list_file.png -------------------------------------------------------------------------------- /doc/expert_list_string.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/doxygen/master/doc/expert_list_string.png -------------------------------------------------------------------------------- /doc/expert_string_dir.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/doxygen/master/doc/expert_string_dir.png -------------------------------------------------------------------------------- /doc/expert_string_file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/doxygen/master/doc/expert_string_file.png -------------------------------------------------------------------------------- /templates/html/nav_g.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/doxygen/master/templates/html/nav_g.png -------------------------------------------------------------------------------- /templates/icon/doxygen.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/doxygen/master/templates/icon/doxygen.ico -------------------------------------------------------------------------------- /doc/doxywizard_menu_file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/doxygen/master/doc/doxywizard_menu_file.png -------------------------------------------------------------------------------- /doc/doxywizard_menu_help.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/doxygen/master/doc/doxywizard_menu_help.png -------------------------------------------------------------------------------- /doc/expert_list_filedir.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/doxygen/master/doc/expert_list_filedir.png -------------------------------------------------------------------------------- /doc/expert_string_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/doxygen/master/doc/expert_string_image.png -------------------------------------------------------------------------------- /doc/expert_string_string.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/doxygen/master/doc/expert_string_string.png -------------------------------------------------------------------------------- /addon/doxywizard/images/add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/doxygen/master/addon/doxywizard/images/add.png -------------------------------------------------------------------------------- /addon/doxywizard/images/del.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/doxygen/master/addon/doxywizard/images/del.png -------------------------------------------------------------------------------- /doc/expert_string_filedir.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/doxygen/master/doc/expert_string_filedir.png -------------------------------------------------------------------------------- /testing/sub.md: -------------------------------------------------------------------------------- 1 | # Included Section 1.1 2 | 3 | Some text in sub.md. 4 | 5 | @include{doc,raise=1} subsub.md 6 | -------------------------------------------------------------------------------- /addon/doxywizard/images/file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/doxygen/master/addon/doxywizard/images/file.png -------------------------------------------------------------------------------- /deps/iconv_winbuild/x64/iconv.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/doxygen/master/deps/iconv_winbuild/x64/iconv.lib -------------------------------------------------------------------------------- /deps/iconv_winbuild/x86/iconv.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/doxygen/master/deps/iconv_winbuild/x86/iconv.lib -------------------------------------------------------------------------------- /doc/doxywizard_menu_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/doxygen/master/doc/doxywizard_menu_settings.png -------------------------------------------------------------------------------- /doc/layout_index_and_treeview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/doxygen/master/doc/layout_index_and_treeview.png -------------------------------------------------------------------------------- /examples/diagrams_a.h: -------------------------------------------------------------------------------- 1 | #ifndef DIAGRAMS_A_H 2 | #define DIAGRAMS_A_H 3 | class A { public: A *m_self; }; 4 | #endif 5 | -------------------------------------------------------------------------------- /addon/doxywizard/images/folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/doxygen/master/addon/doxywizard/images/folder.png -------------------------------------------------------------------------------- /addon/doxywizard/images/refresh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/doxygen/master/addon/doxywizard/images/refresh.png -------------------------------------------------------------------------------- /doc/layout_index_and_notreeview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/doxygen/master/doc/layout_index_and_notreeview.png -------------------------------------------------------------------------------- /doc/layout_noindex_and_sidebar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/doxygen/master/doc/layout_noindex_and_sidebar.png -------------------------------------------------------------------------------- /doc/layout_noindex_and_treeview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/doxygen/master/doc/layout_noindex_and_treeview.png -------------------------------------------------------------------------------- /addon/doxywizard/images/tunecolor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/doxygen/master/addon/doxywizard/images/tunecolor.png -------------------------------------------------------------------------------- /doc/layout_noindex_and_notreeview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/doxygen/master/doc/layout_noindex_and_notreeview.png -------------------------------------------------------------------------------- /examples/diagrams_b.h: -------------------------------------------------------------------------------- 1 | #ifndef DIAGRAMS_B_H 2 | #define DIAGRAMS_B_H 3 | class A; 4 | class B { public: A *m_a; }; 5 | #endif 6 | -------------------------------------------------------------------------------- /examples/diagrams_e.h: -------------------------------------------------------------------------------- 1 | #ifndef DIAGRAM_E_H 2 | #define DIAGRAM_E_H 3 | #include "diagrams_d.h" 4 | class E : public D {}; 5 | #endif 6 | -------------------------------------------------------------------------------- /deps/libmd5/md5_loc.h: -------------------------------------------------------------------------------- 1 | #ifndef MD5LOC_H 2 | #define MD5LOC_H 3 | 4 | # include 5 | # define UWORD32 uint32_t 6 | 7 | #endif 8 | -------------------------------------------------------------------------------- /libversion/doxyversion.cpp.in: -------------------------------------------------------------------------------- 1 | #include "version.h" 2 | 3 | std::string getDoxygenVersion() 4 | { 5 | return "@DOXYGEN_VERSION@"; 6 | } 7 | -------------------------------------------------------------------------------- /testing/007_b.dox: -------------------------------------------------------------------------------- 1 | // objective: test the \b command 2 | // check: indexpage.xml 3 | /** \mainpage 4 | * Text \b bold normal text. 5 | */ 6 | -------------------------------------------------------------------------------- /templates/html/search_nomenu.css: -------------------------------------------------------------------------------- 1 | /*---------------- Search Box */ 2 | 3 | #MSearchBox { 4 | position: absolute; 5 | right: 5px; 6 | } 7 | -------------------------------------------------------------------------------- /testing/002_addindex.dox: -------------------------------------------------------------------------------- 1 | // objective: test \addindex command 2 | // check: indexpage.xml 3 | /** \mainpage 4 | * \addindex keyword 5 | */ 6 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto eol=lf 2 | * text 3 | 4 | ### Protected 5 | *.pdf binary 6 | *.ico binary 7 | *.jpg binary 8 | *.png binary 9 | *.lib binary -------------------------------------------------------------------------------- /testing/038_n.dox: -------------------------------------------------------------------------------- 1 | // objective: test the \n command 2 | // check: indexpage.xml 3 | /** \mainpage 4 | Text\n 5 | New line\n 6 | Another line 7 | */ 8 | -------------------------------------------------------------------------------- /testing/example_test.cpp: -------------------------------------------------------------------------------- 1 | void main() 2 | { 3 | const char* a = "Some special character here:  "; 4 | 5 | Test t; 6 | t.example(); 7 | } 8 | 9 | -------------------------------------------------------------------------------- /deps/spdlog/include/spdlog/fmt/bundled/locale.h: -------------------------------------------------------------------------------- 1 | #include "xchar.h" 2 | #warning fmt/locale.h is deprecated, include fmt/format.h or fmt/xchar.h instead 3 | -------------------------------------------------------------------------------- /templates/html/nav_h.lum: -------------------------------------------------------------------------------- 1 | # shadowed header for light mode 2 | # width & height 3 | 1 12 4 | # luma data 5 | 255 240 241 242 243 244 6 | 245 246 247 248 249 250 7 | -------------------------------------------------------------------------------- /testing/001_a.dox: -------------------------------------------------------------------------------- 1 | // objective: test the \a and \mainpage commands 2 | // check: indexpage.xml 3 | /** \mainpage 4 | * Text \a argument more text. 5 | */ 6 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: "github-actions" 4 | directory: "/" 5 | schedule: 6 | interval: "weekly" 7 | -------------------------------------------------------------------------------- /examples/diagrams_c.h: -------------------------------------------------------------------------------- 1 | #ifndef DIAGRAMS_C_H 2 | #define DIAGRAMS_C_H 3 | #include "diagrams_c.h" 4 | class D; 5 | class C : public A { public: D *m_d; }; 6 | #endif 7 | -------------------------------------------------------------------------------- /templates/html/nav_hd.lum: -------------------------------------------------------------------------------- 1 | # shadowed header for dark mode 2 | # width & height 3 | 1 12 4 | # luma data 5 | 23 16 15 14 13 12 6 | 11 10 9 8 7 6 7 | 8 | -------------------------------------------------------------------------------- /addon/doxywizard/README: -------------------------------------------------------------------------------- 1 | Doxywizard is a graphical front-end to read/edit/write doxygen configuration 2 | files and to launch doxygen. It requires Qt version 4.3 or higher. 3 | 4 | -------------------------------------------------------------------------------- /cmake/version.cmake: -------------------------------------------------------------------------------- 1 | file (STRINGS "${TOP}/VERSION" VERSION) 2 | set(ENV{VERSION} "${VERSION}") 3 | set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS ${TOP}/VERSION) 4 | -------------------------------------------------------------------------------- /deps/jquery/sass/sm-dox.scss: -------------------------------------------------------------------------------- 1 | @import '_sub-items-indentation.scss'; 2 | @import '_round-corners-last-item.scss'; 3 | 4 | // the variables + the CSS 5 | @import '_sm-dox.scss'; 6 | -------------------------------------------------------------------------------- /testing/023_e.dox: -------------------------------------------------------------------------------- 1 | // objective: test the \e, \em commands 2 | // check: indexpage.xml 3 | /** \mainpage 4 | * Normal \e emphasis and more \em emphasis back to normal. 5 | */ 6 | -------------------------------------------------------------------------------- /testing/Doxyfile: -------------------------------------------------------------------------------- 1 | # start with defaults 2 | QUIET = YES 3 | GENERATE_HTML = NO 4 | GENERATE_LATEX = NO 5 | GENERATE_XML = YES 6 | XML_PROGRAMLISTING = NO 7 | CASE_SENSE_NAMES = NO 8 | -------------------------------------------------------------------------------- /testing/members.ci: -------------------------------------------------------------------------------- 1 | public: 2 | /** an included public member */ 3 | void pubMember(); 4 | protected: 5 | /** an included protected member */ 6 | void proMember(); 7 | 8 | -------------------------------------------------------------------------------- /INSTALL: -------------------------------------------------------------------------------- 1 | DOXYGEN 2 | 3 | Please read the installation section of the manual 4 | (https://www.doxygen.nl/manual/install.html) for instructions. 5 | 6 | -------- 7 | Dimitri van Heesch 8 | -------------------------------------------------------------------------------- /testing/008_brief.c: -------------------------------------------------------------------------------- 1 | // objective: test \brief and \file command 2 | // check: 008__brief_8c.xml 3 | /** \file 4 | * \brief A brief description. 5 | * 6 | * More details. 7 | */ 8 | -------------------------------------------------------------------------------- /examples/docuexample.cfg: -------------------------------------------------------------------------------- 1 | OUTPUT_DIRECTORY = $(PROJECT_BINARY_DIR) 2 | HTML_COLORSTYLE = TOGGLE 3 | HTML_PROJECT_COOKIE = doxygen_docs 4 | HTML_EXTRA_STYLESHEET = doxygen_manual.css 5 | -------------------------------------------------------------------------------- /testing/010_c.dox: -------------------------------------------------------------------------------- 1 | // objective: test the \c and \p commands 2 | // check: indexpage.xml 3 | /** \mainpage 4 | * Text \c code normal text. 5 | * 6 | * Text \p code normal text. 7 | */ 8 | -------------------------------------------------------------------------------- /testing/061_Únicod€_file.cpp: -------------------------------------------------------------------------------- 1 | // objective: test a file with unicode characters in the name 2 | // check: 061___xC3_x9Anicod_xE2_x82_xAC__file_8cpp.xml 3 | 4 | class Test 5 | { 6 | }; 7 | 8 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # See https://editorconfig.org/ for more information. 2 | 3 | [*] 4 | indent_style = space 5 | indent_size = 2 6 | charset = utf-8 7 | 8 | [*.py] 9 | indent_size = 4 10 | -------------------------------------------------------------------------------- /testing/017_copyright.dox: -------------------------------------------------------------------------------- 1 | // objective: test \copyright and \date commands 2 | // check: indexpage.xml 3 | /** \mainpage 4 | * \copyright Dimitri van Heesch 5 | * \date July 13 2013 6 | */ 7 | -------------------------------------------------------------------------------- /testing/decl_def.h: -------------------------------------------------------------------------------- 1 | namespace N 2 | { 3 | 4 | /** @brief variable declaration */ 5 | extern int var; 6 | 7 | /** @brief function declaration */ 8 | void foo(int param); 9 | 10 | } 11 | -------------------------------------------------------------------------------- /.codedocs: -------------------------------------------------------------------------------- 1 | EXCLUDE = addon cmake doc examples jquery templates testing deps/iconv_winbuild src/logos.cpp src/lodepng.cpp 2 | FILE_PATTERNS = *.h *.cpp *.md 3 | USE_MDFILE_AS_MAINPAGE = src/doxygen.md 4 | -------------------------------------------------------------------------------- /templates/html/search_sidebar.css: -------------------------------------------------------------------------------- 1 | /*---------------- Search Box positioning */ 2 | 3 | #MSearchBox { 4 | margin: 5px; 5 | } 6 | 7 | dark-mode-toggle { 8 | padding-top: 8px; 9 | } 10 | -------------------------------------------------------------------------------- /testing/056_latexinclude.dox: -------------------------------------------------------------------------------- 1 | // objective: test the \latexinclude command 2 | // check: indexpage.xml 3 | /** \mainpage 4 | * Some text. 5 | * \latexinclude sample.tex 6 | * More text. 7 | */ 8 | -------------------------------------------------------------------------------- /testing/030_htmlinclude.dox: -------------------------------------------------------------------------------- 1 | // objective: test the \htmlinclude command 2 | // check: indexpage.xml 3 | /** \mainpage 4 | * Some text. 5 | * \htmlinclude[block] sample.html 6 | * More text. 7 | */ 8 | -------------------------------------------------------------------------------- /testing/040_namespace.cpp: -------------------------------------------------------------------------------- 1 | // objective: test the \namespace command 2 | // check: namespace_n_s.xml 3 | 4 | namespace NS 5 | { 6 | } 7 | 8 | /** @namespace NS 9 | * A namespace 10 | */ 11 | -------------------------------------------------------------------------------- /examples/par.cfg: -------------------------------------------------------------------------------- 1 | @INCLUDE = baseexample.cfg 2 | PROJECT_NAME = "Par Command" 3 | HTML_OUTPUT = html/examples/par/html 4 | LATEX_OUTPUT = latex/examples/par/latex 5 | INPUT = par.cpp 6 | -------------------------------------------------------------------------------- /testing/003_anchor.dox: -------------------------------------------------------------------------------- 1 | // objective: test \anchor command 2 | // check: indexpage.xml 3 | /** \mainpage 4 | * \ref myanchor "See Anchor" 5 | * Some text. 6 | * \anchor myanchor 7 | * More text. 8 | */ 9 | -------------------------------------------------------------------------------- /testing/latex_065.sty: -------------------------------------------------------------------------------- 1 | % Remove warnnigs about fonts 2 | % based on https://tex.stackexchange.com/a/398856/44119 3 | \makeatletter 4 | \renewcommand{\@font@warning}[1]{}% Remove font warning 5 | \makeatother 6 | -------------------------------------------------------------------------------- /examples/diagrams_d.h: -------------------------------------------------------------------------------- 1 | #ifndef DIAGRAM_D_H 2 | #define DIAGRAM_D_H 3 | #include "diagrams_a.h" 4 | #include "diagrams_b.h" 5 | class C; 6 | class D : virtual protected A, private B { public: C m_c; }; 7 | #endif 8 | -------------------------------------------------------------------------------- /examples/group.cfg: -------------------------------------------------------------------------------- 1 | @INCLUDE = baseexample.cfg 2 | PROJECT_NAME = "Grouping" 3 | HTML_OUTPUT = html/examples/group/html 4 | LATEX_OUTPUT = latex/examples/group/latex 5 | INPUT = group.cpp 6 | -------------------------------------------------------------------------------- /examples/page.cfg: -------------------------------------------------------------------------------- 1 | @INCLUDE = baseexample.cfg 2 | PROJECT_NAME = "Page Command" 3 | HTML_OUTPUT = html/examples/page/html 4 | LATEX_OUTPUT = latex/examples/page/latex 5 | INPUT = page.doc 6 | -------------------------------------------------------------------------------- /testing/103_include.cpp: -------------------------------------------------------------------------------- 1 | // objective: test if #include inside a class body will include the results as-is 2 | // check: class_test.xml 3 | 4 | /// Test clasx 5 | class Test 6 | { 7 | #include "members.ci" 8 | }; 9 | -------------------------------------------------------------------------------- /examples/qtstyle.cfg: -------------------------------------------------------------------------------- 1 | @INCLUDE = baseexample.cfg 2 | PROJECT_NAME = "Qt Style" 3 | HTML_OUTPUT = html/examples/qtstyle/html 4 | LATEX_OUTPUT = latex/examples/qtstyle/latex 5 | INPUT = qtstyle.cpp 6 | -------------------------------------------------------------------------------- /examples/templ.cfg: -------------------------------------------------------------------------------- 1 | @INCLUDE = baseexample.cfg 2 | PROJECT_NAME = "Template Test" 3 | HTML_OUTPUT = html/examples/templ/html 4 | LATEX_OUTPUT = latex/examples/templ/latex 5 | INPUT = templ.cpp 6 | -------------------------------------------------------------------------------- /examples/author.cfg: -------------------------------------------------------------------------------- 1 | @INCLUDE = baseexample.cfg 2 | PROJECT_NAME = "Author Command" 3 | HTML_OUTPUT = html/examples/author/html 4 | LATEX_OUTPUT = latex/examples/author/latex 5 | INPUT = author.cpp 6 | -------------------------------------------------------------------------------- /examples/class.h: -------------------------------------------------------------------------------- 1 | /* A dummy class */ 2 | 3 | class Test 4 | { 5 | }; 6 | 7 | /*! \class Test class.h "inc/class.h" 8 | * \brief This is a test class. 9 | * 10 | * Some details about the Test class. 11 | */ 12 | -------------------------------------------------------------------------------- /examples/tag.cpp: -------------------------------------------------------------------------------- 1 | /*! A class that is inherited from the external class Test. 2 | */ 3 | 4 | class Tag : public Example_Test 5 | { 6 | public: 7 | /*! an overloaded member. */ 8 | void example(); 9 | }; 10 | -------------------------------------------------------------------------------- /testing/042_package.java: -------------------------------------------------------------------------------- 1 | // objective: test the \package command 2 | // check: namespaceorg_1_1doxygen_1_1_test.xml 3 | 4 | package org.doxygen.Test; 5 | 6 | /** @package org.doxygen.Test 7 | * A test package. 8 | */ 9 | -------------------------------------------------------------------------------- /examples/jdstyle.cfg: -------------------------------------------------------------------------------- 1 | @INCLUDE = baseexample.cfg 2 | PROJECT_NAME = "Javadoc Style" 3 | HTML_OUTPUT = html/examples/jdstyle/html 4 | LATEX_OUTPUT = latex/examples/jdstyle/latex 5 | INPUT = jdstyle.cpp 6 | -------------------------------------------------------------------------------- /examples/relates.cfg: -------------------------------------------------------------------------------- 1 | @INCLUDE = baseexample.cfg 2 | PROJECT_NAME = "Relates Command" 3 | HTML_OUTPUT = html/examples/relates/html 4 | LATEX_OUTPUT = latex/examples/relates/latex 5 | INPUT = relates.cpp 6 | -------------------------------------------------------------------------------- /testing/072_using.cpp: -------------------------------------------------------------------------------- 1 | // objective: test template parameters for a type alias 2 | // check: 072__using_8cpp.xml 3 | 4 | /** \file */ 5 | #include 6 | /** @brief A vector */ 7 | template using Vec = std::vector; 8 | -------------------------------------------------------------------------------- /examples/autolink.cfg: -------------------------------------------------------------------------------- 1 | @INCLUDE = baseexample.cfg 2 | PROJECT_NAME = "Automatic link generation" 3 | HTML_OUTPUT = html/examples/autolink/html 4 | LATEX_OUTPUT = latex/examples/autolink/latex 5 | INPUT = autolink.cpp 6 | -------------------------------------------------------------------------------- /examples/enum.cfg: -------------------------------------------------------------------------------- 1 | @INCLUDE = baseexample.cfg 2 | PROJECT_NAME = "Enum Command" 3 | HTML_OUTPUT = html/examples/enum/html 4 | LATEX_OUTPUT = latex/examples/enum/latex 5 | INPUT = enum.h 6 | STRIP_CODE_COMMENTS = NO 7 | -------------------------------------------------------------------------------- /examples/file.cfg: -------------------------------------------------------------------------------- 1 | @INCLUDE = baseexample.cfg 2 | PROJECT_NAME = "File Command" 3 | HTML_OUTPUT = html/examples/file/html 4 | LATEX_OUTPUT = latex/examples/file/latex 5 | INPUT = file.h 6 | STRIP_CODE_COMMENTS = NO 7 | -------------------------------------------------------------------------------- /examples/func.cfg: -------------------------------------------------------------------------------- 1 | @INCLUDE = baseexample.cfg 2 | PROJECT_NAME = "Fn Command" 3 | HTML_OUTPUT = html/examples/func/html 4 | LATEX_OUTPUT = latex/examples/func/latex 5 | INPUT = func.h 6 | STRIP_CODE_COMMENTS = NO 7 | -------------------------------------------------------------------------------- /examples/chmexample.cfg: -------------------------------------------------------------------------------- 1 | HTML_COLORSTYLE = LIGHT 2 | HTML_DYNAMIC_MENUS = NO 3 | HTML_COPY_CLIPBOARD = NO 4 | GENERATE_LATEX = NO 5 | OUTPUT_DIRECTORY = $(PROJECT_BINARY_DIR)/chm 6 | HTML_EXTRA_STYLESHEET = doxygen_manual_chm.css 7 | -------------------------------------------------------------------------------- /examples/class.cfg: -------------------------------------------------------------------------------- 1 | @INCLUDE = baseexample.cfg 2 | PROJECT_NAME = "Class Command" 3 | HTML_OUTPUT = html/examples/class/html 4 | LATEX_OUTPUT = latex/examples/class/latex 5 | INPUT = class.h 6 | STRIP_CODE_COMMENTS = NO 7 | -------------------------------------------------------------------------------- /examples/restypedef.cfg: -------------------------------------------------------------------------------- 1 | @INCLUDE = baseexample.cfg 2 | PROJECT_NAME = "Resolving Typedefs" 3 | HTML_OUTPUT = html/examples/restypedef/html 4 | LATEX_OUTPUT = latex/examples/restypedef/latex 5 | INPUT = restypedef.cpp 6 | -------------------------------------------------------------------------------- /examples/file.h: -------------------------------------------------------------------------------- 1 | /** \file file.h 2 | * A brief file description. 3 | * A more elaborated file description. 4 | */ 5 | 6 | /** 7 | * A global integer value. 8 | * More details about this value. 9 | */ 10 | extern int globalValue; 11 | -------------------------------------------------------------------------------- /templates/html/tab_s.lum: -------------------------------------------------------------------------------- 1 | # tab separator 2 | # width & height 3 | 1 36 4 | # luma data 5 | 187 186 185 183 182 181 180 178 176 6 | 174 173 171 169 167 164 163 161 158 7 | 156 154 152 150 148 145 143 141 140 8 | 138 136 134 131 131 128 126 125 124 9 | -------------------------------------------------------------------------------- /testing/052_tilde.dox: -------------------------------------------------------------------------------- 1 | // objective: test \~ command 2 | // check: indexpage.xml 3 | /** 4 | \mainpage 5 | \~english This is English. 6 | \~dutch Dit is Nederlands. 7 | \~german Dies ist Deutsch. 8 | \~ Output for all languages. 9 | */ 10 | -------------------------------------------------------------------------------- /testing/snip.md: -------------------------------------------------------------------------------- 1 | [SUB] 2 | # Included Section 1.1 3 | 4 | Some text in SUB section. 5 | 6 | @snippet{doc,raise=1} snip.md SUBSUB 7 | [SUB] 8 | [SUBSUB] 9 | # Included Section x.1.1 10 | 11 | Some text in SUBSUB section. 12 | [SUBSUB] 13 | -------------------------------------------------------------------------------- /examples/afterdoc.cfg: -------------------------------------------------------------------------------- 1 | @INCLUDE = baseexample.cfg 2 | PROJECT_NAME = "AfterDocs" 3 | HTML_OUTPUT = html/examples/afterdoc/html 4 | LATEX_OUTPUT = latex/examples/afterdoc/latex 5 | INPUT = afterdoc.h 6 | STRIP_CODE_COMMENTS = NO 7 | -------------------------------------------------------------------------------- /examples/pyexample.cfg: -------------------------------------------------------------------------------- 1 | @INCLUDE = baseexample.cfg 2 | PROJECT_NAME = "Python" 3 | HTML_OUTPUT = html/examples/pyexample/html 4 | LATEX_OUTPUT = latex/examples/pyexample/latex 5 | OPTIMIZE_OUTPUT_JAVA = YES 6 | INPUT = pyexample.py 7 | -------------------------------------------------------------------------------- /examples/overload.cfg: -------------------------------------------------------------------------------- 1 | @INCLUDE = baseexample.cfg 2 | PROJECT_NAME = "Overloaded Command" 3 | HTML_OUTPUT = html/examples/overload/html 4 | LATEX_OUTPUT = latex/examples/overload/latex 5 | SORT_MEMBER_DOCS = NO 6 | INPUT = overload.cpp 7 | -------------------------------------------------------------------------------- /examples/tag.cfg: -------------------------------------------------------------------------------- 1 | @INCLUDE = baseexample.cfg 2 | PROJECT_NAME = "Tag Files" 3 | HTML_OUTPUT = html/examples/tag/html 4 | LATEX_OUTPUT = latex/examples/tag/latex 5 | INPUT = tag.cpp 6 | TAGFILES = example.tag=../../example/html 7 | -------------------------------------------------------------------------------- /templates/html/tab_a.lum: -------------------------------------------------------------------------------- 1 | # active tab background luma 2 | # width & height 3 | 1 36 4 | # luma data 5 | 31 42 59 69 73 74 75 77 77 6 | 77 79 80 80 82 81 83 84 86 7 | 87 88 89 90 91 91 93 94 94 8 | 96 96 97 98 98 99 99 99 100 9 | -------------------------------------------------------------------------------- /templates/html/tab_b.lum: -------------------------------------------------------------------------------- 1 | # normal tab background luma 2 | # width & height 3 | 1 36 4 | # luma data 5 | 218 228 235 233 230 227 225 222 221 6 | 218 217 215 214 213 212 211 210 209 7 | 209 197 198 199 200 201 202 203 204 8 | 205 207 209 211 213 217 219 206 188 9 | -------------------------------------------------------------------------------- /cmake/SearchReplace.cmake: -------------------------------------------------------------------------------- 1 | message("Replacing ${search} by ${replace} in file ${src} and writing to ${dst}...") 2 | file(READ ${src} file_contents) 3 | string(REPLACE "${search}" "${replace}" file_contents ${file_contents}) 4 | file(WRITE ${dst} ${file_contents}) 5 | -------------------------------------------------------------------------------- /examples/memgrp.cfg: -------------------------------------------------------------------------------- 1 | @INCLUDE = baseexample.cfg 2 | PROJECT_NAME = "Member Grouping" 3 | HTML_OUTPUT = html/examples/memgrp/html 4 | LATEX_OUTPUT = latex/examples/memgrp/latex 5 | INPUT = memgrp.cpp 6 | DISTRIBUTE_GROUP_DOC = YES 7 | -------------------------------------------------------------------------------- /examples/structcmd.cfg: -------------------------------------------------------------------------------- 1 | @INCLUDE = baseexample.cfg 2 | PROJECT_NAME = "Structural commands" 3 | HTML_OUTPUT = html/examples/structcmd/html 4 | LATEX_OUTPUT = latex/examples/structcmd/latex 5 | INPUT = structcmd.h 6 | STRIP_CODE_COMMENTS = NO 7 | -------------------------------------------------------------------------------- /templates/html/tab_h.lum: -------------------------------------------------------------------------------- 1 | # hovering tab background luma 2 | # width & height 3 | 1 36 4 | # luma data 5 | 181 191 198 196 193 190 188 185 184 6 | 181 180 178 177 176 175 174 173 172 7 | 172 154 155 156 157 158 159 160 161 8 | 162 164 166 168 170 174 176 163 145 9 | -------------------------------------------------------------------------------- /templates/html/tab_sd.lum: -------------------------------------------------------------------------------- 1 | # tab separator for dark mode 2 | # width & height 3 | 1 36 4 | # luma data 5 | 67 66 65 63 62 61 60 58 56 6 | 54 53 51 49 47 44 43 41 38 7 | 36 34 32 30 28 25 23 21 20 8 | 18 16 14 11 11 8 6 5 4 9 | -------------------------------------------------------------------------------- /deps/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_subdirectory(libmd5) 2 | add_subdirectory(liblodepng) 3 | add_subdirectory(libmscgen) 4 | if (NOT use_sys_spdlog) 5 | add_subdirectory(spdlog) 6 | endif() 7 | if (NOT use_sys_sqlite3) 8 | add_subdirectory(sqlite3) 9 | endif() 10 | -------------------------------------------------------------------------------- /examples/include.cfg: -------------------------------------------------------------------------------- 1 | @INCLUDE = baseexample.cfg 2 | PROJECT_NAME = "Include Command" 3 | HTML_OUTPUT = html/examples/include/html 4 | LATEX_OUTPUT = latex/examples/include/latex 5 | INPUT = include.cpp 6 | EXAMPLE_PATH = include_test.cpp 7 | -------------------------------------------------------------------------------- /testing/more_099_b.c: -------------------------------------------------------------------------------- 1 | /** 2 | * @file 3 | * 4 | * @brief b.c 5 | */ 6 | 7 | /** 8 | * @brief E in b.c 9 | */ 10 | enum E { 11 | /** 12 | * @brief A in b.c 13 | */ 14 | A, 15 | 16 | /** 17 | * @brief B in b.c 18 | */ 19 | B 20 | }; 21 | -------------------------------------------------------------------------------- /templates/html/tab_ad.lum: -------------------------------------------------------------------------------- 1 | # active tab background luma for dark mode 2 | # width & height 3 | 1 36 4 | # luma data 5 | 0 0 9 19 23 24 25 27 27 6 | 27 29 30 30 31 32 33 34 36 7 | 37 38 39 40 41 41 43 44 44 8 | 46 46 47 48 48 49 49 34 3 9 | -------------------------------------------------------------------------------- /templates/html/tab_bd.lum: -------------------------------------------------------------------------------- 1 | # normal tab background luma for dark mode 2 | # width & height 3 | 1 36 4 | # luma data 5 | 33 43 50 48 45 42 40 37 36 6 | 33 32 30 29 28 27 26 25 24 7 | 24 12 13 14 15 16 17 18 19 8 | 20 22 24 26 28 32 34 21 3 9 | -------------------------------------------------------------------------------- /examples/define.cfg: -------------------------------------------------------------------------------- 1 | @INCLUDE = baseexample.cfg 2 | PROJECT_NAME = "Define Command" 3 | HTML_OUTPUT = html/examples/define/html 4 | LATEX_OUTPUT = latex/examples/define/latex 5 | INPUT = define.h 6 | STRIP_CODE_COMMENTS = NO 7 | ENABLE_PREPROCESSING = YES 8 | -------------------------------------------------------------------------------- /templates/html/tab_hd.lum: -------------------------------------------------------------------------------- 1 | # hovering tab background luma for dark mode 2 | # width & height 3 | 1 36 4 | # luma data 5 | 81 91 98 96 93 90 88 85 84 6 | 81 80 78 77 76 75 74 73 72 7 | 72 54 55 56 57 58 59 60 61 8 | 62 64 66 68 70 74 76 63 45 9 | -------------------------------------------------------------------------------- /testing/032_include.cpp: -------------------------------------------------------------------------------- 1 | // objective: test the \include and \includelineno commands 2 | // check: indexpage.xml 3 | 4 | /** \mainpage 5 | * Some text. 6 | * \include example_test.cpp 7 | * More text. 8 | * \includelineno example_test.cpp 9 | * End. 10 | */ 11 | -------------------------------------------------------------------------------- /deps/libmscgen/gd_color.h: -------------------------------------------------------------------------------- 1 | #ifndef GD_COLOR_H 2 | #define GD_COLOR_H 1 3 | 4 | #ifdef __cplusplus 5 | extern "C" { 6 | #endif 7 | 8 | int gdColorMatch(gdImagePtr im, int col1, int col2, float threshold); 9 | 10 | #ifdef __cplusplus 11 | } 12 | #endif 13 | 14 | #endif 15 | -------------------------------------------------------------------------------- /examples/docstring.cfg: -------------------------------------------------------------------------------- 1 | @INCLUDE = baseexample.cfg 2 | PROJECT_NAME = "Python" 3 | HTML_OUTPUT = html/examples/docstring/html 4 | LATEX_OUTPUT = latex/examples/docstring/latex 5 | EXTRACT_ALL = YES 6 | OPTIMIZE_OUTPUT_JAVA = YES 7 | INPUT = docstring.py 8 | -------------------------------------------------------------------------------- /testing/006_author.dox: -------------------------------------------------------------------------------- 1 | // objective: test the \author, \since, and \version command 2 | // check: indexpage.xml 3 | /** \mainpage 4 | * \author John Doe 5 | * \author Jane Doe 6 | * \authors David, Steven 7 | * \since version 1.2 8 | * \version 1.8-beta2 9 | */ 10 | -------------------------------------------------------------------------------- /addon/doxywizard/config_msg.h: -------------------------------------------------------------------------------- 1 | #ifndef DOXYW_MSG_H 2 | #define DOXYW_MSG_H 3 | 4 | void config_err(const char *fmt, ...); 5 | void config_term(const char *fmt, ...); 6 | void config_warn(const char *fmt, ...); 7 | void config_open(); 8 | void config_finish(); 9 | 10 | #endif 11 | -------------------------------------------------------------------------------- /deps/spdlog/include/spdlog/details/windows_include.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #ifndef NOMINMAX 4 | #define NOMINMAX // prevent windows redefining min/max 5 | #endif 6 | 7 | #ifndef WIN32_LEAN_AND_MEAN 8 | #define WIN32_LEAN_AND_MEAN 9 | #endif 10 | 11 | #include 12 | -------------------------------------------------------------------------------- /examples/example.cfg: -------------------------------------------------------------------------------- 1 | @INCLUDE = baseexample.cfg 2 | PROJECT_NAME = "Example Command" 3 | HTML_OUTPUT = html/examples/example/html 4 | LATEX_OUTPUT = latex/examples/example/latex 5 | GENERATE_TAGFILE = example.tag 6 | INPUT = example.cpp 7 | EXAMPLE_PATH = example_test.cpp 8 | -------------------------------------------------------------------------------- /templates/html/nav_fd.lum: -------------------------------------------------------------------------------- 1 | # function header in dark mode 2 | # width & height 3 | 1 56 4 | # luma data 5 | 48 47 46 45 44 43 42 41 6 | 40 39 38 37 36 35 34 33 7 | 32 31 30 29 28 23 23 23 8 | 23 23 23 23 23 23 23 23 9 | 24 24 24 24 25 25 25 25 10 | 25 26 26 26 27 27 27 27 11 | 28 28 28 29 29 29 29 29 12 | -------------------------------------------------------------------------------- /testing/033_internal.dox: -------------------------------------------------------------------------------- 1 | // objective: test the \internal and \endinternal commands (1) 2 | // check: indexpage.xml 3 | 4 | /** \mainpage 5 | * Some text. 6 | * \internal 7 | * Internal text. 8 | * \endinternal 9 | * More visible text. 10 | * \internal 11 | * More internal text. 12 | */ 13 | -------------------------------------------------------------------------------- /testing/071_enum_in_anon_ns.cpp: -------------------------------------------------------------------------------- 1 | // objective: test that enum values in anonymous namespaces produce no warning 2 | // check: namespace_a_namespace_1_1_0d0.xml 3 | 4 | namespace ANamespace { namespace { 5 | 6 | enum class Boolean { 7 | False, 8 | True, 9 | FileNotFound 10 | }; 11 | 12 | }} 13 | -------------------------------------------------------------------------------- /testing/029_hideinit.c: -------------------------------------------------------------------------------- 1 | // objective: test the \hideinitializer command 2 | // check: 029__hideinit_8c.xml 3 | 4 | /** \file */ 5 | 6 | /** a variable with initializer visible */ 7 | int var1 = 10; 8 | 9 | /** a variable without initializer visible 10 | * \hideinitializer 11 | */ 12 | int var2 = 20; 13 | -------------------------------------------------------------------------------- /testing/053_tilde.dox: -------------------------------------------------------------------------------- 1 | // objective: test \~ command with non default OUTPUT_LANGUAGE 2 | // check: indexpage.xml 3 | // config: OUTPUT_LANGUAGE = Dutch 4 | /** 5 | \mainpage 6 | \~english This is English. 7 | \~dutch Dit is Nederlands. 8 | \~german Dies ist Deutsch. 9 | \~ Output for all languages. 10 | */ 11 | -------------------------------------------------------------------------------- /testing/062_main.md: -------------------------------------------------------------------------------- 1 | 5 | [TOC] 6 | 7 | Some text in main.md 8 | 9 | # Section 1 10 | @include{doc,raise=1} sub.md 11 | 12 | # Section 2 13 | ## Subsection 2.1 14 | @include{doc,raise=2} subsub.md 15 | 16 | -------------------------------------------------------------------------------- /examples/javadoc-banner.cfg: -------------------------------------------------------------------------------- 1 | @INCLUDE = baseexample.cfg 2 | PROJECT_NAME = "Javadoc Banner" 3 | HTML_OUTPUT = html/examples/javadoc-banner/html 4 | LATEX_OUTPUT = latex/examples/javadoc-banner/latex 5 | INPUT = javadoc-banner.h 6 | STRIP_CODE_COMMENTS = NO 7 | JAVADOC_BANNER = YES 8 | EXTRACT_ALL = YES 9 | -------------------------------------------------------------------------------- /templates/html/search.css: -------------------------------------------------------------------------------- 1 | /*---------------- Search Box positioning */ 2 | 3 | #main-menu > li:last-child { 4 | /* This
  • object is the parent of the search bar */ 5 | display: flex; 6 | justify-content: center; 7 | align-items: center; 8 | height: 36px; 9 | margin-right: 1em; 10 | } 11 | 12 | -------------------------------------------------------------------------------- /deps/spdlog/src/cfg.cpp: -------------------------------------------------------------------------------- 1 | // Copyright(c) 2015-present, Gabi Melman & spdlog contributors. 2 | // Distributed under the MIT License (http://opensource.org/licenses/MIT) 3 | 4 | #ifndef SPDLOG_COMPILED_LIB 5 | #error Please define SPDLOG_COMPILED_LIB to compile this file. 6 | #endif 7 | 8 | #include 9 | -------------------------------------------------------------------------------- /deps/sqlite3/README.md: -------------------------------------------------------------------------------- 1 | # Contents 2 | 3 | This directory contains the "amalgamation" sources of sqlite3 version 3.42.0 as 4 | can be found here: https://www.sqlite.org/download.html 5 | 6 | Sqlite3 is used when option `GENERATE_SQLITE3` is enabled to generate sqlite3 database 7 | with the symbols found a project parsed by doxygen. 8 | -------------------------------------------------------------------------------- /testing/063_main.md: -------------------------------------------------------------------------------- 1 | 5 | [TOC] 6 | 7 | Some text in main.md 8 | 9 | # Section 1 10 | @snippet{doc,raise=1} snip.md SUB 11 | 12 | # Section 2 13 | ## Subsection 2.1 14 | @snippet{doc,raise=2} snip.md SUBSUB 15 | 16 | -------------------------------------------------------------------------------- /examples/strip_example.py: -------------------------------------------------------------------------------- 1 | import sys 2 | do_print = False 3 | for line in sys.stdin: 4 | if line.startswith("%--- Begin generated contents ---"): 5 | do_print = True 6 | elif line.startswith("%--- End generated contents ---"): 7 | do_print = False 8 | elif do_print: 9 | sys.stdout.write(line) 10 | -------------------------------------------------------------------------------- /templates/html/search_nomenu_toggle.css: -------------------------------------------------------------------------------- 1 | /*---------------- Search Box */ 2 | 3 | .titlearea table { 4 | width: 100%; 5 | } 6 | 7 | dark-mode-toggle { 8 | position: absolute; 9 | right: 5px; 10 | padding-top: 3px; 11 | } 12 | 13 | #MSearchBox { 14 | position: absolute; 15 | right: 34px; 16 | } 17 | 18 | -------------------------------------------------------------------------------- /testing/036_link.c: -------------------------------------------------------------------------------- 1 | // objective: test \link command 2 | // check: 036__link_8c.xml 3 | 4 | /** \file 5 | * See \link func() the function\endlink for more info. 6 | * See the \link Test test\endlink class. 7 | */ 8 | 9 | /** A function 10 | */ 11 | void func(int p); 12 | 13 | /** A test */ 14 | class Test 15 | { 16 | }; 17 | -------------------------------------------------------------------------------- /testing/066_property_initializer.cs: -------------------------------------------------------------------------------- 1 | // objective: C# property initializer 2 | // check: class_class1.xml 3 | /// 4 | /// Documentation of the class 5 | class Class1 6 | { 7 | public int Property1 { get; } = 1; ///< Documentation of first property 8 | public string Property2 { get; set; } ///< Documentation of second property 9 | } 10 | -------------------------------------------------------------------------------- /.dockerignore: -------------------------------------------------------------------------------- 1 | *~ 2 | .*sw? 3 | \#* 4 | .DS_Store 5 | 6 | *.rej 7 | *.orig 8 | 9 | *.pro 10 | /packages/rpm/doxygen.spec 11 | *.idb 12 | *.pdb 13 | 14 | /doxygen_docs 15 | /doxygen.tag 16 | /build* 17 | /qtools_docs 18 | /warnings.log 19 | 20 | tags 21 | 22 | .idea 23 | 24 | /examples/html/* 25 | /examples/latex/* 26 | 27 | Dockerfile 28 | -------------------------------------------------------------------------------- /templates/html/nav_f.lum: -------------------------------------------------------------------------------- 1 | # function header 2 | # width & height 3 | 1 56 4 | # luma data 5 | 248 247 246 245 244 243 242 241 6 | 240 239 238 237 236 235 234 233 7 | 232 231 230 229 228 223 223 223 8 | 223 223 223 223 223 223 223 223 9 | 224 224 224 224 225 225 225 225 10 | 225 226 226 226 227 227 227 227 11 | 228 228 228 229 229 229 229 229 12 | -------------------------------------------------------------------------------- /testing/012_cite.dox: -------------------------------------------------------------------------------- 1 | // objective: test the \cite command 2 | // check: indexpage.xml 3 | // check: citelist.xml 4 | // config: CITE_BIB_FILES = $INPUTDIR/sample.bib 5 | /** \mainpage 6 | * See \cite knuth79 for more info. 7 | * 8 | * Other references with cross references see \cite Be09 and \cite BertholdHeinzVigerske2009 for more info. 9 | */ 10 | -------------------------------------------------------------------------------- /testing/035_invariant.c: -------------------------------------------------------------------------------- 1 | // objective: test \invariant, \pre and \post commands 2 | // check: 035__invariant_8c.xml 3 | 4 | /** \file */ 5 | 6 | /** \invariant i+j=p 7 | * \pre p\>=0 8 | * \post *q=2^(p+1) 9 | */ 10 | void func(int p,int *q) 11 | { 12 | int j = p, k=1, i; 13 | for (i=0; i<=p; i++) j--,k=k*2; 14 | *q = k; 15 | } 16 | -------------------------------------------------------------------------------- /testing/050_verbatim.dox: -------------------------------------------------------------------------------- 1 | // objective: test \verbatim and \verbinclude commands 2 | // check: indexpage.xml 3 | /** 4 | \mainpage 5 | Some normal text. 6 | \verbatim 7 | A verbatim section with a /* C comment */ in it 8 | \endverbatim 9 | Showing a file as verbatim 10 | \verbinclude sample.bib 11 | More text after the verbatim section. 12 | 13 | */ 14 | -------------------------------------------------------------------------------- /testing/051_escape.dox: -------------------------------------------------------------------------------- 1 | // objective: test various characters that should be escaped 2 | // check: indexpage.xml 3 | /** 4 | \mainpage 5 | Dollar \$ 6 | At \@ 7 | Backslash \\ 8 | Ampersand \& 9 | Less \< 10 | Greater \> 11 | Hash \# 12 | Percent \% 13 | Quote \" 14 | Dot \. 15 | Double colon \:: 16 | Pipe \| 17 | Plus \+ 18 | Minus \- 19 | 20 | */ 21 | -------------------------------------------------------------------------------- /addon/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_subdirectory(doxmlparser) 2 | 3 | if (build_app) 4 | add_subdirectory(doxyapp) 5 | endif () 6 | 7 | if (build_parse) 8 | add_subdirectory(doxyparse) 9 | endif () 10 | 11 | if (build_search) 12 | add_subdirectory(doxysearch) 13 | endif () 14 | 15 | if (build_wizard) 16 | add_subdirectory(doxywizard) 17 | endif () 18 | -------------------------------------------------------------------------------- /examples/baseexample.cfg: -------------------------------------------------------------------------------- 1 | PROJECT_ICON = ../examples/doxygen.ico 2 | CASE_SENSE_NAMES = NO 3 | QUIET = YES 4 | JAVADOC_AUTOBRIEF = YES 5 | SEARCHENGINE = NO 6 | LATEX_HIDE_INDICES = YES 7 | COMPACT_LATEX = YES 8 | WARN_AS_ERROR = FAIL_ON_WARNINGS 9 | HTML_PROJECT_COOKIE = doxygen_docs 10 | @INCLUDE = $(EXTRA_SETTINGS) 11 | -------------------------------------------------------------------------------- /templates/html/search_fixedtabs.css: -------------------------------------------------------------------------------- 1 | /*---------------- Search Box positioning */ 2 | 3 | #navrow1 .tablist > li:last-child { 4 | /* This
  • object is the parent of the search bar */ 5 | display: flex; 6 | justify-content: center; 7 | align-items: center; 8 | height: 36px; 9 | margin-right: 1em; 10 | float: right; 11 | } 12 | 13 | -------------------------------------------------------------------------------- /testing/048_showinit.c: -------------------------------------------------------------------------------- 1 | // objective: test the \showinit command 2 | // check: 048__showinit_8c.xml 3 | // config: MAX_INITIALIZER_LINES = 0 4 | 5 | /** \file */ 6 | 7 | /** a variable with initializer hidden due to MAX_INITIALIZER_LINES */ 8 | int var1 = 10; 9 | 10 | /** a variable with initializer visible 11 | * \showinitializer 12 | */ 13 | int var2 = 20; 14 | -------------------------------------------------------------------------------- /testing/049_snippet.cpp: -------------------------------------------------------------------------------- 1 | // objective: test the \snippet command 2 | // check: indexpage.xml 3 | 4 | /** \mainpage 5 | * A bubble sort algorithm 6 | * First get the inputs 7 | * \snippet snippet_test.cpp input 8 | * Then do the bubbling 9 | * \snippet snippet_test.cpp bubble 10 | * Then write the result 11 | * \snippet snippet_test.cpp output 12 | */ 13 | -------------------------------------------------------------------------------- /testing/obsolete: -------------------------------------------------------------------------------- 1 | # Manual test for function Config::updateObsolete 2 | # 3 | # Usage: 4 | # 5 | # cat obsolete | ../build/bin/doxygen -s -u - | grep -e 'DOT_COMMON_ATTR.*F1.*123' -e 'DOT_EDGE_ATTR.*F1.*123' 6 | # 7 | # Check output manually. Expected two lines in stderr and two lines in stdout. 8 | 9 | # obsoleted attributes: 10 | DOT_FONTNAME=F1 11 | DOT_FONTSIZE=123 12 | -------------------------------------------------------------------------------- /examples/diagrams.cfg: -------------------------------------------------------------------------------- 1 | @INCLUDE = baseexample.cfg 2 | PROJECT_NAME = "Diagrams" 3 | HTML_OUTPUT = html/examples/diagrams/html 4 | LATEX_OUTPUT = latex/examples/diagrams/latex 5 | HAVE_DOT = YES 6 | EXTRACT_ALL = YES 7 | ENABLE_PREPROCESSING = YES 8 | INPUT = . 9 | STRIP_CODE_COMMENTS = NO 10 | FILE_PATTERNS = diagrams_*.h 11 | -------------------------------------------------------------------------------- /addon/doxyparse/doxyparse.1: -------------------------------------------------------------------------------- 1 | .TH DOXYPARSE "1" "DATE" "doxyparse VERSION" "User Commands" 2 | .SH NAME 3 | doxyparse \- parse and dumps information about the code 4 | .SH SYNOPSIS 5 | .B doxyparse 6 | [\fIsource file\fR...] 7 | .SH DESCRIPTION 8 | Parses source code and dumps the dependencies between the code elements. 9 | .SH SEE ALSO 10 | doxygen(1), doxytag(1), doxywizard(1). 11 | -------------------------------------------------------------------------------- /testing/014_code.dox: -------------------------------------------------------------------------------- 1 | // objective: test the \code command 2 | // check: indexpage.xml 3 | /** \mainpage 4 | * \code{.py} 5 | * # comment in Python 6 | * class Python: 7 | * pass 8 | * \endcode 9 | * 10 | * \code{.cpp} 11 | * // comment in a code block 12 | * class Cpp {}; 13 | * \endcode 14 | * 15 | * \code 16 | * // implicit code language 17 | * \endcode 18 | */ 19 | -------------------------------------------------------------------------------- /examples/relates.cpp: -------------------------------------------------------------------------------- 1 | /*! 2 | * A String class. 3 | */ 4 | 5 | class String 6 | { 7 | friend int strcmp(const String &,const String &); 8 | }; 9 | 10 | /*! 11 | * Compares two strings. 12 | */ 13 | 14 | int strcmp(const String &s1,const String &s2) 15 | { 16 | } 17 | 18 | /*! \relates String 19 | * A string debug function. 20 | */ 21 | void stringDebug() 22 | { 23 | } 24 | -------------------------------------------------------------------------------- /templates/html/dynsections_tooltips.js: -------------------------------------------------------------------------------- 1 | $(function() { 2 | $('.code,.codeRef').each(function() { 3 | $(this).data('powertip',$('#a'+$(this).attr('href').replace(/.*\//,'').replace(/[^a-z_A-Z0-9]/g,'_')).html()); 4 | $.fn.powerTip.smartPlacementLists.s = [ 's', 'n', 'ne', 'se' ]; 5 | $(this).powerTip({ placement: 's', smartPlacement: true, mouseOnToPopup: true }); 6 | }); 7 | }); 8 | -------------------------------------------------------------------------------- /addon/doxywizard/doxywizard.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | ../../src/config.xml 4 | images/add.png 5 | images/del.png 6 | images/file.png 7 | images/folder.png 8 | images/refresh.png 9 | images/tunecolor.png 10 | 11 | 12 | -------------------------------------------------------------------------------- /testing/077_no_xml_namespace_members_in_file_scope.h: -------------------------------------------------------------------------------- 1 | // objective: test that namespace members are not put to file docs by default 2 | // check: 077__no__xml__namespace__members__in__file__scope_8h.xml 3 | 4 | namespace Namespace { 5 | 6 | /** 7 | @brief A function 8 | 9 | Detailed documentation. 10 | */ 11 | void foo(); 12 | 13 | /** @brief An enum */ 14 | enum class Enum {}; 15 | 16 | } 17 | -------------------------------------------------------------------------------- /testing/099_a.c: -------------------------------------------------------------------------------- 1 | // objective: test enum field association 2 | // input: more_099_b.c 3 | // check: 099__a_8c.xml 4 | // check: more__099__b_8c.xml 5 | 6 | /** 7 | * @file 8 | * 9 | * @brief a.c 10 | */ 11 | 12 | /** 13 | * @brief E in a.c 14 | */ 15 | enum E { 16 | /** 17 | * @brief A in a.c 18 | */ 19 | A, 20 | 21 | /** 22 | * @brief B in a.c 23 | */ 24 | B 25 | }; 26 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *~ 2 | .*sw? 3 | \#* 4 | .DS_Store 5 | 6 | *.rej 7 | *.orig 8 | 9 | *.pro 10 | /packages/rpm/doxygen.spec 11 | *.idb 12 | *.pdb 13 | 14 | /doxygen_docs 15 | /doxygen.tag 16 | /build* 17 | /qtools_docs 18 | /warnings.log 19 | 20 | tags 21 | .cache/ 22 | 23 | .idea 24 | cmake-build-debug/ 25 | cmake-build-debug-event-trace/ 26 | .vscode/ 27 | 28 | /examples/html/* 29 | /examples/latex/* 30 | -------------------------------------------------------------------------------- /testing/047_return.cpp: -------------------------------------------------------------------------------- 1 | // objective: test the \result, \return, and \returns commands 2 | // check: 047__return_8cpp.xml 3 | 4 | /** \file */ 5 | 6 | /** Test function 1. 7 | * \result A integer. 8 | */ 9 | int func1(); 10 | 11 | /** Test function 2. 12 | * \return A integer. 13 | */ 14 | int func2(); 15 | 16 | /** Test function 3. 17 | * \returns A integer. 18 | */ 19 | int func3(); 20 | 21 | -------------------------------------------------------------------------------- /testing/082_decl_def.cpp: -------------------------------------------------------------------------------- 1 | // objective: test for declaration and definition order independence: decl first 2 | // check: namespace_n.xml 3 | // config: INPUT = $INPUTDIR/decl_def.h $INPUTDIR/082_decl_def.cpp 4 | #include "test.h" 5 | 6 | /** Namespace */ 7 | namespace N 8 | { 9 | 10 | /** Detailed docs. */ 11 | int var; 12 | 13 | /** Detailed docs. */ 14 | void foo(int param) 15 | { 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /testing/083_decl_def.cpp: -------------------------------------------------------------------------------- 1 | // objective: test for declaration and definition order independence: def first 2 | // check: namespace_n.xml 3 | // config: INPUT = $INPUTDIR/083_decl_def.cpp $INPUTDIR/decl_def.h 4 | #include "test.h" 5 | 6 | /** Namespace */ 7 | namespace N 8 | { 9 | 10 | /** Detailed docs. */ 11 | int var; 12 | 13 | /** Detailed docs. */ 14 | void foo(int param) 15 | { 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /deps/spdlog/include/spdlog/fwd.h: -------------------------------------------------------------------------------- 1 | // Copyright(c) 2015-present, Gabi Melman & spdlog contributors. 2 | // Distributed under the MIT License (http://opensource.org/licenses/MIT) 3 | 4 | #pragma once 5 | 6 | namespace spdlog { 7 | class logger; 8 | class formatter; 9 | 10 | namespace sinks { 11 | class sink; 12 | } 13 | 14 | namespace level { 15 | enum level_enum : int; 16 | } 17 | 18 | } // namespace spdlog 19 | -------------------------------------------------------------------------------- /addon/doxyapp/README: -------------------------------------------------------------------------------- 1 | This directory contains an example of how to use doxygen as 2 | an "source parsing engine" in an application. It shows how to configure doxygen 3 | from the application and shows how to run doxygen without generating output. 4 | Practically, it allows you to extract the symbols found in the source code. 5 | 6 | Note that if you use this approach your application should be licensed under the GPL. 7 | 8 | 9 | -------------------------------------------------------------------------------- /examples/mux.cfg: -------------------------------------------------------------------------------- 1 | @INCLUDE = baseexample.cfg 2 | PROJECT_NAME = Mux 3 | HTML_OUTPUT = html/examples/mux/html 4 | LATEX_OUTPUT = latex/examples/mux/latex 5 | INPUT = mux.vhdl 6 | OPTIMIZE_OUTPUT_VHDL = YES 7 | INHERIT_DOCS = YES 8 | EXTRACT_PRIVATE = YES 9 | HIDE_SCOPE_NAMES = YES 10 | INHERIT_DOCS = NO 11 | ENABLE_PREPROCESSING = NO 12 | EXTRACT_PACKAGE = YES 13 | -------------------------------------------------------------------------------- /testing/078_xml_namespace_members_in_file_scope.h: -------------------------------------------------------------------------------- 1 | // objective: test that namespace members are put to file docs when enabled 2 | // check: 078__xml__namespace__members__in__file__scope_8h.xml 3 | // config: XML_NS_MEMB_FILE_SCOPE = YES 4 | 5 | namespace Namespace { 6 | 7 | /** 8 | @brief A function 9 | 10 | Detailed documentation. 11 | */ 12 | void foo(); 13 | 14 | /** @brief An enum */ 15 | enum class Enum {}; 16 | 17 | } 18 | -------------------------------------------------------------------------------- /deps/svg/README: -------------------------------------------------------------------------------- 1 | Doxygen's svg.min.js script is composed of minified versions of the following 2 | packages: 3 | - svgdotjs 3.1.2: https://github.com/svgdotjs/svg.js 4 | - svgpan-1.2mod.js 1.2: https://github.com/aleofreddi/svgpan 5 | 6 | The Makefile will built the svg.min.js file used by doxygen. 7 | 8 | Note that svgpan.js is heavily modified for use with doxygen, 9 | so it cannot easily be upgraded to newer versions. 10 | -------------------------------------------------------------------------------- /libversion/fullversion.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | std::string getFullVersion() 5 | { 6 | static std::string fullVersion; 7 | static bool init = false; 8 | if (!init) 9 | { 10 | fullVersion = getDoxygenVersion(); 11 | std::string gitVersion = getGitVersion(); 12 | if (!gitVersion.empty()) fullVersion+=" ("+gitVersion+")"; 13 | init = true; 14 | } 15 | return fullVersion; 16 | } 17 | -------------------------------------------------------------------------------- /examples/par.cpp: -------------------------------------------------------------------------------- 1 | /*! \class Par_Test 2 | * Normal text. 3 | * 4 | * \par User defined paragraph: 5 | * Contents of the paragraph. 6 | * 7 | * \par 8 | * New paragraph under the same heading. 9 | * 10 | * \note 11 | * This note consists of two paragraphs. 12 | * This is the first paragraph. 13 | * 14 | * \par 15 | * And this is the second paragraph. 16 | * 17 | * More normal text. 18 | */ 19 | 20 | class Par_Test {}; 21 | -------------------------------------------------------------------------------- /deps/spdlog/cmake/spdlog.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@CMAKE_INSTALL_PREFIX@ 2 | exec_prefix=${prefix} 3 | includedir=@PKG_CONFIG_INCLUDEDIR@ 4 | libdir=@PKG_CONFIG_LIBDIR@ 5 | 6 | Name: lib@PROJECT_NAME@ 7 | Description: Fast C++ logging library. 8 | URL: https://github.com/gabime/@PROJECT_NAME@ 9 | Version: @SPDLOG_VERSION@ 10 | CFlags: -I${includedir} @PKG_CONFIG_DEFINES@ 11 | Libs: -L${libdir} -lspdlog -pthread 12 | Requires: @PKG_CONFIG_REQUIRES@ 13 | 14 | -------------------------------------------------------------------------------- /examples/manual.cfg: -------------------------------------------------------------------------------- 1 | @INCLUDE = baseexample.cfg 2 | PROJECT_NAME = "Manual inheritance and membership" 3 | HTML_OUTPUT = html/examples/manual/html 4 | LATEX_OUTPUT = latex/examples/manual/latex 5 | INPUT = manual.c 6 | EXTRACT_PRIVATE = YES 7 | EXTRACT_STATIC = YES 8 | TYPEDEF_HIDES_STRUCT = YES 9 | INLINE_SOURCES = YES 10 | REFERENCED_BY_RELATION = YES 11 | REFERENCES_RELATION = YES 12 | -------------------------------------------------------------------------------- /testing/084_markdown_pre.f90: -------------------------------------------------------------------------------- 1 | ! // objective: test
     in Fortran, no translation of markdown
     2 | ! // check: 084__markdown__pre_8f90.xml
     3 | !> \file
     4 | 
     5 | !> subr1
     6 | !>
     7 | !>                     ___________________________
     8 | !>
    9 | subroutine subr1() 10 | end subroutine 11 | 12 | !> subr2 13 | !>
    14 | !>                     ___________________________
    15 | !>
    16 | !> 17 | subroutine subr2() 18 | end subroutine 19 | -------------------------------------------------------------------------------- /testing/005_attention.dox: -------------------------------------------------------------------------------- 1 | // objective: test \attention, \note, \remark, \warning, and \par commands 2 | // check: indexpage.xml 3 | /** \mainpage 4 | * \attention Attention message. 5 | * \note Something to note. 6 | * \remark A remark. 7 | * \warning A warning message. 8 | * \par 9 | * Second paragraph 10 | * \par User defined paragraph. 11 | * Contents of paragraph. 12 | * \par 13 | * More text in a new paragraph. 14 | */ 15 | -------------------------------------------------------------------------------- /testing/101_static_assert.c: -------------------------------------------------------------------------------- 1 | // objective: test static assertions 2 | // check: 101__static__assert_8c.xml 3 | 4 | /** 5 | * @file 6 | * 7 | * @code{.java} 8 | * public class static_assert { 9 | * public static void static_assert() {} 10 | * public static void _Static_assert() {} 11 | * } 12 | * @endcode 13 | */ 14 | 15 | static_assert(0 == 0); 16 | static_assert(1 == 1, "m1"); 17 | _Static_assert(2 == 2); 18 | _Static_assert(3 == 3, "m3"); 19 | -------------------------------------------------------------------------------- /deps/spdlog/src/async.cpp: -------------------------------------------------------------------------------- 1 | // Copyright(c) 2015-present, Gabi Melman & spdlog contributors. 2 | // Distributed under the MIT License (http://opensource.org/licenses/MIT) 3 | 4 | #ifndef SPDLOG_COMPILED_LIB 5 | #error Please define SPDLOG_COMPILED_LIB to compile this file. 6 | #endif 7 | 8 | #include 9 | #include 10 | #include 11 | #include 12 | -------------------------------------------------------------------------------- /examples/page.doc: -------------------------------------------------------------------------------- 1 | /*! \page page1 A documentation page 2 | \tableofcontents 3 | Leading text. 4 | \section sec An example section 5 | This page contains the subsections \ref subsection1 and \ref subsection2. 6 | For more info see page \ref page2. 7 | \subsection subsection1 The first subsection 8 | Text. 9 | \subsection subsection2 The second subsection 10 | More text. 11 | */ 12 | 13 | /*! \page page2 Another page 14 | Even more info. 15 | */ 16 | -------------------------------------------------------------------------------- /testing/065_tilde.dox: -------------------------------------------------------------------------------- 1 | // objective: test \~ command with non default OUTPUT_LANGUAGE which contains '-' letter 2 | // check: indexpage.xml 3 | // config: OUTPUT_LANGUAGE = Japanese-en 4 | // config: LATEX_EXTRA_STYLESHEET = $INPUTDIR/latex_065.sty 5 | /** 6 | \mainpage 7 | \~english This is English. 8 | \~dutch Dit is Nederlands. 9 | \~japanese これは日本語です. 10 | \~japanese-en これは日本語(en)です. 11 | \~german Dies ist Deutsch. 12 | \~ Output for all languages. 13 | */ 14 | -------------------------------------------------------------------------------- /examples/afterdoc.h: -------------------------------------------------------------------------------- 1 | /*! A test class */ 2 | 3 | class Afterdoc_Test 4 | { 5 | public: 6 | /** An enum type. 7 | * The documentation block cannot be put after the enum! 8 | */ 9 | enum EnumType 10 | { 11 | int EVal1, /**< enum value 1 */ 12 | int EVal2 /**< enum value 2 */ 13 | }; 14 | void member(); //!< a member function. 15 | 16 | protected: 17 | int value; /*!< an integer value */ 18 | }; 19 | -------------------------------------------------------------------------------- /examples/example.cpp: -------------------------------------------------------------------------------- 1 | /** A Example_Test class. 2 | * More details about this class. 3 | */ 4 | 5 | class Example_Test 6 | { 7 | public: 8 | /** An example member function. 9 | * More details about this function. 10 | */ 11 | void example(); 12 | }; 13 | 14 | void Example_Test::example() {} 15 | 16 | /** \example example_test.cpp 17 | * This is an example of how to use the Example_Test class. 18 | * More details about this example. 19 | */ 20 | -------------------------------------------------------------------------------- /addon/doxmlparser/README.md: -------------------------------------------------------------------------------- 1 | Doxmlparser 2 | =========== 3 | 4 | This is a python package to make it easier to parse the XML output produced by doxygen. 5 | 6 | The API is generated from the index.xsd and compound.xsd XML schema files using 7 | Dave Kuhlman's generateDS https://www.davekuhlman.org/generateDS.html 8 | 9 | The current code is generated with generateDS version 2.37.15. 10 | 11 | See the examples directory to get an idea how to use the python module 12 | 13 | -------------------------------------------------------------------------------- /testing/004_arg.dox: -------------------------------------------------------------------------------- 1 | // objective: test \arg and \li commands 2 | // check: indexpage.xml 3 | /** \mainpage 4 | \arg \c AlignLeft left alignment. 5 | \arg \c AlignCenter center alignment. 6 | \arg \c AlignRight right alignment 7 | 8 | No other types of alignment are supported. 9 | 10 | \li \c AlignLeft left alignment. 11 | \li \c AlignCenter center alignment. 12 | \li \c AlignRight right alignment 13 | 14 | No other types of alignment are supported. 15 | */ 16 | -------------------------------------------------------------------------------- /testing/068_ref_varargs.cpp: -------------------------------------------------------------------------------- 1 | // objective: test \ref command with function variadic arguments '...' 2 | // check: 068__ref__varargs_8cpp.xml 3 | 4 | /** \file 5 | * See \ref func(int,...) "the function" for more info. 6 | * See the \ref Test "test" class. 7 | */ 8 | 9 | /** A function 10 | */ 11 | void func(int p); 12 | 13 | /** Overloaded function taking variadic arguments 14 | */ 15 | void func(int p, ...); 16 | 17 | /** A test */ 18 | class Test 19 | { 20 | }; 21 | -------------------------------------------------------------------------------- /doc/doxysearch.1: -------------------------------------------------------------------------------- 1 | .TH DOXYSEARCH "1" "@DATE@" "doxysearch.cgi @VERSION@" "User Commands" 2 | .SH NAME 3 | doxysearch.cgi \- search engine used for searching in doxygen documentation. 4 | .SH SYNOPSIS 5 | .B doxysearch.cgi 6 | .SH DESCRIPTION 7 | CGI binary that is used by doxygen generated HTML output to search for words. 8 | The tool uses the search index called \fBdoxysearch.db\fR produced by 9 | doxyindexer. 10 | .SH SEE ALSO 11 | doxygen(1), doxyindexer(1), doxywizard(1). 12 | -------------------------------------------------------------------------------- /testing/019/group___b.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | B 5 | B 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /testing/019/group___c.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | C 5 | C 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /testing/019/group___d.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | D 5 | D 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /testing/067_link_varargs.cpp: -------------------------------------------------------------------------------- 1 | // objective: test \link command with function variadic arguments '...' 2 | // check: 067__link__varargs_8cpp.xml 3 | 4 | /** \file 5 | * See \link func(int,...) the function\endlink for more info. 6 | * See the \link Test test\endlink class. 7 | */ 8 | 9 | /** A function 10 | */ 11 | void func(int p); 12 | 13 | /** Overloaded function taking variadic arguments 14 | */ 15 | void func(int p, ...); 16 | 17 | /** A test */ 18 | class Test 19 | { 20 | }; 21 | -------------------------------------------------------------------------------- /deps/spdlog/include/spdlog/version.h: -------------------------------------------------------------------------------- 1 | // Copyright(c) 2015-present, Gabi Melman & spdlog contributors. 2 | // Distributed under the MIT License (http://opensource.org/licenses/MIT) 3 | 4 | #pragma once 5 | 6 | #define SPDLOG_VER_MAJOR 1 7 | #define SPDLOG_VER_MINOR 14 8 | #define SPDLOG_VER_PATCH 1 9 | 10 | #define SPDLOG_TO_VERSION(major, minor, patch) (major * 10000 + minor * 100 + patch) 11 | #define SPDLOG_VERSION SPDLOG_TO_VERSION(SPDLOG_VER_MAJOR, SPDLOG_VER_MINOR, SPDLOG_VER_PATCH) 12 | -------------------------------------------------------------------------------- /doc/doxywizard.1: -------------------------------------------------------------------------------- 1 | .TH DOXYWIZARD "1" "@DATE@" "doxywizard @VERSION@" "User Commands" 2 | .SH NAME 3 | Doxywizard \- a tool to configure and run Doxygen on your source files 4 | .SH SYNOPSIS 5 | .B doxywizard 6 | .SH DESCRIPTION 7 | Doxywizard is an interactive frontend to the Doxygen tool to configure 8 | and run Doxygen on your source files. 9 | .PP 10 | You can optionally pass the name of a configuration file as the first argument 11 | to load it at startup. 12 | .SH SEE ALSO 13 | doxygen(1) 14 | -------------------------------------------------------------------------------- /testing/039_name.cpp: -------------------------------------------------------------------------------- 1 | // objective: test the \name and \short commands 2 | // check: class_test.xml 3 | 4 | /** \short A Test class. 5 | * 6 | * More details about this class. 7 | */ 8 | class Test 9 | { 10 | public: 11 | /** \name A group of functions. 12 | * \{ 13 | */ 14 | 15 | /** foo function */ 16 | void foo(); 17 | /** bar function */ 18 | void bar(); 19 | 20 | /** \} */ 21 | 22 | /** ungrouped function */ 23 | void ungrouped(); 24 | }; 25 | 26 | -------------------------------------------------------------------------------- /deps/jquery/sass/_sub-items-indentation.scss: -------------------------------------------------------------------------------- 1 | // Generate rules to indent sub menus text 2 | // 3 | // We'll use left border to avoid messing with the padding. 4 | 5 | @mixin sm-dox__sub-items-indentation($amount, $chainable: 'ul ', $level: 4, $chain: '') { 6 | @for $i from 1 through $level { 7 | $chain: $chain + $chainable; 8 | #{$chain} a, 9 | #{$chain} a:hover, 10 | #{$chain} a:focus, 11 | #{$chain} a:active { 12 | border-left: ($amount * ($i + 1)) solid transparent; 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /testing/045_refitem.dox: -------------------------------------------------------------------------------- 1 | // objective: test \refitem, \secreflist, \endsecreflist 2 | // check: indexpage.xml 3 | /** \mainpage 4 | * \secreflist 5 | * \refitem item1 First Item 6 | * \refitem item2 Second Item 7 | * \refitem item3 Third Item 8 | * \endsecreflist 9 | * 10 | * Some filler text. 11 | * 12 | * \section item1 First Section 13 | * Section 1 text. 14 | */ 15 | 16 | /** \page item2 A page 17 | * Some text. 18 | * \section item3 Another Section. 19 | * Section 2 text. 20 | */ 21 | -------------------------------------------------------------------------------- /examples/author.cpp: -------------------------------------------------------------------------------- 1 | /*! 2 | * \brief Pretty nice class. 3 | * \details This class is used to demonstrate a number of section commands. 4 | * \author John Doe 5 | * \author Jan Doe 6 | * \version 4.1a 7 | * \date 1990-2011 8 | * \pre First initialize the system. 9 | * \bug Not all memory is freed when deleting an object of this class. 10 | * \warning Improper use can crash your application 11 | * \copyright GNU Public License. 12 | */ 13 | class SomeNiceClass {}; 14 | -------------------------------------------------------------------------------- /examples/enum.h: -------------------------------------------------------------------------------- 1 | class Enum_Test 2 | { 3 | public: 4 | enum TEnum { Val1, Val2 }; 5 | 6 | /*! Another enum, with inline docs */ 7 | enum AnotherEnum 8 | { 9 | V1, /*!< value 1 */ 10 | V2 /*!< value 2 */ 11 | }; 12 | }; 13 | 14 | /*! \class Enum_Test 15 | * The class description. 16 | */ 17 | 18 | /*! \enum Enum_Test::TEnum 19 | * A description of the enum type. 20 | */ 21 | 22 | /*! \var Enum_Test::TEnum Enum_Test::Val1 23 | * The description of the first enum value. 24 | */ 25 | -------------------------------------------------------------------------------- /testing/more_100_d.cpp: -------------------------------------------------------------------------------- 1 | namespace NS 2 | { 3 | enum ED { 4 | ED1, 5 | ED2 6 | }; 7 | } 8 | 9 | /** 10 | * @namespace NS 11 | * 12 | * @ingroup D 13 | * 14 | * Namespace NS. 15 | */ 16 | 17 | /** 18 | * @defgroup D D 19 | */ 20 | 21 | namespace NS 22 | { 23 | /** 24 | * @enum ED 25 | * 26 | * @ingroup D 27 | * 28 | * Enum ED. 29 | */ 30 | 31 | /** 32 | * @var ED ED::ED1 33 | * 34 | * Enumerator ED1. 35 | */ 36 | 37 | /** 38 | * @var ED ED::ED2 39 | * 40 | * Enumerator ED2. 41 | */ 42 | } 43 | -------------------------------------------------------------------------------- /testing/016_copydoc.c: -------------------------------------------------------------------------------- 1 | // objective: test the \copydoc, \copybrief, \copydetails, and \details commands 2 | // check: 016__copydoc_8c.xml 3 | 4 | /** \file 5 | * Text \a argument more text. 6 | */ 7 | 8 | /** \brief Brief description. 9 | * \details Detailed description. 10 | */ 11 | void func(int i); 12 | 13 | /** \copybrief func(int) */ 14 | void func_brief(); 15 | 16 | /** \copydetails func(int) */ 17 | void func_details(); 18 | 19 | /** \copydoc func(int) 20 | * More text. 21 | */ 22 | void func_doc(); 23 | 24 | -------------------------------------------------------------------------------- /testing/081_brief_lists.h: -------------------------------------------------------------------------------- 1 | // objective: Test termination of brief description with lists 2 | // check: 081__brief__lists_8h.xml 3 | /// \file 4 | 5 | /// @brief Just with minus 6 | /// - Item 1 7 | /// - Item 2 8 | void c_subr1(void); 9 | 10 | /// @brief With minus and hash 11 | /// -# Item 3 12 | /// -# Item 4 13 | void c_subr2(void); 14 | 15 | /// @brief With numbers 16 | /// 1. Item 5 17 | /// 2. Item 6 18 | void c_subr3(void); 19 | 20 | /// @brief With asterisk 21 | /// * Item 7 22 | /// * Item 8 23 | void c_subr4(void); 24 | -------------------------------------------------------------------------------- /testing/020_only.dox: -------------------------------------------------------------------------------- 1 | // objective: test the \*only and \end*only commands 2 | // check: indexpage.xml 3 | /** \mainpage 4 | * Text. 5 | * \htmlonly 6 | * HTML 7 | * \endhtmlonly 8 | * \htmlonly[block] 9 | * HTML with block 10 | * \endhtmlonly 11 | * \rtfonly 12 | * RTF 13 | * \endrtfonly 14 | * \manonly 15 | * Man 16 | * \endmanonly 17 | * \latexonly 18 | * LaTeX 19 | * \endlatexonly 20 | * \xmlonly 21 | * XML 22 | * \endxmlonly 23 | * \docbookonly 24 | * DocBook 25 | * \enddocbookonly 26 | * More text. 27 | */ 28 | -------------------------------------------------------------------------------- /testing/046_related.cpp: -------------------------------------------------------------------------------- 1 | // objective: test the \related, \relatedalso, \see, and \sa commands 2 | // check: class_test.xml 3 | // check: 046__related_8cpp.xml 4 | 5 | /** @file */ 6 | 7 | /** A test class 8 | * @see Test::method() 9 | */ 10 | class Test 11 | { 12 | public: 13 | /** A method */ 14 | void method(); 15 | }; 16 | 17 | /*! 18 | * A function. 19 | * \related Test 20 | * \sa another() 21 | */ 22 | void function(); 23 | 24 | /*! 25 | * Another function 26 | * \relatedalso Test 27 | */ 28 | void another(); 29 | -------------------------------------------------------------------------------- /examples/docstring.py: -------------------------------------------------------------------------------- 1 | """@package docstring 2 | Documentation for this module. 3 | 4 | More details. 5 | """ 6 | 7 | def func(): 8 | """Documentation for a function. 9 | 10 | More details. 11 | """ 12 | pass 13 | 14 | class PyClass: 15 | """Documentation for a class. 16 | 17 | More details. 18 | """ 19 | 20 | def __init__(self): 21 | """The constructor.""" 22 | self._memVar = 0; 23 | 24 | def PyMethod(self): 25 | """Documentation for a method.""" 26 | pass 27 | 28 | -------------------------------------------------------------------------------- /examples/restypedef.cpp: -------------------------------------------------------------------------------- 1 | /*! \file restypedef.cpp 2 | * An example of resolving typedefs. 3 | */ 4 | 5 | /*! \struct CoordStruct 6 | * A coordinate pair. 7 | */ 8 | struct CoordStruct 9 | { 10 | /*! The x coordinate */ 11 | float x; 12 | /*! The y coordinate */ 13 | float y; 14 | }; 15 | 16 | /*! Creates a type name for CoordStruct */ 17 | typedef CoordStruct Coord; 18 | 19 | /*! 20 | * This function returns the addition of \a c1 and \a c2, i.e: 21 | * (c1.x+c2.x,c1.y+c2.y) 22 | */ 23 | Coord add(Coord c1,Coord c2) 24 | { 25 | } 26 | -------------------------------------------------------------------------------- /examples/include.cpp: -------------------------------------------------------------------------------- 1 | 2 | /*! A test class. */ 3 | 4 | class Include_Test 5 | { 6 | public: 7 | /// a member function 8 | void example(); 9 | }; 10 | 11 | /*! \page pag_example 12 | * \dontinclude include_test.cpp 13 | * Our main function starts like this: 14 | * \skip main 15 | * \until { 16 | * First we create an object \c t of the Include_Test class. 17 | * \skipline Include_Test 18 | * Then we call the example member function 19 | * \line example 20 | * After that our little test routine ends. 21 | * \line } 22 | */ 23 | -------------------------------------------------------------------------------- /examples/define.h: -------------------------------------------------------------------------------- 1 | /*! \file define.h 2 | \brief testing defines 3 | 4 | This is to test the documentation of defines. 5 | */ 6 | 7 | /*! 8 | \def MAX(x,y) 9 | Computes the maximum of \a x and \a y. 10 | */ 11 | 12 | /*! 13 | \brief Computes the absolute value of its argument \a x. 14 | \param x input value. 15 | \returns absolute value of \a x. 16 | */ 17 | #define ABS(x) (((x)>0)?(x):-(x)) 18 | #define MAX(x,y) ((x)>(y)?(x):(y)) 19 | #define MIN(x,y) ((x)>(y)?(y):(x)) 20 | /*!< Computes the minimum of \a x and \a y. */ 21 | -------------------------------------------------------------------------------- /deps/svg/Makefile: -------------------------------------------------------------------------------- 1 | SVGDOTJS_VERSION = 3.1.2 2 | SVGPAN_VERSION = 1.2mod 3 | 4 | MINIFIER ?= uglifyjs 5 | RESULTS = svg.min.js svgpan.min.js 6 | 7 | all: $(RESULTS) 8 | 9 | install: $(RESULTS) 10 | cat svg.min.js svgpan.min.js > ../../templates/html/svg.min.js 11 | 12 | svg.min.js: svg-$(SVGDOTJS_VERSION).js 13 | $(MINIFIER) --comments /^\!/ svg-$(SVGDOTJS_VERSION).js > svg.min.js 14 | 15 | svgpan.min.js: svgpan-$(SVGPAN_VERSION).js 16 | $(MINIFIER) --comments /^\!/ svgpan-$(SVGPAN_VERSION).js > svgpan.min.js 17 | 18 | clean: 19 | rm -rf $(RESULTS) 20 | 21 | -------------------------------------------------------------------------------- /deps/spdlog/include/spdlog/formatter.h: -------------------------------------------------------------------------------- 1 | // Copyright(c) 2015-present, Gabi Melman & spdlog contributors. 2 | // Distributed under the MIT License (http://opensource.org/licenses/MIT) 3 | 4 | #pragma once 5 | 6 | #include 7 | #include 8 | 9 | namespace spdlog { 10 | 11 | class formatter { 12 | public: 13 | virtual ~formatter() = default; 14 | virtual void format(const details::log_msg &msg, memory_buf_t &dest) = 0; 15 | virtual std::unique_ptr clone() const = 0; 16 | }; 17 | } // namespace spdlog 18 | -------------------------------------------------------------------------------- /examples/func.h: -------------------------------------------------------------------------------- 1 | class Fn_Test 2 | { 3 | public: 4 | const char *member(char,int) throw(std::out_of_range); 5 | }; 6 | 7 | const char *Fn_Test::member(char c,int n) throw(std::out_of_range) {} 8 | 9 | /*! \class Fn_Test 10 | * \brief Fn_Test class. 11 | * 12 | * Details about Fn_Test. 13 | */ 14 | 15 | /*! \fn const char *Fn_Test::member(char c,int n) 16 | * \brief A member function. 17 | * \param c a character. 18 | * \param n an integer. 19 | * \exception std::out_of_range parameter is out of range. 20 | * \return a character pointer. 21 | */ 22 | -------------------------------------------------------------------------------- /testing/034_internal.dox: -------------------------------------------------------------------------------- 1 | // objective: test the \internal and \endinternal commands (2) 2 | // check: indexpage.xml 3 | // config: INTERNAL_DOCS = YES 4 | 5 | /** \mainpage 6 | * Some text. 7 | * \internal 8 | * Internal text. 9 | * \endinternal 10 | * \section s1 A Section 11 | * Some text in the section 1. 12 | * \internal 13 | * Internal text. 14 | * \subsection ss1 A Subsection 15 | * Some text in the subsection. 16 | * \endinternal 17 | * Visible text in section 1. 18 | * \section s2 Another Section 19 | * Visible text. 20 | */ 21 | 22 | -------------------------------------------------------------------------------- /testing/055_markdown.md: -------------------------------------------------------------------------------- 1 | 5 | 6 | # Foo 7 | 8 | ## Bar 9 | 10 | [Inline link](http://example.com/inline) 11 | 12 | [Reference link][1] 13 | 14 | [1]: http://example.com/reference 15 | 16 | ## Baz 17 | 18 | More text 19 | 20 | [Upper-cased reference link on last line][U] 21 | 22 | [U]: http://example.com/last-line 23 | 24 | Dash - NDash -- MDash --- EDash \- ENDash \-- EMDash \--- E3Dash \-\-\- 25 | 26 | ## Markdown in HTML 27 | 28 |

    **Header3** blah _blah_ `blah`

    29 | -------------------------------------------------------------------------------- /templates/html/scrollbar.css: -------------------------------------------------------------------------------- 1 | body { 2 | scrollbar-color: var(--scrollbar-thumb-color) var(--scrollbar-background-color); 3 | } 4 | 5 | ::-webkit-scrollbar { 6 | background-color: var(--scrollbar-background-color); 7 | height: 12px; 8 | width: 12px; 9 | } 10 | ::-webkit-scrollbar-thumb { 11 | border-radius: 6px; 12 | box-shadow: inset 0 0 12px 12px var(--scrollbar-thumb-color); 13 | border: solid 2px transparent; 14 | } 15 | ::-webkit-scrollbar-corner { 16 | background-color: var(--scrollbar-background-color); 17 | } 18 | 19 | -------------------------------------------------------------------------------- /testing/022_dot.cpp: -------------------------------------------------------------------------------- 1 | // objective: test the \dot and \enddot commands 2 | // check: indexpage.xml 3 | // config: HAVE_DOT = YES 4 | // config: DOTFILE_DIRS = $INPUTDIR 5 | 6 | /*! class B */ 7 | class B {}; 8 | /*! class C */ 9 | class C {}; 10 | 11 | /*! \mainpage 12 | Class relations expressed via an inline dot graph: 13 | \dot 14 | digraph example { 15 | node [shape=record, fontname=Helvetica, fontsize=10]; 16 | b [ label="class B" URL="\ref B"]; 17 | c [ label="class C" URL="\ref C"]; 18 | b -> c [ arrowhead="open", style="dashed" ]; 19 | } 20 | \enddot 21 | */ 22 | 23 | -------------------------------------------------------------------------------- /testing/043/another.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | another 5 | Another Page 6 | 7 | 8 | 9 | Another page's text. 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /testing/044_section.h: -------------------------------------------------------------------------------- 1 | // objective: test the \(public|protected|private)section commands 2 | // check: struct_s.xml 3 | 4 | /** A struct */ 5 | struct S 6 | { 7 | /** \publicsection */ 8 | 9 | /** public field */ 10 | int pub1; 11 | /** another public field */ 12 | int pub2; 13 | 14 | /** \protectedsection */ 15 | 16 | /** protected field */ 17 | int pro1; 18 | /** another protected field */ 19 | int pro2; 20 | 21 | /** \privatesection */ 22 | 23 | /** private field */ 24 | int pri1; 25 | /** another private field */ 26 | int pri2; 27 | }; 28 | 29 | -------------------------------------------------------------------------------- /testing/079_tableofcontents.dox: -------------------------------------------------------------------------------- 1 | // objective: test TOC generation for an empty page 2 | // check: empty.xml 3 | // check: levels.xml 4 | /** 5 | @page empty An empty page 6 | 7 | @tableofcontents 8 | 9 | With an empty TOC. 10 | */ 11 | 12 | /** 13 | @page levels A page with two-level TOC 14 | 15 | @tableofcontents{xml:2} 16 | 17 | @section first A section that's in TOC 18 | @subsection first2 A subsection that's in TOC 19 | @subsubsection first3 A subsubsection that's not in TOC 20 | 21 | Nay! 22 | 23 | @section second A section that's in TOC again 24 | 25 | Yay! 26 | */ 27 | -------------------------------------------------------------------------------- /testing/040/namespace_n_s.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | NS 5 | 6 | 7 | 8 | A namespace 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /testing/079/empty.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | empty 5 | An empty page 6 | 7 | 8 | 9 | With an empty TOC. 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /testing/007/indexpage.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | index 5 | My Project 6 | 7 | 8 | 9 | Text bold normal text. 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /testing/015_cond.c: -------------------------------------------------------------------------------- 1 | // objective: test the `cond` command 2 | // check: 015__cond_8c.xml 3 | // config: ENABLED_SECTIONS = COND_ENABLED 4 | 5 | /** \file 6 | * Text \a argument more text. 7 | */ 8 | 9 | /// \cond 10 | 11 | /** A function */ 12 | void func(); 13 | 14 | /** A macro */ 15 | #define MACRO 42 16 | 17 | /// \endcond 18 | 19 | /// \cond COND_ENABLED 20 | /// Function to be shown. 21 | void cond_enabled() 22 | { 23 | } 24 | /// \endcond 25 | 26 | /** \cond COND_DISABLED 27 | Function not to be shown. */ 28 | void cond_disabled() 29 | { 30 | } 31 | /** \endcond */ 32 | 33 | -------------------------------------------------------------------------------- /testing/065/indexpage.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | index 5 | My Project 6 | 7 | 8 | 9 | これは日本語(en)です. Output for all languages. 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /testing/073_typed_enum.cpp: -------------------------------------------------------------------------------- 1 | // objective: test underlying type and strongness for an enum 2 | // check: 073__typed__enum_8cpp.xml 3 | 4 | /** \file */ 5 | 6 | /** @brief A strongly-typed enum */ 7 | enum class E: unsigned short {}; 8 | 9 | /** @brief Strongly types enum when values that has the same name as the enum */ 10 | enum class Mem : unsigned char { 11 | Bottom = 0, 12 | NotMem = 1U << 0, 13 | Ptr = 1U << 1, 14 | Lval = 1U << 2, 15 | Mem = Ptr | Lval, 16 | Top = NotMem | Mem, 17 | }; 18 | 19 | enum { 20 | Unnamed1 21 | }; 22 | 23 | enum { 24 | Unnamed2 25 | }; 26 | -------------------------------------------------------------------------------- /testing/001/indexpage.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | index 5 | My Project 6 | 7 | 8 | 9 | Text argument more text. 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /testing/052/indexpage.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | index 5 | My Project 6 | 7 | 8 | 9 | This is English. Output for all languages. 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /testing/053/indexpage.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | index 5 | My Project 6 | 7 | 8 | 9 | Dit is Nederlands. Output for all languages. 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /testing/025_example.cpp: -------------------------------------------------------------------------------- 1 | // objective: test the \example command 2 | // check: example_test_8cpp-example.xml 3 | // check: class_test.xml 4 | 5 | 6 | /** \brief A Test class. 7 | * 8 | * More details about this class. 9 | */ 10 | class Test 11 | { 12 | public: 13 | /** \brief An example member function. 14 | * 15 | * More details about this function. 16 | */ 17 | void example(); 18 | }; 19 | 20 | void Test::example() {} 21 | 22 | /** \example example_test.cpp 23 | * This is an example of how to use the Test class. 24 | * 25 | * More details about this example. 26 | */ 27 | -------------------------------------------------------------------------------- /testing/008/008__brief_8c.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 008_brief.c 5 | 6 | A brief description. 7 | 8 | 9 | More details. 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /testing/013_class.h: -------------------------------------------------------------------------------- 1 | // objective: test the \class and \headerfile commands 2 | // check: class_t1.xml 3 | // check: class_t2.xml 4 | // check: class_t3.xml 5 | // check: class_t4.xml 6 | 7 | /** A class 8 | * \headerfile 013_class.h "inc/013_class.h" 9 | */ 10 | class T1 11 | { 12 | }; 13 | 14 | class T2 15 | { 16 | }; 17 | 18 | class T3 19 | { 20 | }; 21 | 22 | class T4 23 | { 24 | }; 25 | 26 | /** \class T2 27 | * \headerfile <> 28 | * class T2 29 | */ 30 | 31 | /** \class T3 013_class.h 32 | * class T3 33 | */ 34 | 35 | /** \class T4 013_class.h "inc/013_class.h" 36 | * class T4 37 | */ 38 | -------------------------------------------------------------------------------- /testing/088_module_var.f90: -------------------------------------------------------------------------------- 1 | !// objective: test visibility of variables in modules 2 | !// check: namespacem1.xml 3 | !// check: namespacem2.xml 4 | !// config: OPTIMIZE_FOR_FORTRAN=YES 5 | 6 | module M1 7 | implicit none 8 | private 9 | 10 | public :: V3 11 | 12 | integer :: V1 13 | public :: V1 14 | 15 | integer, public :: V2 16 | integer :: V3 17 | 18 | end module M1 19 | 20 | module M2 21 | implicit none 22 | 23 | private :: V1 24 | integer :: V1 25 | 26 | integer :: V2 27 | 28 | integer, private :: V3 29 | 30 | integer :: V4 31 | public :: V4 32 | 33 | end module M2 34 | -------------------------------------------------------------------------------- /testing/093_interface_inside_routine.f90: -------------------------------------------------------------------------------- 1 | !// objective: don't show interfaces inside routines except for arguments 2 | !// check: 093__interface__inside__routine_8f90.xml 3 | !// config: OPTIMIZE_FOR_FORTRAN=YES 4 | !// config: EXTRACT_ALL=YES 5 | 6 | !> Test for interface 7 | SUBROUTINE use_tst(interfArg) 8 | INTERFACE 9 | SUBROUTINE routine_interface() 10 | END SUBROUTINE routine_interface 11 | INTEGER FUNCTION interfArg(str) 12 | CHARACTER(LEN=*), INTENT(IN) :: str 13 | END FUNCTION 14 | END INTERFACE 15 | CONTAINS 16 | SUBROUTINE inner_routine 17 | END SUBROUTINE 18 | END SUBROUTINE use_tst 19 | -------------------------------------------------------------------------------- /templates/html/minus.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /testing/033/indexpage.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | index 5 | My Project 6 | 7 | 8 | 9 | Some text. 10 | More visible text. 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /testing/038/indexpage.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | index 5 | My Project 6 | 7 | 8 | 9 | Text 10 | New line 11 | Another line 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /testing/100/group___c.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | C 5 | C 6 | more_100_c.c 7 | s 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /templates/html/minusd.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /testing/021_dontinclude.cpp: -------------------------------------------------------------------------------- 1 | // objective: test the \dontinclude, \skip, \until, \skipline, \line commands 2 | // check: indexpage.xml 3 | /*! A test class. */ 4 | 5 | class Test 6 | { 7 | public: 8 | /// a member function 9 | void example(); 10 | }; 11 | 12 | /*! \mainpage 13 | * \dontinclude example_test.cpp 14 | * Our main function starts like this: 15 | * \skip main 16 | * \until { 17 | * First we create a object \c t of the Test class. 18 | * \skipline Test 19 | * Then we call the example member function 20 | * \line example 21 | * After that our little test routine ends. 22 | * \line } 23 | */ 24 | -------------------------------------------------------------------------------- /testing/095/namespacem2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | m2 5 | m2::t3 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /testing/095/namespacem3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | m3 5 | m3::t4 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /testing/096/namespacem2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | m2 5 | m2::t3 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /templates/html/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | "env": { 3 | "browser": true, 4 | "es2021": true, 5 | "jquery": true 6 | }, 7 | "extends": "eslint:recommended", 8 | "overrides": [ 9 | { 10 | "env": { 11 | "node": true 12 | }, 13 | "files": [ 14 | ".eslintrc.{js,cjs}" 15 | ], 16 | "parserOptions": { 17 | "sourceType": "script" 18 | } 19 | } 20 | ], 21 | "parserOptions": { 22 | "ecmaVersion": "latest" 23 | }, 24 | "rules": { 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /testing/019/group___a.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | A 5 | A 6 | B 7 | C 8 | D 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /testing/056/indexpage.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | index 5 | My Project 6 | 7 | 8 | 9 | Some text. \section{Hello world} 10 | More text. 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /testing/023/indexpage.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | index 5 | My Project 6 | 7 | 8 | 9 | Normal emphasis and more emphasis back to normal. 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /testing/042/namespaceorg_1_1doxygen_1_1_test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | org::doxygen::Test 5 | 6 | 7 | 8 | A test package. 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /testing/059_template.cpp: -------------------------------------------------------------------------------- 1 | // objective: test if A::C within backticks is properly handled 2 | // check: struct_n_1_1allocator__traits.xml 3 | namespace N 4 | { 5 | /** 6 | * @brief Uniform interface to all allocator types. 7 | */ 8 | template struct allocator_traits 9 | { 10 | /** 11 | * @brief The allocator's const pointer type. 12 | * 13 | * 14 | * `Alloc::const_pointer` if that type exists, otherwise 15 | * `pointer_traits::rebind`. 16 | * 17 | */ 18 | using const_pointer = typename _Ptr<__c_pointer, const value_type>::type; 19 | }; 20 | } 21 | -------------------------------------------------------------------------------- /deps/libmscgen/gdfonts.h: -------------------------------------------------------------------------------- 1 | #ifndef GDFONTS_H 2 | #define GDFONTS_H 1 3 | 4 | #ifdef __cplusplus 5 | extern "C" 6 | { 7 | #endif 8 | 9 | /* 10 | This is a header file for gd font, generated using 11 | bdftogd version 0.5 by Jan Pazdziora, adelton@fi.muni.cz 12 | from bdf font 13 | -misc-fixed-medium-r-semicondensed-sans-12-116-75-75-c-60-iso8859-2 14 | at Thu Jan 8 14:13:20 1998. 15 | No copyright info was found in the original bdf. 16 | */ 17 | 18 | #include "gd.h" 19 | 20 | extern BGD_EXPORT_DATA_PROT gdFontPtr gdFontSmall; 21 | BGD_DECLARE(gdFontPtr) gdFontGetSmall(void); 22 | 23 | #ifdef __cplusplus 24 | } 25 | #endif 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /deps/spdlog/cmake/spdlogConfig.cmake.in: -------------------------------------------------------------------------------- 1 | # Copyright(c) 2019 spdlog authors 2 | # Distributed under the MIT License (http://opensource.org/licenses/MIT) 3 | 4 | @PACKAGE_INIT@ 5 | 6 | find_package(Threads REQUIRED) 7 | 8 | set(SPDLOG_FMT_EXTERNAL @SPDLOG_FMT_EXTERNAL@) 9 | set(SPDLOG_FMT_EXTERNAL_HO @SPDLOG_FMT_EXTERNAL_HO@) 10 | set(config_targets_file @config_targets_file@) 11 | 12 | if(SPDLOG_FMT_EXTERNAL OR SPDLOG_FMT_EXTERNAL_HO) 13 | include(CMakeFindDependencyMacro) 14 | find_dependency(fmt CONFIG) 15 | endif() 16 | 17 | 18 | include("${CMAKE_CURRENT_LIST_DIR}/${config_targets_file}") 19 | 20 | check_required_components(spdlog) 21 | -------------------------------------------------------------------------------- /doc/replace_version.py: -------------------------------------------------------------------------------- 1 | # called as `replace_version.py src dest v1` 2 | # replaces @VERSION@ by v1 in file src and writes the result to dest 3 | import sys 4 | 5 | def main(): 6 | if len(sys.argv)<4: 7 | print('replace_version.py src dest version') 8 | sys.exit(1) 9 | 10 | inputFile = sys.argv[1] 11 | outputFile = sys.argv[2] 12 | version = sys.argv[3] 13 | 14 | with open(outputFile,"w") as out_file: 15 | with open(inputFile,"r") as in_file: 16 | for line in in_file: 17 | out_file.write(line.replace("@VERSION@",version)) 18 | 19 | if __name__ == '__main__': 20 | main() 21 | -------------------------------------------------------------------------------- /testing/086_style_tags.h: -------------------------------------------------------------------------------- 1 | // objective: test different HTML style tags 2 | // check: 086__style__tags_8h.xml 3 | /** 4 | \file 5 | 6 | In the following the word tag has the style as indicated before it. 7 | - This is a bold tag. 8 | - This is a `strong` bold tag. 9 | - This is an italic tag. 10 | - This is an `em` italic tag. 11 | - This is a strike through tag. 12 | - This is a `s` strike through tag. 13 | - This is an underline tag. 14 | - This is an `ins` inserted tag. 15 | - This is a deleted tag. 16 | - This is a typewriter tag. 17 | */ 18 | 19 | -------------------------------------------------------------------------------- /examples/pyexample.py: -------------------------------------------------------------------------------- 1 | ## @package pyexample 2 | # Documentation for this module. 3 | # 4 | # More details. 5 | 6 | ## Documentation for a function. 7 | # 8 | # More details. 9 | def func(): 10 | pass 11 | 12 | ## Documentation for a class. 13 | # 14 | # More details. 15 | class PyClass: 16 | 17 | ## The constructor. 18 | def __init__(self): 19 | self._memVar = 0; 20 | 21 | ## Documentation for a method. 22 | # @param self The object pointer. 23 | def PyMethod(self): 24 | pass 25 | 26 | ## A class variable. 27 | classVar = 0; 28 | 29 | ## @var _memVar 30 | # a member variable 31 | -------------------------------------------------------------------------------- /testing/030/indexpage.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | index 5 | My Project 6 | 7 | 8 | 9 | Some text. <h1>Hello world</h1> 10 | More text. 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:focal AS builder 2 | 3 | RUN apt-get update && apt-get install -y \ 4 | g++ \ 5 | python \ 6 | cmake \ 7 | flex \ 8 | bison \ 9 | && rm -rf /var/lib/apt/lists/* 10 | 11 | WORKDIR /doxygen 12 | COPY . . 13 | 14 | RUN mkdir build \ 15 | && cd build \ 16 | && cmake -G "Unix Makefiles" .. \ 17 | && make \ 18 | && make install 19 | 20 | 21 | FROM ubuntu:focal 22 | RUN apt-get update && apt-get install --no-install-recommends -y \ 23 | graphviz \ 24 | && rm -rf /var/lib/apt/lists/* 25 | COPY --from=builder /doxygen/build/bin/doxygen /usr/local/bin/ 26 | WORKDIR /doxygen 27 | ENTRYPOINT ["doxygen"] 28 | -------------------------------------------------------------------------------- /examples/overload.cpp: -------------------------------------------------------------------------------- 1 | class Overload_Test 2 | { 3 | public: 4 | void drawRect(int,int,int,int); 5 | void drawRect(const Rect &r); 6 | }; 7 | 8 | void Overload_Test::drawRect(int x,int y,int w,int h) {} 9 | void Overload_Test::drawRect(const Rect &r) {} 10 | 11 | /*! \class Overload_Test 12 | * \brief A short description. 13 | * 14 | * More text. 15 | */ 16 | 17 | /*! \fn void Overload_Test::drawRect(int x,int y,int w,int h) 18 | * This command draws a rectangle with a left upper corner at ( \a x , \a y ), 19 | * width \a w and height \a h. 20 | */ 21 | 22 | /*! 23 | * \overload void Overload_Test::drawRect(const Rect &r) 24 | */ 25 | 26 | -------------------------------------------------------------------------------- /testing/098_abstract_type.f03: -------------------------------------------------------------------------------- 1 | !// objective: test abstract types 2 | !// check: structmymodule_1_1t1.xml 3 | !// config: OPTIMIZE_FOR_FORTRAN=YES 4 | !// config: WARN_IF_UNDOCUMENTED=NO 5 | 6 | module myModule 7 | implicit none 8 | private 9 | 10 | public :: T1 11 | 12 | type, abstract :: T1 13 | contains 14 | !> brief doc 15 | procedure(AbstractProc), deferred :: deferredProc 16 | end type T1 17 | 18 | abstract interface 19 | subroutine AbstractProc(this, i) 20 | import T1 21 | class(T1), intent(inout) :: this 22 | integer, intent(in) :: i 23 | end subroutine 24 | end interface 25 | 26 | end module myModule 27 | -------------------------------------------------------------------------------- /testing/102_header.hpp: -------------------------------------------------------------------------------- 1 | // objective: test noexcept with expression and nodiscard and constexpr 2 | // check: class_a.xml 3 | // 4 | #ifndef INCLUDE_GUARD 5 | #define INCLUDE_GUARD 6 | 7 | #include 8 | 9 | /// @brief Some class 10 | class A 11 | { 12 | public: 13 | /// @brief Does stuff 14 | /// @details Details 15 | [[nodiscard]] constexpr int do_stuff() noexcept(std::is_nothrow_move_assignable_v) 16 | { 17 | } 18 | 19 | /// @brief Does stuff 20 | /// @details Details 21 | [[nodiscard]] constexpr auto do_stuff2() noexcept(std::is_nothrow_move_assignable_v) -> int 22 | { 23 | } 24 | }; 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /cmake/QueryCodePage.py: -------------------------------------------------------------------------------- 1 | import platform 2 | 3 | def is_windows(): 4 | return platform.system().lower() == "windows" 5 | 6 | if is_windows(): 7 | from winreg import OpenKey, QueryValueEx, HKEY_LOCAL_MACHINE, KEY_READ 8 | 9 | if __name__ == '__main__': 10 | if is_windows(): 11 | root = HKEY_LOCAL_MACHINE 12 | subkey = R'SYSTEM\CurrentControlSet\Control\Nls\CodePage' 13 | 14 | key = OpenKey(root, subkey, 0, KEY_READ) 15 | name = 'ACP' 16 | 17 | try: 18 | codepage, _ = QueryValueEx(key, name) 19 | print(codepage) 20 | except WindowsError: 21 | print('Failed to get code page') 22 | -------------------------------------------------------------------------------- /libxml/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | include_directories( 2 | ${PROJECT_SOURCE_DIR}/libxml 3 | ) 4 | 5 | add_custom_command( 6 | COMMAND ${Python_EXECUTABLE} ${PROJECT_SOURCE_DIR}/src/scan_states.py ${PROJECT_SOURCE_DIR}/libxml/xml.l > ${GENERATED_SRC}/xml.l.h 7 | DEPENDS ${PROJECT_SOURCE_DIR}/src/scan_states.py ${PROJECT_SOURCE_DIR}/libxml/xml.l 8 | OUTPUT ${GENERATED_SRC}/xml.l.h 9 | ) 10 | set_source_files_properties(${GENERATED_SRC}/xml.l.h PROPERTIES GENERATED 1) 11 | 12 | FLEX_TARGET(xml xml.l ${GENERATED_SRC}/xml.cpp COMPILE_FLAGS "${LEX_FLAGS}") 13 | 14 | add_library(xml STATIC 15 | ${GENERATED_SRC}/xml.cpp 16 | ${GENERATED_SRC}/xml.l.h 17 | ) 18 | 19 | 20 | -------------------------------------------------------------------------------- /testing/061/061___xC3_x9Anicod_xE2_x82_xAC__file_8cpp.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 061_Únicod€_file.cpp 5 | Test 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/defgen.h: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * 3 | * 4 | * 5 | * Copyright (C) 1997-2015 by Dimitri van Heesch. 6 | * 7 | * Permission to use, copy, modify, and distribute this software and its 8 | * documentation under the terms of the GNU General Public License is hereby 9 | * granted. No representations are made about the suitability of this software 10 | * for any purpose. It is provided "as is" without express or implied warranty. 11 | * See the GNU General Public License for more details. 12 | * 13 | */ 14 | 15 | #ifndef DEFGEN_H 16 | #define DEFGEN_H 17 | 18 | void generateDEF(); 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /testing/003/indexpage.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | index 5 | My Project 6 | 7 | 8 | 9 | See Anchor Some text. More text. 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /deps/spdlog/include/spdlog/fmt/xchar.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright(c) 2016 Gabi Melman. 3 | // Distributed under the MIT License (http://opensource.org/licenses/MIT) 4 | // 5 | 6 | #pragma once 7 | // 8 | // include bundled or external copy of fmtlib's xchar support 9 | // 10 | #include 11 | 12 | #if !defined(SPDLOG_USE_STD_FORMAT) 13 | #if !defined(SPDLOG_FMT_EXTERNAL) 14 | #ifdef SPDLOG_HEADER_ONLY 15 | #ifndef FMT_HEADER_ONLY 16 | #define FMT_HEADER_ONLY 17 | #endif 18 | #endif 19 | #include 20 | #else 21 | #include 22 | #endif 23 | #endif 24 | -------------------------------------------------------------------------------- /testing/085_tooltip.cpp: -------------------------------------------------------------------------------- 1 | // objective: test tooltip in XHTML 2 | // check: 085__tooltip_8cpp.xml 3 | // config: SOURCE_BROWSER=YES 4 | /** \file */ 5 | #include 6 | 7 | /** \brief the unit */ 8 | FILE *unit = NULL; 9 | 10 | /** a general open macro */ 11 | #define FOPEN_MACRO(fn ,mod) \ 12 | if ((unit = fopen(fn, mod)) == NULL) \ 13 | { \ 14 | msg(OPEN_ERR,strerror(errno)); \ 15 | } 16 | 17 | /** a general close macro */ 18 | #define FCLOSE_MACRO \ 19 | if (fclose(unit) != 0) \ 20 | { \ 21 | msg(CLOSE_ERR,strerror(errno)); \ 22 | } 23 | -------------------------------------------------------------------------------- /deps/libmscgen/gdfontt.h: -------------------------------------------------------------------------------- 1 | #ifndef GDFONTT_H 2 | #define GDFONTT_H 1 3 | 4 | #ifdef __cplusplus 5 | extern "C" 6 | { 7 | #endif 8 | 9 | /* 10 | This is a header file for gd font, generated using 11 | bdftogd version 0.5 by Jan Pazdziora, adelton@fi.muni.cz 12 | from bdf font 13 | -Misc-Fixed-Medium-R-Normal--8-80-75-75-C-50-ISO8859-2 14 | at Thu Jan 8 13:49:54 1998. 15 | The original bdf was holding following copyright: 16 | "Libor Skarvada, libor@informatics.muni.cz" 17 | */ 18 | 19 | #include "gd.h" 20 | 21 | extern BGD_EXPORT_DATA_PROT gdFontPtr gdFontTiny; 22 | BGD_DECLARE(gdFontPtr) gdFontGetTiny(void); 23 | 24 | #ifdef __cplusplus 25 | } 26 | #endif 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /deps/spdlog/include/spdlog/fmt/chrono.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright(c) 2016 Gabi Melman. 3 | // Distributed under the MIT License (http://opensource.org/licenses/MIT) 4 | // 5 | 6 | #pragma once 7 | // 8 | // include bundled or external copy of fmtlib's chrono support 9 | // 10 | #include 11 | 12 | #if !defined(SPDLOG_USE_STD_FORMAT) 13 | #if !defined(SPDLOG_FMT_EXTERNAL) 14 | #ifdef SPDLOG_HEADER_ONLY 15 | #ifndef FMT_HEADER_ONLY 16 | #define FMT_HEADER_ONLY 17 | #endif 18 | #endif 19 | #include 20 | #else 21 | #include 22 | #endif 23 | #endif 24 | -------------------------------------------------------------------------------- /deps/spdlog/include/spdlog/fmt/ostr.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright(c) 2016 Gabi Melman. 3 | // Distributed under the MIT License (http://opensource.org/licenses/MIT) 4 | // 5 | 6 | #pragma once 7 | // 8 | // include bundled or external copy of fmtlib's ostream support 9 | // 10 | #include 11 | 12 | #if !defined(SPDLOG_USE_STD_FORMAT) 13 | #if !defined(SPDLOG_FMT_EXTERNAL) 14 | #ifdef SPDLOG_HEADER_ONLY 15 | #ifndef FMT_HEADER_ONLY 16 | #define FMT_HEADER_ONLY 17 | #endif 18 | #endif 19 | #include 20 | #else 21 | #include 22 | #endif 23 | #endif 24 | -------------------------------------------------------------------------------- /deps/spdlog/include/spdlog/fmt/ranges.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright(c) 2016 Gabi Melman. 3 | // Distributed under the MIT License (http://opensource.org/licenses/MIT) 4 | // 5 | 6 | #pragma once 7 | // 8 | // include bundled or external copy of fmtlib's ranges support 9 | // 10 | #include 11 | 12 | #if !defined(SPDLOG_USE_STD_FORMAT) 13 | #if !defined(SPDLOG_FMT_EXTERNAL) 14 | #ifdef SPDLOG_HEADER_ONLY 15 | #ifndef FMT_HEADER_ONLY 16 | #define FMT_HEADER_ONLY 17 | #endif 18 | #endif 19 | #include 20 | #else 21 | #include 22 | #endif 23 | #endif 24 | -------------------------------------------------------------------------------- /testing/010/indexpage.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | index 5 | My Project 6 | 7 | 8 | 9 | Text code normal text. 10 | Text code normal text. 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /deps/spdlog/include/spdlog/fmt/compile.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright(c) 2016 Gabi Melman. 3 | // Distributed under the MIT License (http://opensource.org/licenses/MIT) 4 | // 5 | 6 | #pragma once 7 | // 8 | // include bundled or external copy of fmtlib's compile-time support 9 | // 10 | #include 11 | 12 | #if !defined(SPDLOG_USE_STD_FORMAT) 13 | #if !defined(SPDLOG_FMT_EXTERNAL) 14 | #ifdef SPDLOG_HEADER_ONLY 15 | #ifndef FMT_HEADER_ONLY 16 | #define FMT_HEADER_ONLY 17 | #endif 18 | #endif 19 | #include 20 | #else 21 | #include 22 | #endif 23 | #endif 24 | -------------------------------------------------------------------------------- /testing/051/indexpage.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | index 5 | My Project 6 | 7 | 8 | 9 | Dollar $ At @ Backslash \ Ampersand & Less < Greater > Hash # Percent % Quote " Dot . Double colon :: Pipe | Plus + Minus - 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /doc/extsearch_flow.dot: -------------------------------------------------------------------------------- 1 | digraph Flow { 2 | edge [fontname="helvetica",fontsize="10pt"]; 3 | node [shape=ellipse,fontname="helvetica",fontsize="10pt"]; 4 | doxygen; 5 | doxyindexer; 6 | doxysearch [label="doxysearch.cgi"]; 7 | browser [label="HTML page\nin browser"]; 8 | node [shape=note]; 9 | searchdata [label="searchdata.xml"]; 10 | searchindex [label="doxysearch.db"]; 11 | 12 | doxygen -> searchdata [label=" writes"]; 13 | searchdata -> doxyindexer [label=" reads"]; 14 | doxyindexer -> searchindex [label=" writes"]; 15 | searchindex -> doxysearch [label=" reads"]; 16 | doxysearch -> browser [label=" get results "]; 17 | browser -> doxysearch [label=" query "]; 18 | } 19 | -------------------------------------------------------------------------------- /testing/002/indexpage.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | index 5 | My Project 6 | 7 | 8 | 9 | 10 | 11 | keyword 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /doc/doxyindexer.1: -------------------------------------------------------------------------------- 1 | .TH DOXYINDEXER "1" "@DATE@" "doxyindexer @VERSION@" "User Commands" 2 | .SH NAME 3 | doxyindexer \- creates a search index from raw search data 4 | .SH SYNOPSIS 5 | .B doxyindexer 6 | [\fI-o output_dir\fR] \fIsearchdata.xml \fR[\fIsearchdata2.xml\fR...] 7 | .SH DESCRIPTION 8 | Generates a search index called \fBdoxysearch.db\fR from one or more 9 | search data files produced by Doxygen. Use 10 | doxysearch.cgi as a CGI program to search the data indexed by doxyindexer. 11 | .SH OPTIONS 12 | .TP 13 | \fB\-o\fR 14 | The directory where to write the doxysearch.db to. 15 | If omitted the current directory is used. 16 | .SH SEE ALSO 17 | doxygen(1), doxysearch(1), doxywizard(1). 18 | -------------------------------------------------------------------------------- /testing/096/namespacem3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | m3 5 | m3::t1 6 | m3::t4 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /addon/doxywizard/configdoc.h: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * 3 | * Copyright (C) 1997-2019 by Dimitri van Heesch. 4 | * 5 | * Permission to use, copy, modify, and distribute this software and its 6 | * documentation under the terms of the GNU General Public License is hereby 7 | * granted. No representations are made about the suitability of this software 8 | * for any purpose. It is provided "as is" without express or implied warranty. 9 | * See the GNU General Public License for more details. 10 | * 11 | */ 12 | 13 | #ifndef CONFIGDOC_H 14 | #define CONFIGDOC_H 15 | 16 | class DocIntf; 17 | 18 | void addConfigDocs(DocIntf *doc); 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /testing/011_category.m: -------------------------------------------------------------------------------- 1 | // objective: test the \interface and \category command 2 | // check: category_integer_07_arithmetic_08.xml 3 | // check: interface_integer.xml 4 | # import 5 | 6 | @interface Integer : Object { 7 | /** data member */ 8 | int integer; 9 | } 10 | 11 | /** getter */ 12 | - (int) integer; 13 | /** setter */ 14 | - (id) integer: (int) _integer; 15 | @end 16 | 17 | @interface Integer (Arithmetic) 18 | /** add operation */ 19 | - (id) add: (Integer *) addend; 20 | /** subtract operation */ 21 | - (id) sub: (Integer *) subtrahend; 22 | @end 23 | 24 | /** \interface Integer 25 | * An interface 26 | */ 27 | 28 | /** \category Integer(Arithmetic) 29 | * A category 30 | */ 31 | -------------------------------------------------------------------------------- /testing/026_exception.cpp: -------------------------------------------------------------------------------- 1 | // objective: test the \exception, \param, and \tparam commands 2 | // check: class_test.xml 3 | #include 4 | /** A Test class. 5 | * More details about this class. 6 | * @tparam T A template parameter. 7 | */ 8 | template class Test 9 | { 10 | public: 11 | /** An example member function. 12 | * \param p1 First parameter. 13 | * \param p2 Second parameter. 14 | * \exception std::out_of_range parameter is out of range. 15 | * \retval 0 if p1 and p2 are equal 16 | * \retval -1 if p1 is smaller than p2 17 | * \retval 1 if p1 is bigger than p2 18 | */ 19 | int example(int p1,int p2) throw(std::out_of_range); 20 | }; 21 | 22 | -------------------------------------------------------------------------------- /templates/html/plus.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /templates/html/plusd.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /testing/077/077__no__xml__namespace__members__in__file__scope_8h.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 077_no_xml_namespace_members_in_file_scope.h 5 | Namespace 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /cmake/ApplyEditbin.cmake: -------------------------------------------------------------------------------- 1 | # helper script for Windows to run editbin.exe on a generated executable 2 | function(apply_editbin target_name target_type) 3 | if (WIN32) 4 | find_program(EDITBIN editbin) 5 | if(EDITBIN) 6 | set(EDITBIN_FLAGS /nologo /OSVERSION:5.1) 7 | if (${target_type} STREQUAL "console") 8 | set(EDITBIN_FLAGS ${EDITBIN_FLAGS} /SUBSYSTEM:CONSOLE,6.00) 9 | elseif (${target_type} STREQUAL "windows") 10 | set(EDITBIN_FLAGS ${EDITBIN_FLAGS} /SUBSYSTEM:WINDOWS,6.00) 11 | endif() 12 | add_custom_command( 13 | TARGET ${target_name} 14 | POST_BUILD 15 | COMMAND "${EDITBIN}" ${EDITBIN_FLAGS} "$" 16 | VERBATIM) 17 | endif() 18 | endif() 19 | endfunction() 20 | -------------------------------------------------------------------------------- /testing/013/class_t1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | T1 5 | inc/013_class.h 6 | 7 | 8 | 9 | A class 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /libversion/gitversion.cpp.in: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | /* - On some systems git is not installed or 5 | * installed on a place where FindGit.cmake cannot find it 6 | * - No git information is present (no .git directory) 7 | * in those cases clear the gitVersionString (would have string GIT-NOTFOUND). 8 | */ 9 | std::string getGitVersion() 10 | { 11 | static std::string gitVersion; 12 | static bool init = false; 13 | if (!init) 14 | { 15 | gitVersion = "@GIT_HEAD_SHA1@"; 16 | if (std::string("@GIT_IS_DIRTY@")=="true") 17 | { 18 | gitVersion+="*"; 19 | } 20 | if (gitVersion=="GIT-NOTFOUND") 21 | { 22 | gitVersion=""; 23 | } 24 | init = true; 25 | } 26 | return gitVersion; 27 | } 28 | -------------------------------------------------------------------------------- /testing/more_100_b.c: -------------------------------------------------------------------------------- 1 | /** 2 | * @file 3 | * 4 | * @ingroup B 5 | * 6 | * @brief more_100_b.c 7 | */ 8 | 9 | /** 10 | * @brief E in more_100_b.c 11 | * 12 | * @ingroup B 13 | */ 14 | enum E { 15 | /** 16 | * @brief A in more_100_b.c 17 | */ 18 | A, 19 | 20 | /** 21 | * @brief B in more_100_b.c 22 | */ 23 | B 24 | }; 25 | 26 | /** 27 | * @brief D in more_100_b.c. 28 | * 29 | * @ingroup B 30 | */ 31 | #define D 1 32 | 33 | /** 34 | * @brief f() in more_100_b.c. 35 | * 36 | * @ingroup B 37 | */ 38 | static void f(void) {}; 39 | 40 | /** 41 | * @brief T in more_100_b.c. 42 | * 43 | * @ingroup B 44 | */ 45 | typedef struct s T; 46 | 47 | /** 48 | * @brief i in more_100_a.c. 49 | * 50 | * @ingroup B 51 | */ 52 | static int i; 53 | -------------------------------------------------------------------------------- /deps/spdlog/include/spdlog/details/console_globals.h: -------------------------------------------------------------------------------- 1 | // Copyright(c) 2015-present, Gabi Melman & spdlog contributors. 2 | // Distributed under the MIT License (http://opensource.org/licenses/MIT) 3 | 4 | #pragma once 5 | 6 | #include 7 | #include 8 | 9 | namespace spdlog { 10 | namespace details { 11 | 12 | struct console_mutex { 13 | using mutex_t = std::mutex; 14 | static mutex_t &mutex() { 15 | static mutex_t s_mutex; 16 | return s_mutex; 17 | } 18 | }; 19 | 20 | struct console_nullmutex { 21 | using mutex_t = null_mutex; 22 | static mutex_t &mutex() { 23 | static mutex_t s_mutex; 24 | return s_mutex; 25 | } 26 | }; 27 | } // namespace details 28 | } // namespace spdlog 29 | -------------------------------------------------------------------------------- /deps/spdlog/include/spdlog/fmt/std.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright(c) 2016 Gabi Melman. 3 | // Distributed under the MIT License (http://opensource.org/licenses/MIT) 4 | // 5 | 6 | #pragma once 7 | // 8 | // include bundled or external copy of fmtlib's std support (for formatting e.g. 9 | // std::filesystem::path, std::thread::id, std::monostate, std::variant, ...) 10 | // 11 | #include 12 | 13 | #if !defined(SPDLOG_USE_STD_FORMAT) 14 | #if !defined(SPDLOG_FMT_EXTERNAL) 15 | #ifdef SPDLOG_HEADER_ONLY 16 | #ifndef FMT_HEADER_ONLY 17 | #define FMT_HEADER_ONLY 18 | #endif 19 | #endif 20 | #include 21 | #else 22 | #include 23 | #endif 24 | #endif 25 | -------------------------------------------------------------------------------- /src/perlmodgen.h: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * 3 | * 4 | * 5 | * Copyright (C) 1997-2015 by Dimitri van Heesch. 6 | * 7 | * Permission to use, copy, modify, and distribute this software and its 8 | * documentation under the terms of the GNU General Public License is hereby 9 | * granted. No representations are made about the suitability of this software 10 | * for any purpose. It is provided "as is" without express or implied warranty. 11 | * See the GNU General Public License for more details. 12 | * 13 | */ 14 | 15 | #ifndef PERLMODGEN_H 16 | #define PERLMODGEN_H 17 | 18 | class QCString; 19 | 20 | extern void setPerlModDoxyfile(const QCString &); 21 | extern void generatePerlMod(); 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /templates/xml/xml.xsd: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /deps/spdlog/include/spdlog/details/periodic_worker-inl.h: -------------------------------------------------------------------------------- 1 | // Copyright(c) 2015-present, Gabi Melman & spdlog contributors. 2 | // Distributed under the MIT License (http://opensource.org/licenses/MIT) 3 | 4 | #pragma once 5 | 6 | #ifndef SPDLOG_HEADER_ONLY 7 | #include 8 | #endif 9 | 10 | namespace spdlog { 11 | namespace details { 12 | 13 | // stop the worker thread and join it 14 | SPDLOG_INLINE periodic_worker::~periodic_worker() { 15 | if (worker_thread_.joinable()) { 16 | { 17 | std::lock_guard lock(mutex_); 18 | active_ = false; 19 | } 20 | cv_.notify_one(); 21 | worker_thread_.join(); 22 | } 23 | } 24 | 25 | } // namespace details 26 | } // namespace spdlog 27 | -------------------------------------------------------------------------------- /testing/060/class_details_c_s_style.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | DetailsCSStyle 5 | 6 | Summary C# style. 7 | 8 | 9 | Details below 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /testing/095/namespacem1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | m1 5 | m1::t1 6 | m1::t2 7 | m1::t3 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /testing/018_def.c: -------------------------------------------------------------------------------- 1 | // objective: test the \def, \var, \fn, and \typedef commands 2 | // check: 018__def_8c.xml 3 | 4 | /** \file 5 | * Text \a argument more text. 6 | */ 7 | 8 | #define MACRO 42 9 | int var = 10; 10 | void func(int) {} 11 | void func(int,const char *) {} 12 | typedef int Type; 13 | enum E { E1, E2 }; 14 | 15 | /** \def MACRO 16 | * A macro definition 17 | */ 18 | 19 | /** Another macro definition. 20 | */ 21 | #define MACRO4 2 22 | 23 | /** \var var 24 | * A variable 25 | */ 26 | 27 | /** \fn func(int) 28 | * A function with one parameter. 29 | */ 30 | 31 | /** \fn func(int,const char *) 32 | * A function with two parameters 33 | */ 34 | 35 | /** \typedef Type 36 | * A type definition. 37 | */ 38 | 39 | /** \enum E 40 | * An enum 41 | */ 42 | -------------------------------------------------------------------------------- /testing/089_module_proc.f90: -------------------------------------------------------------------------------- 1 | !// objective: test visibility of variables in modules 2 | !// check: namespacem1.xml 3 | !// check: namespacem2.xml 4 | !// config: OPTIMIZE_FOR_FORTRAN=YES 5 | 6 | module M1 7 | implicit none 8 | private 9 | 10 | public :: f1 11 | public :: f2, f3 12 | 13 | contains 14 | 15 | subroutine f1 16 | end subroutine 17 | 18 | subroutine f2 19 | end subroutine 20 | 21 | subroutine f3 22 | end subroutine 23 | 24 | end module M1 25 | 26 | module M2 27 | implicit none 28 | 29 | private :: f1 30 | public :: f2 31 | public :: f3 32 | 33 | contains 34 | 35 | subroutine f1 36 | end subroutine 37 | 38 | function f2 39 | integer :: f2 40 | end subroutine 41 | 42 | subroutine f3 43 | end subroutine 44 | 45 | end module M2 46 | -------------------------------------------------------------------------------- /testing/096/namespacem1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | m1 5 | m1::t1 6 | m1::t2 7 | m1::t3 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /testing/096_namespace_inheritance.cpp: -------------------------------------------------------------------------------- 1 | // objective: test inheritance over namespace works the same in C++ and Fortran (see test 095) 2 | // check: structm1_1_1t1.xml 3 | // check: structm1_1_1t2.xml 4 | // check: structm1_1_1t3.xml 5 | // check: structm2_1_1t3.xml 6 | // check: structm3_1_1t4.xml 7 | // check: namespacem1.xml 8 | // check: namespacem2.xml 9 | // check: namespacem3.xml 10 | 11 | namespace m1 12 | { 13 | struct t1 14 | { 15 | }; 16 | 17 | struct t2: public t1 18 | { 19 | }; 20 | 21 | struct t3: public t2 22 | { 23 | }; 24 | } 25 | 26 | namespace m2 27 | { 28 | using namespace m1; 29 | 30 | struct t3: public t2 31 | { 32 | }; 33 | } 34 | 35 | namespace m3 36 | { 37 | using m2::t1; 38 | 39 | struct t4: public t1 40 | { 41 | }; 42 | } 43 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: doxygen 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry 13 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 14 | -------------------------------------------------------------------------------- /templates/html/closed.luma: -------------------------------------------------------------------------------- 1 | # tree closed icon 2 | # width & height 3 | 9 9 4 | # luma data 5 | 0 0 0 0 142 0 0 0 0 6 | 0 0 0 0 142 142 0 0 0 7 | 0 0 0 0 142 142 142 0 0 8 | 0 0 0 0 142 142 142 142 0 9 | 0 0 0 0 142 142 142 142 142 10 | 0 0 0 0 142 142 142 142 0 11 | 0 0 0 0 142 142 142 0 0 12 | 0 0 0 0 142 142 0 0 0 13 | 0 0 0 0 142 0 0 0 0 14 | # alpha data 15 | 0 0 0 0 255 0 0 0 0 16 | 0 0 0 0 255 255 0 0 0 17 | 0 0 0 0 255 255 255 0 0 18 | 0 0 0 0 255 255 255 255 0 19 | 0 0 0 0 255 255 255 255 255 20 | 0 0 0 0 255 255 255 255 0 21 | 0 0 0 0 255 255 255 0 0 22 | 0 0 0 0 255 255 0 0 0 23 | 0 0 0 0 255 0 0 0 0 24 | -------------------------------------------------------------------------------- /testing/017/indexpage.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | index 5 | My Project 6 | 7 | 8 | 9 | 10 | 11 | Dimitri van Heesch 12 | 13 | 14 | July 13 2013 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /testing/064_castoperator.cpp: -------------------------------------------------------------------------------- 1 | // objective: test linking to the cast operator with and without const 2 | // check: struct_foo.xml 3 | /** 4 | * @brief Foo 5 | * 6 | * - No autolink for operator int() 7 | * - @ref operator int() 8 | * - @ref operator int() "title" 9 | * - Foo::operator int() 10 | * - @ref Foo::operator int() 11 | * - @ref Foo::operator int() "title" 12 | * 13 | * - No autolink for operator int() const 14 | * - @ref operator int() const 15 | * - @ref operator int() const "title" 16 | * - Foo::operator int() const 17 | * - @ref Foo::operator int() const 18 | * - @ref Foo::operator int() const "title" 19 | */ 20 | struct Foo { 21 | /** @brief Conversion to int */ 22 | operator int(); 23 | /** @brief Conversion to int const */ 24 | operator int() const; 25 | }; 26 | -------------------------------------------------------------------------------- /testing/013/class_t2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | T2 5 | 013_class.h 6 | 7 | 8 | 9 | class T2 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /testing/013/class_t3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | T3 5 | 013_class.h 6 | 7 | 8 | 9 | class T3 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /testing/087_public_type.F90: -------------------------------------------------------------------------------- 1 | !// objective: test visibility of types in modules 2 | !// check: structmymodule_1_1t1.xml 3 | !// check: structmymodule_1_1t2.xml 4 | !// check: structmymodule_1_1t3.xml 5 | !// check: structmymodule_1_1t4.xml 6 | !// config: OPTIMIZE_FOR_FORTRAN=YES 7 | !// config: WARN_IF_UNDOCUMENTED=NO 8 | 9 | module myModule 10 | implicit none 11 | private 12 | 13 | public :: T3 14 | 15 | type T1 16 | integer :: publicVariable 17 | end type T1 18 | 19 | public :: T1 20 | 21 | type, public :: T2 22 | integer :: publicVariable 23 | contains 24 | end type 25 | 26 | type T3 27 | private 28 | integer :: privateVariable 29 | end type 30 | 31 | type, private :: T4 32 | integer :: publicVariable 33 | end type 34 | 35 | end module myModule 36 | -------------------------------------------------------------------------------- /testing/013/class_t4.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | T4 5 | inc/013_class.h 6 | 7 | 8 | 9 | class T4 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /templates/html/open.luma: -------------------------------------------------------------------------------- 1 | # tree open icon 2 | # width & height 3 | 9 9 4 | # luma data 5 | 0 0 0 0 0 0 0 0 0 6 | 0 0 0 0 0 0 0 0 0 7 | 0 0 0 0 0 0 0 0 0 8 | 0 0 0 0 0 0 0 0 0 9 | 142 142 142 142 142 142 142 142 142 10 | 0 142 142 142 142 142 142 142 0 11 | 0 0 142 142 142 142 142 0 0 12 | 0 0 0 142 142 142 0 0 0 13 | 0 0 0 0 142 0 0 0 0 14 | # alpha data 15 | 0 0 0 0 0 0 0 0 0 16 | 0 0 0 0 0 0 0 0 0 17 | 0 0 0 0 0 0 0 0 0 18 | 0 0 0 0 0 0 0 0 0 19 | 255 255 255 255 255 255 255 255 255 20 | 0 255 255 255 255 255 255 255 0 21 | 0 0 255 255 255 255 255 0 0 22 | 0 0 0 255 255 255 0 0 0 23 | 0 0 0 0 255 0 0 0 0 24 | -------------------------------------------------------------------------------- /testing/028_formula.c: -------------------------------------------------------------------------------- 1 | // objective: test the \f$, \f[, \f], \f{, and \f} commands 2 | // check: indexpage.xml 3 | 4 | /** @mainpage 5 | Here are some formulas: 6 | -# The distance between \f$(x_1,y_1)\f$ and \f$(x_2,y_2)\f$ is 7 | \f$\sqrt{(x_2-x_1)^2+(y_2-y_1)^2}\f$. 8 | -# Unnumbered formula: 9 | \f[ |I_2|=\left| \int_{0}^T \psi(t) \left\{ u(a,t)- \int_{\gamma(t)}^a 10 | \frac{d\theta}{k(\theta,t)} \int_{a}^\theta c(\xi)u_t(\xi,t)\,d\xi \right\} dt \right| \f] 11 | -# Formula in different environment 12 | \f{eqnarray*}{ g &=& \frac{Gm_2}{r^2} \\ 13 | &=& \frac{(6.673 \times 10^{-11}\,\mbox{m}^3\,\mbox{kg}^{-1}\, 14 | \mbox{s}^{-2})(5.9736 \times 10^{24}\,\mbox{kg})}{(6371.01\,\mbox{km})^2} \\ 15 | &=& 9.82066032\,\mbox{m/s}^2 16 | \f} 17 | */ 18 | -------------------------------------------------------------------------------- /templates/html/footer.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | 10 | 11 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /addon/doxywizard/docintf.h: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * 3 | * Copyright (C) 1997-2019 by Dimitri van Heesch. 4 | * 5 | * Permission to use, copy, modify, and distribute this software and its 6 | * documentation under the terms of the GNU General Public License is hereby 7 | * granted. No representations are made about the suitability of this software 8 | * for any purpose. It is provided "as is" without express or implied warranty. 9 | * See the GNU General Public License for more details. 10 | * 11 | */ 12 | 13 | #ifndef DOCINTF_H 14 | #define DOCINTF_H 15 | 16 | class DocIntf 17 | { 18 | public: 19 | virtual ~DocIntf() {} 20 | virtual void setHeader(const char *header) = 0; 21 | virtual void add(const char *name,const char *docs) = 0; 22 | }; 23 | 24 | #endif 25 | -------------------------------------------------------------------------------- /src/sqlite3gen.h: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * 3 | * 4 | * 5 | * Copyright (C) 1997-2015 by Dimitri van Heesch. 6 | * 7 | * Permission to use, copy, modify, and distribute this software and its 8 | * documentation under the terms of the GNU General Public License is hereby 9 | * granted. No representations are made about the suitability of this software 10 | * for any purpose. It is provided "as is" without express or implied warranty. 11 | * See the GNU General Public License for more details. 12 | * 13 | * Documents produced by Doxygen are derivative works derived from the 14 | * input used in their production; they are not affected by this license. 15 | * 16 | */ 17 | 18 | #ifndef SQLITE3GEN_H 19 | #define SQLITE3GEN_H 20 | 21 | void generateSqlite3(); 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /testing/060/class_details_summary_at_top.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | DetailsSummaryAtTop 5 | 6 | 7 | 8 | Before details.
    Summary on topDetails body
    After details.
    9 |
    10 | 11 | 12 | 13 |
    14 |
    15 | -------------------------------------------------------------------------------- /testing/020/indexpage.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | index 5 | My Project 6 | 7 | 8 | 9 | Text. 10 | HTML 11 | 12 | HTML with block 13 | 14 | RTF 15 | 16 | Man 17 | 18 | LaTeX 19 | 20 | XML 21 | 22 | DocBook 23 | More text. 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /deps/libmscgen/gd_security.c: -------------------------------------------------------------------------------- 1 | /* 2 | * gd_security.c 3 | * 4 | * Implements buffer overflow check routines. 5 | * 6 | * Written 2004, Phil Knirsch. 7 | * Based on netpbm fixes by Alan Cox. 8 | * 9 | */ 10 | 11 | #ifdef HAVE_CONFIG_H 12 | #include "config.h" 13 | #endif 14 | 15 | #include 16 | #include 17 | #include 18 | #include "gd.h" 19 | #include "gd_errors.h" 20 | 21 | int overflow2(int a, int b) 22 | { 23 | if(a <= 0 || b <= 0) { 24 | gd_error_ex(GD_WARNING, "one parameter to a memory allocation multiplication is negative or zero, failing operation gracefully\n"); 25 | return 1; 26 | } 27 | if(a > INT_MAX / b) { 28 | gd_error_ex(GD_WARNING, "product of memory allocation multiplication would exceed INT_MAX, failing operation gracefully\n"); 29 | return 1; 30 | } 31 | return 0; 32 | } 33 | -------------------------------------------------------------------------------- /deps/spdlog/include/spdlog/sinks/sink-inl.h: -------------------------------------------------------------------------------- 1 | // Copyright(c) 2015-present, Gabi Melman & spdlog contributors. 2 | // Distributed under the MIT License (http://opensource.org/licenses/MIT) 3 | 4 | #pragma once 5 | 6 | #ifndef SPDLOG_HEADER_ONLY 7 | #include 8 | #endif 9 | 10 | #include 11 | 12 | SPDLOG_INLINE bool spdlog::sinks::sink::should_log(spdlog::level::level_enum msg_level) const { 13 | return msg_level >= level_.load(std::memory_order_relaxed); 14 | } 15 | 16 | SPDLOG_INLINE void spdlog::sinks::sink::set_level(level::level_enum log_level) { 17 | level_.store(log_level, std::memory_order_relaxed); 18 | } 19 | 20 | SPDLOG_INLINE spdlog::level::level_enum spdlog::sinks::sink::level() const { 21 | return static_cast(level_.load(std::memory_order_relaxed)); 22 | } 23 | -------------------------------------------------------------------------------- /testing/022/indexpage.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | index 5 | My Project 6 | 7 | 8 | 9 | Class relations expressed via an inline dot graph: 10 | digraph example { 11 | node [shape=record, fontname=Helvetica, fontsize=10]; 12 | b [ label="class B" URL="\ref B"]; 13 | c [ label="class C" URL="\ref C"]; 14 | b -> c [ arrowhead="open", style="dashed" ]; 15 | } 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /cmake/FindgenerateDS.cmake: -------------------------------------------------------------------------------- 1 | find_program(GENERATEDS_EXECUTABLE NAMES generateDS generateDS.py DOC "path to the generateDS executable") 2 | mark_as_advanced(GENERATEDS_EXECUTABLE) 3 | set(GENERATEDS_FOUND 0) 4 | if(GENERATEDS_EXECUTABLE) 5 | execute_process( 6 | COMMAND "${GENERATEDS_EXECUTABLE}" --version 7 | OUTPUT_VARIABLE GENERATEDS_TEMP_VERSION 8 | ) 9 | string(REGEX MATCH ".* ([0-9]+(\\.[0-9]+)+)" GENERATEDS_TEMP_VERSION_UNUSED "${GENERATEDS_TEMP_VERSION}") 10 | if(CMAKE_MATCH_1) 11 | set(GENERATEDS_FOUND 1) 12 | set(GENERATEDS_VERSION ${CMAKE_MATCH_1}) 13 | endif() 14 | endif() 15 | if(GENERATEDS_FOUND) 16 | message(STATUS "The generateDS executable: ${GENERATEDS_EXECUTABLE} (found version \"${GENERATEDS_VERSION}\")") 17 | else() 18 | message(STATUS "The generateDS executable not found, using existing files") 19 | endif() 20 | -------------------------------------------------------------------------------- /examples/templ.cpp: -------------------------------------------------------------------------------- 1 | 2 | /*! A template class */ 3 | template class Test 4 | { 5 | public: 6 | Test(); 7 | Test(const Test &); 8 | }; 9 | 10 | /*! complete specialization */ 11 | template<> class Test 12 | { 13 | public: 14 | Test(); 15 | }; 16 | 17 | /*! A partial template specialization */ 18 | template class Test : public Test 19 | { 20 | public: 21 | Test(); 22 | }; 23 | 24 | /*! The constructor of the template class*/ 25 | template Test::Test() {} 26 | 27 | /*! The copy constructor */ 28 | template Test::Test(const Test &t) {} 29 | 30 | /*! The constructor of the partial specialization */ 31 | template Test::Test() {} 32 | 33 | /*! The constructor of the specialization */ 34 | template<> Test::Test() {} 35 | 36 | -------------------------------------------------------------------------------- /testing/060/class_details_summary_at_bottom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | DetailsSummaryAtBottom 5 | 6 | 7 | 8 | Before details.
    Summary at the bottomDetails body
    After details.
    9 |
    10 | 11 | 12 | 13 |
    14 |
    15 | -------------------------------------------------------------------------------- /testing/060/class_details_without_summary.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | DetailsWithoutSummary 5 | 6 | 7 | 8 | Before details.
    DetailsDetails body without summary
    After details.
    9 |
    10 | 11 | 12 | 13 |
    14 |
    15 | -------------------------------------------------------------------------------- /testing/012/indexpage.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | index 5 | My Project 6 | 7 | 8 | 9 | See [3] for more info. 10 | Other references with cross references see [1] and [2] for more info. 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /.github/workflows/doxmlparser-publish.yml: -------------------------------------------------------------------------------- 1 | name: Upload Python Package 2 | 3 | on: 4 | release: 5 | types: [published] 6 | 7 | permissions: 8 | contents: read 9 | 10 | jobs: 11 | deploy: 12 | runs-on: ubuntu-latest 13 | 14 | steps: 15 | - uses: actions/checkout@v4 16 | - name: Set up Python 17 | uses: actions/setup-python@v5 18 | with: 19 | python-version: '3.x' 20 | 21 | - name: Install dependencies 22 | run: | 23 | python -m pip install --upgrade pip 24 | pip install build 25 | 26 | - name: Build package 27 | run: python -m build -w addon/doxmlparser/ 28 | 29 | - name: Publish package 30 | uses: pypa/gh-action-pypi-publish@release/v1 31 | with: 32 | packages-dir: addon/doxmlparser/dist/ 33 | user: __token__ 34 | password: ${{ secrets.PYPI_API_TOKEN }} 35 | -------------------------------------------------------------------------------- /deps/spdlog/include/spdlog/cfg/helpers.h: -------------------------------------------------------------------------------- 1 | // Copyright(c) 2015-present, Gabi Melman & spdlog contributors. 2 | // Distributed under the MIT License (http://opensource.org/licenses/MIT) 3 | 4 | #pragma once 5 | 6 | #include 7 | #include 8 | 9 | namespace spdlog { 10 | namespace cfg { 11 | namespace helpers { 12 | // 13 | // Init levels from given string 14 | // 15 | // Examples: 16 | // 17 | // set global level to debug: "debug" 18 | // turn off all logging except for logger1: "off,logger1=debug" 19 | // turn off all logging except for logger1 and logger2: "off,logger1=debug,logger2=info" 20 | // 21 | SPDLOG_API void load_levels(const std::string &txt); 22 | } // namespace helpers 23 | 24 | } // namespace cfg 25 | } // namespace spdlog 26 | 27 | #ifdef SPDLOG_HEADER_ONLY 28 | #include "helpers-inl.h" 29 | #endif // SPDLOG_HEADER_ONLY 30 | -------------------------------------------------------------------------------- /src/configoptions.h: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * 3 | * Copyright (C) 1997-2015 by Dimitri van Heesch. 4 | * 5 | * Permission to use, copy, modify, and distribute this software and its 6 | * documentation under the terms of the GNU General Public License is hereby 7 | * granted. No representations are made about the suitability of this software 8 | * for any purpose. It is provided "as is" without express or implied warranty. 9 | * See the GNU General Public License for more details. 10 | * 11 | * Documents produced by Doxygen are derivative works derived from the 12 | * input used in their production; they are not affected by this license. 13 | * 14 | */ 15 | 16 | #ifndef CONFIGOPTIONS 17 | #define CONFIGOPTIONS 18 | 19 | class ConfigImpl; 20 | 21 | void addConfigOptions(ConfigImpl *cfg); 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /cmake/WindowsEncoding.cmake: -------------------------------------------------------------------------------- 1 | if(CMAKE_C_COMPILER_ID STREQUAL "MSVC" OR CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") 2 | include(FindPythonInterp) 3 | execute_process( 4 | COMMAND ${Python_EXECUTABLE} "${CMAKE_SOURCE_DIR}/cmake/QueryCodePage.py" 5 | WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} 6 | RESULT_VARIABLE ReturnCode 7 | OUTPUT_VARIABLE CodePage 8 | ) 9 | message(STATUS "CodePage is ${CodePage}") 10 | if("${CodePage}" STREQUAL "936") 11 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /source-charset:utf-8 /execution-charset:gbk") 12 | set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /source-charset:utf-8 /execution-charset:gbk") 13 | else() 14 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /utf-8") 15 | set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /utf-8") 16 | endif() 17 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj") # /bigobj needed for language.cpp on 64bit 18 | endif() 19 | -------------------------------------------------------------------------------- /testing/095_inheritance.f03: -------------------------------------------------------------------------------- 1 | !// objective: test inheritance in Fortran 2 | !// check: structm1_1_1t1.xml 3 | !// check: structm1_1_1t2.xml 4 | !// check: structm1_1_1t3.xml 5 | !// check: structm2_1_1t3.xml 6 | !// check: structm3_1_1t4.xml 7 | !// check: namespacem1.xml 8 | !// check: namespacem2.xml 9 | !// check: namespacem3.xml 10 | !// config: OPTIMIZE_FOR_FORTRAN=YES 11 | 12 | module M1 13 | implicit none 14 | public 15 | 16 | type T1 17 | end type T1 18 | 19 | type, extends(T1) :: T2 20 | contains 21 | end type 22 | 23 | type, extends(T2) :: T3 24 | end type 25 | 26 | end module M1 27 | 28 | module M2 29 | use M1 30 | implicit none 31 | 32 | type, extends(T2) :: T3 33 | end type 34 | 35 | end module M2 36 | 37 | module M3 38 | use M2, only: T1 39 | implicit none 40 | 41 | type, extends(T1) :: T4 42 | end type 43 | 44 | end module M3 45 | -------------------------------------------------------------------------------- /deps/spdlog/include/spdlog/details/synchronous_factory.h: -------------------------------------------------------------------------------- 1 | // Copyright(c) 2015-present, Gabi Melman & spdlog contributors. 2 | // Distributed under the MIT License (http://opensource.org/licenses/MIT) 3 | 4 | #pragma once 5 | 6 | #include "registry.h" 7 | 8 | namespace spdlog { 9 | 10 | // Default logger factory- creates synchronous loggers 11 | class logger; 12 | 13 | struct synchronous_factory { 14 | template 15 | static std::shared_ptr create(std::string logger_name, SinkArgs &&...args) { 16 | auto sink = std::make_shared(std::forward(args)...); 17 | auto new_logger = std::make_shared(std::move(logger_name), std::move(sink)); 18 | details::registry::instance().initialize_logger(new_logger); 19 | return new_logger; 20 | } 21 | }; 22 | } // namespace spdlog 23 | -------------------------------------------------------------------------------- /testing/094_old_style_fortran_routines.f90: -------------------------------------------------------------------------------- 1 | !// objective: test old style fortran without modules 2 | !// check: 094__old__style__fortran__routines_8f90.xml 3 | !// config: OPTIMIZE_FOR_FORTRAN=YES 4 | !// config: EXTRACT_ALL=YES 5 | 6 | SUBROUTINE use_tst2 7 | write(*,*) "I'm use_tst2" 8 | call inner2 9 | END SUBROUTINE use_tst2 10 | 11 | SUBROUTINE use_tst 12 | write(*,*) "I'm use_tst" 13 | call inner 14 | END SUBROUTINE use_tst 15 | 16 | SUBROUTINE use_tst1(routine_interface) 17 | external routine_interface 18 | call routine_interface(7) 19 | END SUBROUTINE use_tst1 20 | 21 | SUBROUTINE A(i) 22 | integer i 23 | write(*,*) "I'm A" 24 | END SUBROUTINE 25 | 26 | SUBROUTINE B(i) 27 | integer i 28 | write(*,*) "I'm B" 29 | END SUBROUTINE 30 | 31 | program tst 32 | call use_tst 33 | call use_tst2 34 | call use_tst1(A) 35 | call use_tst1(B) 36 | end program 37 | -------------------------------------------------------------------------------- /testing/060/class_details_nested.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | DetailsNested 5 | 6 | 7 | 8 | Nested details
    Summary at topSome text
    Nested summary at bottomMore details.
    9 |
    10 | 11 | 12 | 13 |
    14 |
    15 | -------------------------------------------------------------------------------- /testing/snippet_test.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | void main() 5 | { 6 | int i,n,temp,j,arr[25]; 7 | printf("Enter the number of elements in the Array: "); 8 | scanf("%d",&n); 9 | printf("\nEnter the elements:\n\n"); 10 | 11 | /* [input] */ 12 | for(i=0 ; iarr[j+1]) //Swapping Condition is Checked 25 | { 26 | temp=arr[j]; 27 | arr[j]=arr[j+1]; 28 | arr[j+1]=temp; 29 | } 30 | } 31 | } 32 | // [bubble] 33 | 34 | printf("\nThe Sorted Array is:\n\n"); 35 | /* [output] */ 36 | for(i=0 ; i 9 | #include 10 | #include 11 | #include 12 | 13 | #include 14 | 15 | template class SPDLOG_API spdlog::sinks::basic_file_sink; 16 | template class SPDLOG_API spdlog::sinks::basic_file_sink; 17 | 18 | #include 19 | template class SPDLOG_API spdlog::sinks::rotating_file_sink; 20 | template class SPDLOG_API spdlog::sinks::rotating_file_sink; 21 | -------------------------------------------------------------------------------- /testing/080_extract_private_virtual.cpp: -------------------------------------------------------------------------------- 1 | // objective: allow linking to private virtual functions 2 | // check: class_interface.xml 3 | // config: EXTRACT_PRIV_VIRTUAL = YES 4 | 5 | /** @brief An interface */ 6 | class Interface { 7 | public: 8 | /** 9 | * @brief Load things. 10 | * 11 | * Calls @ref doLoad(). 12 | */ 13 | void load(); 14 | 15 | private: 16 | /** 17 | * @brief Pure virtual implementation for @ref load() 18 | * 19 | * Details. 20 | */ 21 | virtual void doLoad() = 0; 22 | 23 | /** 24 | * @brief Non-pure virtual function 25 | * 26 | * Details. 27 | */ 28 | virtual void doOtherStuff(); 29 | 30 | /* Undocumented, should not appear in the docs */ 31 | virtual void doSomethingUndocumented(); 32 | 33 | /** @brief A non-virtual private function, not extracted */ 34 | void someUtility(); 35 | }; 36 | -------------------------------------------------------------------------------- /addon/doxmlparser/setup.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from pathlib import Path 4 | from setuptools import setup, find_packages 5 | 6 | topdir = Path(os.getcwd()).parent.parent 7 | 8 | with open(topdir / 'VERSION') as f: 9 | version = f.read() 10 | 11 | with open('README.md') as f: 12 | readme = f.read() 13 | 14 | with open('LICENSE') as f: 15 | license = f.read() 16 | 17 | with open('requirements.txt') as f: 18 | requirements = f.read().splitlines() 19 | 20 | setup( 21 | name='doxmlparser', 22 | version=version, 23 | description='Python API to access doxygen generated XML output', 24 | long_description=readme, 25 | author='Dimitri van Heesch', 26 | author_email='doxygen@gmail.com', 27 | url='https://github.com/doxygen/doxygen/addon/doxmlparser', 28 | license=license, 29 | packages=find_packages(exclude=('tests', 'docs')), 30 | install_requires=requirements 31 | ) 32 | -------------------------------------------------------------------------------- /testing/041_overload.cpp: -------------------------------------------------------------------------------- 1 | // objective: test the \overload command 2 | // check: class_test.xml 3 | class Rect; 4 | class Point; 5 | class Test 6 | { 7 | public: 8 | void drawRect(int,int,int,int); 9 | void drawRect(const Rect &r); 10 | void drawRect(const Point &topLeft,const Point &bottomRight); 11 | }; 12 | 13 | void Test::drawRect(int x,int y,int w,int h) {} 14 | void Test::drawRect(const Rect &r) {} 15 | /*! \overload 16 | * 17 | * More text. 18 | */ 19 | void Test::drawRect(const Point &topLeft,const Point &bottomRight) {} 20 | 21 | /*! \class Test 22 | * \brief A short description. 23 | * 24 | * More text. 25 | */ 26 | 27 | /*! \fn void Test::drawRect(int x,int y,int w,int h) 28 | * This command draws a rectangle with a left upper corner at ( \a x , \a y ), 29 | * width \a w and height \a h. 30 | */ 31 | 32 | /*! 33 | * \overload void Test::drawRect(const Rect &r) 34 | */ 35 | -------------------------------------------------------------------------------- /doc_internal/doc_internal.css: -------------------------------------------------------------------------------- 1 | dl.multicol { 2 | -moz-column-gap: 1em; 3 | -webkit-column-gap: 1em; 4 | column-gap: 1em; 5 | -moz-column-count: 3; 6 | -webkit-column-count: 3; 7 | column-count: 3; 8 | list-style-type: none; 9 | } 10 | ul.multicol { 11 | font-family: courier,monospace; 12 | } 13 | 14 | body { 15 | scrollbar-color: var(--scrollbar-thumb-color) var(--scrollbar-background-color); 16 | } 17 | 18 | ::-webkit-scrollbar { 19 | background-color: var(--scrollbar-background-color); 20 | height: 12px; 21 | width: 12px; 22 | } 23 | ::-webkit-scrollbar-thumb { 24 | border-radius: 6px; 25 | box-shadow: inset 0 0 12px 12px var(--scrollbar-thumb-color); 26 | border: solid 2px transparent; 27 | } 28 | ::-webkit-scrollbar-corner { 29 | background-color: var(--scrollbar-background-color); 30 | } 31 | 32 | -------------------------------------------------------------------------------- /templates/html/mag.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 12 | 14 | 20 | 24 | 25 | -------------------------------------------------------------------------------- /deps/libmscgen/README.txt: -------------------------------------------------------------------------------- 1 | Issue 6880 (https://github.com/doxygen/doxygen/issues/6880) required fixes to the mscgen tool. 2 | Since this tool is no longer maintained, it was decided to build mscgen as part of doxygen. 3 | This directory contains the mscgen code. 4 | 5 | Since mscgen depends on libgd for PNG output, a part of the gd library is included as well. 6 | Instead of using libpng as PNG generator, the lodepng library is used. This PNG library was 7 | already part of doxygen. Module gd_lodepng.c was added to make libgd use lodepng. 8 | 9 | Original copyright statement follows: 10 | 11 | LICENCE 12 | ======= 13 | 14 | Mscgen, Copyright (C) 2010 Michael C McTernan, 15 | Michael.McTernan.2001@cs.bris.ac.uk 16 | Mscgen comes with ABSOLUTELY NO WARRANTY. Mscgen is free software, and you 17 | are welcome to redistribute it under certain conditions; see the COPYING 18 | file for details. 19 | 20 | 21 | -------------------------------------------------------------------------------- /templates/html/mag_d.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 12 | 14 | 20 | 24 | 25 | -------------------------------------------------------------------------------- /libversion/version.h: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * 3 | * Copyright (C) 1997-2020 by Dimitri van Heesch. 4 | * 5 | * Permission to use, copy, modify, and distribute this software and its 6 | * documentation under the terms of the GNU General Public License is hereby 7 | * granted. No representations are made about the suitability of this software 8 | * for any purpose. It is provided "as is" without express or implied warranty. 9 | * See the GNU General Public License for more details. 10 | * 11 | * Documents produced by Doxygen are derivative works derived from the 12 | * input used in their production; they are not affected by this license. 13 | * 14 | */ 15 | 16 | #ifndef VERSION_H 17 | #define VERSION_H 18 | 19 | #include 20 | 21 | std::string getDoxygenVersion(); 22 | std::string getGitVersion(); 23 | std::string getFullVersion(); 24 | 25 | #endif 26 | -------------------------------------------------------------------------------- /testing/060/class_details_multi_summary.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | DetailsMultiSummary 5 | 6 | 7 | 8 | Multiple summary sections
    First summaryMore details. Second summaryMore details. Third summaryLast part.
    9 |
    10 | 11 | 12 | 13 |
    14 |
    15 | -------------------------------------------------------------------------------- /testing/057_inlinenamespace.cpp: -------------------------------------------------------------------------------- 1 | // objective: test inline namespaces 2 | // check: namespacelibrary.xml 3 | // check: namespacelibrary_1_1v1.xml 4 | // check: namespacelibrary_1_1v2.xml 5 | 6 | /// the main namespace 7 | namespace library 8 | { 9 | /// the first namespace 10 | namespace v1 11 | { 12 | /// the class 13 | class foo { 14 | public: 15 | /// member of the class 16 | void member(); 17 | }; 18 | /// a method 19 | void func(); 20 | /// a namespace 21 | namespace NS {} 22 | } 23 | /// the inline namespace 24 | inline namespace v2 25 | { 26 | /// the class 27 | class foo { 28 | public: 29 | /// member of the class 30 | void member(); 31 | }; 32 | /// a method 33 | void func(); 34 | /// a namespace 35 | namespace NS {} 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/tagreader.h: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * 3 | * 4 | * 5 | * 6 | * Copyright (C) 1997-2015 by Dimitri van Heesch. 7 | * 8 | * Permission to use, copy, modify, and distribute this software and its 9 | * documentation under the terms of the GNU General Public License is hereby 10 | * granted. No representations are made about the suitability of this software 11 | * for any purpose. It is provided "as is" without express or implied warranty. 12 | * See the GNU General Public License for more details. 13 | * 14 | * Documents produced by Doxygen are derivative works derived from the 15 | * input used in their production; they are not affected by this license. 16 | * 17 | */ 18 | 19 | #ifndef TAGREADER_H 20 | #define TAGREADER_H 21 | 22 | class Entry; 23 | 24 | #include 25 | 26 | void parseTagFile(const std::shared_ptr &root,const char *fullPathName); 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /testing/043_page.dox: -------------------------------------------------------------------------------- 1 | // objective: test \page, \subpage, \*section, \paragraph, and \ref commands 2 | // check: mypage.xml 3 | // check: another.xml 4 | /** \page mypage Page Title 5 | * \brief Page brief description. 6 | * 7 | * @tableofcontents{xml,html,latex,docbook} 8 | * 9 | * Text at page level. See \ref mysect for more. 10 | * \section mysect Section Title. 11 | * Text at section level. See \ref mysubsect for more. 12 | * \subsection mysubsect Subsection Title. 13 | * Text at subsection level. see \ref mysubsubsect for more. 14 | * \subsubsection mysubsubsect Subsubsection Title. 15 | * Text at subsubsection level. \ref mypara for more. 16 | * \paragraph mypara Paragraph Title. 17 | * Text at paragraph level. \ref mysect2 for more. 18 | * \section mysect2 Another Section Title. 19 | * Text at section level. 20 | * 21 | * \subpage another 22 | */ 23 | 24 | /** \page another Another Page 25 | * Another page's text. 26 | */ 27 | -------------------------------------------------------------------------------- /src/aliases.h: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * 3 | * Copyright (C) 1997-2023 by Dimitri van Heesch. 4 | * 5 | * Permission to use, copy, modify, and distribute this software and its 6 | * documentation under the terms of the GNU General Public License is hereby 7 | * granted. No representations are made about the suitability of this software 8 | * for any purpose. It is provided "as is" without express or implied warranty. 9 | * See the GNU General Public License for more details. 10 | * 11 | * Documents produced by Doxygen are derivative works derived from the 12 | * input used in their production; they are not affected by this license. 13 | * 14 | */ 15 | 16 | #ifndef ALIASES_H 17 | #define ALIASES_H 18 | 19 | #include 20 | #include 21 | 22 | std::string resolveAliasCmd(std::string_view aliasCmd); 23 | bool isAliasCmd(std::string_view aliasCmd); 24 | void readAliases(); 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /src/language.h: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * 3 | * 4 | * 5 | * Copyright (C) 1997-2015 by Dimitri van Heesch. 6 | * 7 | * Permission to use, copy, modify, and distribute this software and its 8 | * documentation under the terms of the GNU General Public License is hereby 9 | * granted. No representations are made about the suitability of this software 10 | * for any purpose. It is provided "as is" without express or implied warranty. 11 | * See the GNU General Public License for more details. 12 | * 13 | * Documents produced by Doxygen are derivative works derived from the 14 | * input used in their production; they are not affected by this license. 15 | * 16 | */ 17 | 18 | #ifndef LANGUAGE_H 19 | #define LANGUAGE_H 20 | 21 | #include "translator.h" 22 | #include "configvalues.h" 23 | 24 | extern Translator *theTranslator; 25 | extern void setTranslator(OUTPUT_LANGUAGE_t languageName); 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /testing/045/indexpage.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | index 5 | My Project 6 | 7 | 8 | 9 | 10 | 11 | First Item 12 | Second Item 13 | Third Item 14 | 15 | 16 | Some filler text. 17 | 18 | First Section 19 | Section 1 text. 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /deps/spdlog/include/spdlog/fmt/fmt.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright(c) 2016-2018 Gabi Melman. 3 | // Distributed under the MIT License (http://opensource.org/licenses/MIT) 4 | // 5 | 6 | #pragma once 7 | 8 | // 9 | // Include a bundled header-only copy of fmtlib or an external one. 10 | // By default spdlog include its own copy. 11 | // 12 | #include 13 | 14 | #if defined(SPDLOG_USE_STD_FORMAT) // SPDLOG_USE_STD_FORMAT is defined - use std::format 15 | #include 16 | #elif !defined(SPDLOG_FMT_EXTERNAL) 17 | #if !defined(SPDLOG_COMPILED_LIB) && !defined(FMT_HEADER_ONLY) 18 | #define FMT_HEADER_ONLY 19 | #endif 20 | #ifndef FMT_USE_WINDOWS_H 21 | #define FMT_USE_WINDOWS_H 0 22 | #endif 23 | 24 | #include 25 | #include 26 | 27 | #else // SPDLOG_FMT_EXTERNAL is defined - use external fmtlib 28 | #include 29 | #include 30 | #endif 31 | -------------------------------------------------------------------------------- /src/htmlattrib.h: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * 3 | * 4 | * 5 | * Copyright (C) 1997-2015 by Dimitri van Heesch. 6 | * 7 | * Permission to use, copy, modify, and distribute this software and its 8 | * documentation under the terms of the GNU General Public License is hereby 9 | * granted. No representations are made about the suitability of this software 10 | * for any purpose. It is provided "as is" without express or implied warranty. 11 | * See the GNU General Public License for more details. 12 | * 13 | */ 14 | 15 | #ifndef HTMLATTRIB_H 16 | #define HTMLATTRIB_H 17 | 18 | #include 19 | 20 | #include "qcstring.h" 21 | 22 | /*! \brief Class representing a HTML attribute. */ 23 | struct HtmlAttrib 24 | { 25 | QCString name; 26 | QCString value; 27 | }; 28 | 29 | /*! \brief Class representing a list of HTML attributes. */ 30 | class HtmlAttribList : public std::vector 31 | { 32 | }; 33 | 34 | #endif 35 | 36 | -------------------------------------------------------------------------------- /examples/mux.vhdl: -------------------------------------------------------------------------------- 1 | ------------------------------------------------------- 2 | --! @file 3 | --! @brief 2:1 Mux using with-select 4 | ------------------------------------------------------- 5 | 6 | --! Use standard library 7 | library ieee; 8 | --! Use logic elements 9 | use ieee.std_logic_1164.all; 10 | 11 | --! Mux entity brief description 12 | 13 | --! Detailed description of this 14 | --! mux design element. 15 | entity mux_using_with is 16 | port ( 17 | din_0 : in std_logic; --! Mux first input 18 | din_1 : in std_logic; --! Mux Second input 19 | sel : in std_logic; --! Select input 20 | mux_out : out std_logic --! Mux output 21 | ); 22 | end entity; 23 | 24 | --! @brief Architecture definition of the MUX 25 | --! @details More details about this mux element. 26 | architecture behavior of mux_using_with is 27 | begin 28 | with (sel) select 29 | mux_out <= din_0 when '0', 30 | din_1 when others; 31 | end architecture; 32 | 33 | -------------------------------------------------------------------------------- /testing/075_argmatch.cpp: -------------------------------------------------------------------------------- 1 | // objective: test argument matching in particular for unnamed types 2 | // check: struct_foo.xml 3 | /** @brief Foo */ 4 | struct Foo { 5 | void foo(float value); 6 | void foo(unsigned value); 7 | void foo(unsigned long); 8 | void foo(signed long); 9 | void foo(const struct Foo); 10 | void foo(const char * const, const double param2); 11 | void foo(void(*fptr)(int x,int)); 12 | }; 13 | 14 | /** @brief Float */ 15 | void Foo::foo(float) {} 16 | 17 | /** @brief Unsigned int */ 18 | void Foo::foo(unsigned value) {} 19 | 20 | /** @brief Unnamed unsigned long */ 21 | void Foo::foo(unsigned long) {} 22 | 23 | /** @brief Unnamed signed long */ 24 | void Foo::foo(signed long) {} 25 | 26 | /** @brief Unnamed struct foo */ 27 | void Foo::foo(const struct Foo) {} 28 | 29 | /** @brief Unnamed const pointer */ 30 | void Foo::foo(const char * const, const double param2) {} 31 | 32 | /** @brief Function pointer */ 33 | void Foo::foo(void(*fptr)(int y,int z)) {} 34 | -------------------------------------------------------------------------------- /testing/091_module_with_procs.f90: -------------------------------------------------------------------------------- 1 | !// objective: test module procedures with arguments 2 | !// check: namespacemymodule.xml 3 | !// config: OPTIMIZE_FOR_FORTRAN=YES 4 | 5 | module myModule 6 | implicit none 7 | public 8 | 9 | contains 10 | 11 | !> comment on firstProc 12 | subroutine firstProc(i) 13 | integer, intent(in) :: i !< comment on i of firstProc 14 | end subroutine 15 | 16 | !> comment on secondProc_fun 17 | function secondProc_fun(r) result(res) 18 | real, intent(out) :: r !< comment on r of secondProc_fun 19 | integer :: Res !< comment on result Res of secondProc_fun 20 | end function secondProc_fun 21 | 22 | !> comment on anotherProc 23 | subroutine anotherProc(someArg) 24 | character(len=*), intent(in) :: someArg !< comment on someArg of anotherProc 25 | end subroutine 26 | 27 | end module myModule 28 | 29 | !> comment on hello 30 | subroutine hello(world) 31 | character(len=*), intent(in) :: world !< comment on world of hello 32 | end subroutine 33 | -------------------------------------------------------------------------------- /examples/memgrp.cpp: -------------------------------------------------------------------------------- 1 | /** A class. Details */ 2 | class Memgrp_Test 3 | { 4 | public: 5 | ///@{ 6 | /** Same documentation for both members. Details */ 7 | void func1InGroup1(); 8 | void func2InGroup1(); 9 | ///@} 10 | 11 | /** Function without group. Details. */ 12 | void ungroupedFunction(); 13 | void func1InGroup2(); 14 | protected: 15 | void func2InGroup2(); 16 | }; 17 | 18 | void Memgrp_Test::func1InGroup1() {} 19 | void Memgrp_Test::func2InGroup1() {} 20 | 21 | /** @name Group2 22 | * Description of group 2. 23 | */ 24 | ///@{ 25 | /** Function 2 in group 2. Details. */ 26 | void Memgrp_Test::func2InGroup2() {} 27 | /** Function 1 in group 2. Details. */ 28 | void Memgrp_Test::func1InGroup2() {} 29 | ///@} 30 | 31 | /*! \file 32 | * docs for this file 33 | */ 34 | 35 | //!@{ 36 | //! one description for all members of this group 37 | //! (because DISTRIBUTE_GROUP_DOC is YES in the config file) 38 | #define A 1 39 | #define B 2 40 | void glob_func(); 41 | //!@} 42 | -------------------------------------------------------------------------------- /addon/doxyparse/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | find_package(Iconv) 2 | 3 | include_directories( 4 | ${PROJECT_SOURCE_DIR}/src 5 | ${PROJECT_SOURCE_DIR}/libversion 6 | ${GENERATED_SRC} 7 | ${Iconv_INCLUDE_DIRS} 8 | ${CLANG_INCLUDEDIR} 9 | ) 10 | 11 | add_executable(doxyparse 12 | doxyparse.cpp 13 | ${PROJECT_SOURCE_DIR}/templates/icon/doxygen.rc 14 | ) 15 | 16 | include(ApplyEditbin) 17 | apply_editbin(doxyparse console) 18 | add_sanitizers(doxyparse) 19 | 20 | if (use_libclang) 21 | if (static_libclang) 22 | set(CLANG_LIBS libclang clangTooling ${llvm_libs}) 23 | else() 24 | set(CLANG_LIBS libclang clang-cpp ${llvm_libs}) 25 | endif() 26 | endif() 27 | 28 | target_link_libraries(doxyparse 29 | doxymain 30 | md5 31 | sqlite3 32 | xml 33 | lodepng 34 | mscgen 35 | doxygen_version 36 | doxycfg 37 | vhdlparser 38 | ${Iconv_LIBRARIES} 39 | ${CMAKE_THREAD_LIBS_INIT} 40 | ${SQLITE3_LIBRARIES} 41 | ${EXTRA_LIBS} 42 | ${CLANG_LIBS} 43 | ${COVERAGE_LINKER_FLAGS} 44 | ) 45 | 46 | install(TARGETS doxyparse DESTINATION bin) 47 | -------------------------------------------------------------------------------- /src/arguments.cpp: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * Copyright (C) 1997-2019 by Dimitri van Heesch. 3 | * 4 | * Permission to use, copy, modify, and distribute this software and its 5 | * documentation under the terms of the GNU General Public License is hereby 6 | * granted. No representations are made about the suitability of this software 7 | * for any purpose. It is provided "as is" without express or implied warranty. 8 | * See the GNU General Public License for more details. 9 | * 10 | * Documents produced by Doxygen are derivative works derived from the 11 | * input used in their production; they are not affected by this license. 12 | */ 13 | 14 | #include 15 | 16 | #include "arguments.h" 17 | 18 | /*! the argument list is documented if one of its 19 | * arguments is documented 20 | */ 21 | bool ArgumentList::hasDocumentation() const 22 | { 23 | return std::any_of(begin(),end(),[](const Argument &a){ return a.hasDocumentation(); }); 24 | } 25 | 26 | -------------------------------------------------------------------------------- /templates/html/close.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 12 | 14 | 18 | 19 | -------------------------------------------------------------------------------- /deps/jquery/README: -------------------------------------------------------------------------------- 1 | Doxygen's jquery.js script is composed of minified versions of the following 2 | packages: 3 | - jquery 3.6.0: https://jquery.com/download/ 4 | - jquery.ui 1.13.2: https://github.com/jquery/jquery-ui 5 | modules required: 6 | - jquery.ui.core all 7 | - jquery.ui.interactions resizable 8 | - jquery.ui.widgets mouse 9 | - jquery.scrollTo: 2.1.2: https://github.com/flesler/jquery.scrollTo 10 | - jquery.powertip: 1.3.1: https://stevenbenner.github.io/jquery-powertip/ 11 | - jquery.touchpunch: 0.2.3: http://touchpunch.furf.com/ + fix for issue 303 12 | - jquery.smartmenus: 1.1.0: https://www.smartmenus.org/ 13 | 14 | The Makefile will built the jquery.js files used by doxygen. 15 | 16 | Note that there is a performance issue in the default powertip version. 17 | See https://github.com/stevenbenner/jquery-powertip/issues/178 18 | Until that is fixed a modified version is shipped with doxygen. This version 19 | removes the "destroy" functionality which was not used by doxygen anyway. 20 | 21 | -------------------------------------------------------------------------------- /cmake/FindJavacc.cmake: -------------------------------------------------------------------------------- 1 | find_program(JAVACC_EXECUTABLE NAMES javacc javaCC Javacc JavaCC javacc.bat DOC "path to the javacc executable") 2 | mark_as_advanced(JAVACC_EXECUTABLE) 3 | set(JAVACC_FOUND 0) 4 | if(JAVACC_EXECUTABLE) 5 | execute_process( 6 | COMMAND "${JAVACC_EXECUTABLE}" -version 7 | OUTPUT_VARIABLE JAVACC_TEMP_VERSION 8 | ) 9 | string(REGEX MATCH ".* ([0-9]+(\\.[0-9]+)+) .*" JAVACC_TEMP_VERSION2_UNUSED "${JAVACC_TEMP_VERSION}") 10 | if(CMAKE_MATCH_1) 11 | set(JAVACC_FOUND 1) 12 | set(JAVACC_VERSION ${CMAKE_MATCH_1}) 13 | else() 14 | string(REGEX MATCH "([0-9]+(\\.[0-9]+)+)" JAVACC_TEMP_VERSION3_UNUSED "${JAVACC_TEMP_VERSION}") 15 | if(CMAKE_MATCH_1) 16 | set(JAVACC_FOUND 1) 17 | set(JAVACC_VERSION ${CMAKE_MATCH_1}) 18 | endif() 19 | endif() 20 | endif() 21 | if(JAVACC_FOUND) 22 | message(STATUS "The javacc executable: ${JAVACC_EXECUTABLE} (found version \"${JAVACC_VERSION}\")") 23 | else() 24 | message(STATUS "The javacc executable not found, using existing files") 25 | endif() 26 | -------------------------------------------------------------------------------- /addon/doxmlparser/examples/dump/dump.py: -------------------------------------------------------------------------------- 1 | # An minimal example showing how to use the python doxmlparser module to read 2 | # the XML output generated by doxygen for a project and dump it to the output again. 3 | 4 | import sys 5 | 6 | import doxmlparser 7 | 8 | # process a compound file and export the results to stdout 9 | def parse_compound(inDirName,baseName): 10 | doxmlparser.compound.parse(inDirName+"/"+baseName+".xml",False) 11 | 12 | # process the index file and export the results to stdout 13 | def parse_index(inDirName): 14 | rootObj = doxmlparser.index.parse(inDirName+"/index.xml",False) 15 | for compound in rootObj.get_compound(): # for each compound defined in the index 16 | parse_compound(inDirName,compound.get_refid()) 17 | 18 | def usage(): 19 | print("Usage {0} ".format(sys.argv[0])) 20 | sys.exit(1) 21 | 22 | def main(): 23 | args = sys.argv[1:] 24 | if len(args)==1: 25 | parse_index(args[0]) 26 | else: 27 | usage() 28 | 29 | if __name__ == '__main__': 30 | main() 31 | 32 | -------------------------------------------------------------------------------- /deps/jquery/sass/_round-corners-last-item.scss: -------------------------------------------------------------------------------- 1 | // Generate rules to round the corners of the last collapsible item 2 | 3 | @mixin sm-dox__round-corners-last-item($amount, $chainable: 'ul > li:last-child > ', $level: 4, $chain_prefix: '> li:last-child > ', $chain: '', $selector: '') { 4 | $chain: $chain_prefix; 5 | $selector: $chain + 'a, ' + $chain + '*:not(ul) a, ' + $chain + 'ul'; 6 | @for $i from 1 through $level { 7 | $chain: $chain + $chainable; 8 | $selector: $selector + ', ' + $chain + ' a, ' + $chain + '*:not(ul) a, ' + $chain + ' ul'; 9 | } 10 | #{$selector} { 11 | @include border-radius(0 0 $amount $amount); 12 | } 13 | // highlighted items, don't need rounding since their sub is open 14 | $chain: $chain_prefix; 15 | $selector: $chain + 'a.highlighted, ' + $chain + '*:not(ul) a.highlighted'; 16 | @for $i from 1 through $level { 17 | $chain: $chain + $chainable; 18 | $selector: $selector + ', ' + $chain + ' a.highlighted, ' + $chain + '*:not(ul) a.highlighted'; 19 | } 20 | #{$selector} { 21 | @include border-radius(0); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /deps/spdlog/include/spdlog/sinks/sink.h: -------------------------------------------------------------------------------- 1 | // Copyright(c) 2015-present, Gabi Melman & spdlog contributors. 2 | // Distributed under the MIT License (http://opensource.org/licenses/MIT) 3 | 4 | #pragma once 5 | 6 | #include 7 | #include 8 | 9 | namespace spdlog { 10 | 11 | namespace sinks { 12 | class SPDLOG_API sink { 13 | public: 14 | virtual ~sink() = default; 15 | virtual void log(const details::log_msg &msg) = 0; 16 | virtual void flush() = 0; 17 | virtual void set_pattern(const std::string &pattern) = 0; 18 | virtual void set_formatter(std::unique_ptr sink_formatter) = 0; 19 | 20 | void set_level(level::level_enum log_level); 21 | level::level_enum level() const; 22 | bool should_log(level::level_enum msg_level) const; 23 | 24 | protected: 25 | // sink log level - default is all 26 | level_t level_{level::trace}; 27 | }; 28 | 29 | } // namespace sinks 30 | } // namespace spdlog 31 | 32 | #ifdef SPDLOG_HEADER_ONLY 33 | #include "sink-inl.h" 34 | #endif 35 | -------------------------------------------------------------------------------- /src/stlsupport.h: -------------------------------------------------------------------------------- 1 | 2 | /****************************************************************************** 3 | * 4 | * Copyright (C) 1997-2019 by Dimitri van Heesch. 5 | * 6 | * Permission to use, copy, modify, and distribute this software and its 7 | * documentation under the terms of the GNU General Public License is hereby 8 | * granted. No representations are made about the suitability of this software 9 | * for any purpose. It is provided "as is" without express or implied warranty. 10 | * See the GNU General Public License for more details. 11 | * 12 | * Documents produced by Doxygen are derivative works derived from the 13 | * input used in their production; they are not affected by this license. 14 | * 15 | */ 16 | 17 | #ifndef STLSUPPORT_H 18 | #define STLSUPPORT_H 19 | 20 | #include 21 | 22 | class Entry; 23 | 24 | /** Add stub entries for the most used classes in the standard template library 25 | * @param root Root of the entry tree to add the entries to. 26 | */ 27 | void addSTLSupport(std::shared_ptr &root); 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /testing/006/indexpage.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | index 5 | My Project 6 | 7 | 8 | 9 | 10 | 11 | John Doe 12 | 13 | 14 | Jane Doe 15 | 16 | 17 | David, Steven 18 | 19 | 20 | version 1.2 21 | 22 | 23 | 1.8-beta2 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /vhdlparser/TokenManager.h: -------------------------------------------------------------------------------- 1 | /* Generated By:JavaCC: Do not edit this line. TokenManager.h Version 7.0 */ 2 | /* JavaCCOptions:STATIC=false,SUPPORT_CLASS_VISIBILITY_PUBLIC=true */ 3 | #ifndef JAVACC_TOKENMANAGER_H 4 | #define JAVACC_TOKENMANAGER_H 5 | 6 | #include 7 | #include "JavaCC.h" 8 | #include "Token.h" 9 | 10 | namespace vhdl { 11 | namespace parser { 12 | /** 13 | * An implementation for this interface is generated by 14 | * JavaCCParser. The user is free to use any implementation 15 | * of their choice. 16 | */ 17 | 18 | class TokenManager { 19 | public: 20 | virtual ~TokenManager() { } 21 | /** This gets the next token from the input stream. 22 | * A token of kind 0 (``) should be returned on EOF. 23 | */ 24 | virtual Token *getNextToken() = 0; 25 | virtual void setParser(void* parser) {}; 26 | virtual void lexicalError() { 27 | std::cerr << "Lexical error encountered." << std::endl; 28 | } 29 | 30 | }; 31 | 32 | } 33 | } 34 | 35 | #endif 36 | /* JavaCC - OriginalChecksum=ca665ddedf5f5b0cb69e76d90eb70fe0 (do not edit this line) */ 37 | -------------------------------------------------------------------------------- /src/htags.h: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * 3 | * Copyright (C) 1997-2015 by Dimitri van Heesch. 4 | * 5 | * Permission to use, copy, modify, and distribute this software and its 6 | * documentation under the terms of the GNU General Public License is hereby 7 | * granted. No representations are made about the suitability of this software 8 | * for any purpose. It is provided "as is" without express or implied warranty. 9 | * See the GNU General Public License for more details. 10 | * 11 | * Documents produced by Doxygen are derivative works derived from the 12 | * input used in their production; they are not affected by this license. 13 | * 14 | */ 15 | #ifndef HTAGS_H 16 | #define HTAGS_H 17 | 18 | class QCString; 19 | 20 | /** This class is a namespace for HTAGS related functions */ 21 | struct Htags 22 | { 23 | static bool useHtags; 24 | static bool loadFilemap(const QCString &htmldir); 25 | static QCString path2URL(const QCString &path); 26 | static bool execute(const QCString &htmldir); 27 | }; 28 | 29 | #endif /* HTAGS_H */ 30 | --------------------------------------------------------------------------------