From 40c675f65f20f8cb92b51e4da1b0d4735930e37a Mon Sep 17 00:00:00 2001 From: Stephan Schulz <stephan.schulz-x2q@rub.de> Date: Thu, 26 Nov 2020 12:54:58 +0100 Subject: [PATCH] fix sphinx and update doxygen (#29) --- CMakeLists.txt | 5 ++- docs/CMakeLists.txt | 26 ++++++++++++-- docs/Doxyfile.in | 63 ++++++++++++---------------------- docs/classes/ALL.rst | 4 +-- docs/classes/ALL_Functions.rst | 2 +- docs/classes/ALL_Histogram.rst | 2 +- docs/classes/ALL_LB.rst | 4 +-- docs/classes/ALL_Point.rst | 4 +-- docs/classes/ALL_Staggered.rst | 2 +- docs/classes/ALL_Tensor.rst | 4 +-- docs/classes/ALL_Voronoi.rst | 9 +++++ 11 files changed, 69 insertions(+), 56 deletions(-) create mode 100644 docs/classes/ALL_Voronoi.rst diff --git a/CMakeLists.txt b/CMakeLists.txt index dacf1f7..c725b8d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -38,7 +38,10 @@ add_compile_options("$<$<AND:$<CONFIG:Debug>,$<COMPILE_LANGUAGE:Fortran>,$<Fortr add_compile_options("$<$<AND:$<CONFIG:Debug>,$<COMPILE_LANGUAGE:C>,$<C_COMPILER_ID:GNU>>:-Wall;-Wextra>") add_compile_options("$<$<AND:$<CONFIG:Debug>,$<COMPILE_LANGUAGE:CXX>,$<CXX_COMPILER_ID:GNU>>:-Wall;-Wextra>") -project(ALL) +project(ALL + VERSION "0.1.0" + DESCRIPTION "A Loadbalacing Library" + HOMEPAGE_URL "localhost") # add custom find-scripts to module path set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH}) diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt index 3f583b7..51bb235 100644 --- a/docs/CMakeLists.txt +++ b/docs/CMakeLists.txt @@ -1,17 +1,39 @@ message("Generating ALL Documentation:") find_package(Doxygen REQUIRED) +find_package(Python3 REQUIRED) +message(DEBUG "Python3 version: ${PYTHON3_VERSION}") find_package(Sphinx REQUIRED) +#find breathe +# todo(s.schulz): The following does not seem to work. It returns non zero even +# though the package is installed and the correct Python interpreter is found. +# The python interpreter is in a non standard path and included using +# environment variables and the module was installed in the users directory +# (pip3 install --user breathe). +#execute_process( +# COMMAND Python3::Interpreter -c "import breathe" +# RESULT_VARIABLE BREATHE_NOT_FOUND +# OUTPUT_QUIET +# ) +#if(NOT ${BREATHE_NOT_FOUND} EQUAL 0) +# message( FATAL_ERROR "Python \"breathe\" package not found") +#endif() +#do we need to make sure sphinx_rtd_theme is installed? # Find all public headers get_target_property(ALL_PUBLIC_HEADER_DIR ALL INTERFACE_INCLUDE_DIRECTORIES) file(GLOB_RECURSE ALL_PUBLIC_HEADERS ${ALL_PUBLIC_HEADER_DIR}) # setup configuring of doxygen -set(DOXYGEN_INPUT_DIR ${PROJECT_SOURCE_DIR}/include) +# Caveat(s.schulz): Make sure there are not spaces within the paths. +set(DOXYGEN_INPUT_DIR ${PROJECT_SOURCE_DIR}/include ${PROJECT_SOURCE_DIR}/src ${PROJECT_SOURCE_DIR}/example) +string(REPLACE ";" "\" \"" DOXYGEN_INPUT_DIR "${DOXYGEN_INPUT_DIR}") set(DOXYGEN_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/doc/doxygen) set(DOXYGEN_INDEX_FILE ${DOXYGEN_OUTPUT_DIR}/xml/index.xml) set(DOXYFILE_IN ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in) set(DOXYFILE_OUT ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile) +set(DOXYGEN_INTERNAL_DOCS NO) +set(DOXYGEN_EXAMPLE_PATH ${PROJECT_SOURCE_DIR}/example) +set(DOXYGEN_USE_MDFILE_AS_MAINPAGE ${PROJECT_SOURCE_DIR}/README.md) # configure doxygen config file configure_file(${DOXYFILE_IN} ${DOXYFILE_OUT} @ONLY) @@ -52,4 +74,4 @@ add_custom_target(Sphinx ALL DEPENDS ${SPHINX_INDEX_FILE}) include(GNUInstallDirs) install(DIRECTORY ${SPHINX_BUILD} -DESTINATION ${CMAKE_INSTALL_DOCDIR}) \ No newline at end of file +DESTINATION ${CMAKE_INSTALL_DOCDIR}) diff --git a/docs/Doxyfile.in b/docs/Doxyfile.in index cfdc315..c9237f6 100644 --- a/docs/Doxyfile.in +++ b/docs/Doxyfile.in @@ -32,19 +32,19 @@ DOXYFILE_ENCODING = UTF-8 # title of most generated pages and in a few other places. # The default value is: My Project. -PROJECT_NAME = "MPCD" +PROJECT_NAME = "@PROJECT_NAME@" # The PROJECT_NUMBER tag can be used to enter a project or revision number. This # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = +PROJECT_NUMBER = "@PROJECT_VERSION_MAJOR@.@PROJECT_VERSION_MINOR@.@PROJECT_VERSION_PATCH@" # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a # quick idea about the purpose of the project. Keep the description short. -PROJECT_BRIEF = +PROJECT_BRIEF = "@PROJECT_DESCRIPTION@" # With the PROJECT_LOGO tag one can specify a logo or an icon that is included # in the documentation. The maximum height of the logo should not exceed 55 @@ -226,7 +226,7 @@ SEPARATE_MEMBER_PAGES = NO # uses this value to replace tabs by spaces in code fragments. # Minimum value: 1, maximum value: 16, default value: 4. -TAB_SIZE = 4 +TAB_SIZE = 2 # This tag can be used to specify a number of aliases that act as commands in # the documentation. An alias has the form: @@ -328,7 +328,7 @@ AUTOLINK_SUPPORT = YES # diagrams that involve STL classes more complete and accurate. # The default value is: NO. -BUILTIN_STL_SUPPORT = NO +BUILTIN_STL_SUPPORT = YES # If you use Microsoft's C++/CLI language, you should set this option to YES to # enable parsing support. @@ -397,7 +397,7 @@ INLINE_GROUPED_CLASSES = NO # Man pages) or section (for LaTeX and RTF). # The default value is: NO. -INLINE_SIMPLE_STRUCTS = NO +INLINE_SIMPLE_STRUCTS = YES # When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or # enum is documented as struct, union, or enum with the name of the typedef. So @@ -515,7 +515,7 @@ HIDE_IN_BODY_DOCS = NO # will be excluded. Set it to YES to include the internal documentation. # The default value is: NO. -INTERNAL_DOCS = NO +INTERNAL_DOCS = @DOXYGEN_INTERNAL_DOCS@ # If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file # names in lower-case letters. If set to YES, upper-case letters are also @@ -578,7 +578,7 @@ SORT_MEMBER_DOCS = YES # this will also influence the order of the classes in the class list. # The default value is: NO. -SORT_BRIEF_DOCS = NO +SORT_BRIEF_DOCS = YES # If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the # (brief and detailed) documentation of class members so that constructors and @@ -590,7 +590,7 @@ SORT_BRIEF_DOCS = NO # detailed member documentation. # The default value is: NO. -SORT_MEMBERS_CTORS_1ST = NO +SORT_MEMBERS_CTORS_1ST = YES # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy # of group names into alphabetical order. If set to NO the group names will @@ -623,7 +623,7 @@ STRICT_PROTO_MATCHING = NO # list. This list is created by putting \todo commands in the documentation. # The default value is: YES. -GENERATE_TODOLIST = YES +GENERATE_TODOLIST = NO # The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test # list. This list is created by putting \test commands in the documentation. @@ -820,45 +820,24 @@ FILE_PATTERNS = *.c \ *.cxx \ *.cpp \ *.c++ \ - *.java \ - *.ii \ - *.ixx \ - *.ipp \ - *.i++ \ - *.inl \ - *.idl \ - *.ddl \ - *.odl \ *.h \ *.hh \ *.hxx \ *.hpp \ *.h++ \ - *.cs \ - *.d \ - *.php \ - *.php4 \ - *.php5 \ - *.phtml \ *.inc \ - *.m \ *.markdown \ *.md \ - *.mm \ *.dox \ *.py \ *.pyw \ *.f90 \ + *.F90 \ *.f95 \ *.f03 \ *.f08 \ *.f \ - *.for \ - *.tcl \ - *.vhd \ - *.vhdl \ - *.ucf \ - *.qsf + *.for # The RECURSIVE tag can be used to specify whether or not subdirectories should # be searched for input files as well. @@ -906,7 +885,7 @@ EXCLUDE_SYMBOLS = # that contain example code fragments that are included (see the \include # command). -EXAMPLE_PATH = +EXAMPLE_PATH = "@DOXYGEN_EXAMPLE_PATH@" # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and @@ -982,7 +961,7 @@ FILTER_SOURCE_PATTERNS = # (index.html). This can be useful if you have a project on for instance GitHub # and want to reuse the introduction page also for the doxygen output. -USE_MDFILE_AS_MAINPAGE = +USE_MDFILE_AS_MAINPAGE = "@DOXYGEN_USE_MDFILE_AS_MAINPAGE@" #--------------------------------------------------------------------------- # Configuration options related to source browsing @@ -995,7 +974,7 @@ USE_MDFILE_AS_MAINPAGE = # also VERBATIM_HEADERS is set to NO. # The default value is: NO. -SOURCE_BROWSER = NO +SOURCE_BROWSER = YES # Setting the INLINE_SOURCES tag to YES will include the body of functions, # classes and enums directly into the documentation. @@ -1249,7 +1228,7 @@ HTML_TIMESTAMP = NO # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_DYNAMIC_SECTIONS = NO +HTML_DYNAMIC_SECTIONS = YES # With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries # shown in the various tree structured indices initially; the user can expand @@ -1478,7 +1457,7 @@ DISABLE_INDEX = NO # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. -GENERATE_TREEVIEW = NO +GENERATE_TREEVIEW = YES # The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that # doxygen will group on one line in the generated HTML documentation. @@ -1666,7 +1645,7 @@ EXTRA_SEARCH_MAPPINGS = # If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output. # The default value is: YES. -GENERATE_LATEX = YES +GENERATE_LATEX = NO # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of @@ -2099,7 +2078,7 @@ INCLUDE_FILE_PATTERNS = # recursively expanded use the := operator instead of the = operator. # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. -PREDEFINED = +PREDEFINED = ALL_VORONOI_ACTIVE ALL_VTK_OUTPUT # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this # tag can be used to specify a list of macro names that should be expanded. The @@ -2331,7 +2310,7 @@ INCLUDED_BY_GRAPH = YES # The default value is: NO. # This tag requires that the tag HAVE_DOT is set to YES. -CALL_GRAPH = NO +CALL_GRAPH = YES # If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller # dependency graph for every global function or class method. @@ -2343,7 +2322,7 @@ CALL_GRAPH = NO # The default value is: NO. # This tag requires that the tag HAVE_DOT is set to YES. -CALLER_GRAPH = NO +CALLER_GRAPH = YES # If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical # hierarchy of all classes instead of a textual one. diff --git a/docs/classes/ALL.rst b/docs/classes/ALL.rst index e28b5ef..468be03 100644 --- a/docs/classes/ALL.rst +++ b/docs/classes/ALL.rst @@ -2,8 +2,8 @@ ALL === -.. doxygenclass:: ALL +.. doxygenclass:: ALL::ALL :members: :protected-members: :private-members: - :undoc-members: \ No newline at end of file + :undoc-members: diff --git a/docs/classes/ALL_Functions.rst b/docs/classes/ALL_Functions.rst index 2be459b..4e72896 100644 --- a/docs/classes/ALL_Functions.rst +++ b/docs/classes/ALL_Functions.rst @@ -2,6 +2,6 @@ ALL_Functions overview ====================== -.. doxygennamespace:: ALL_Functions +.. doxygennamespace:: ALL::Functions :project: ALL diff --git a/docs/classes/ALL_Histogram.rst b/docs/classes/ALL_Histogram.rst index 0c5dcbb..8e2fafa 100644 --- a/docs/classes/ALL_Histogram.rst +++ b/docs/classes/ALL_Histogram.rst @@ -2,7 +2,7 @@ ALL_Histogram ============= -.. doxygenclass:: ALL_Histogram_LB +.. doxygenclass:: ALL::Histogram_LB :members: :protected-members: :private-members: diff --git a/docs/classes/ALL_LB.rst b/docs/classes/ALL_LB.rst index 161213f..d065513 100644 --- a/docs/classes/ALL_LB.rst +++ b/docs/classes/ALL_LB.rst @@ -2,8 +2,8 @@ ALL_LB ============= -.. doxygenclass:: ALL_LB +.. doxygenclass:: ALL::LB :members: :protected-members: :private-members: - :undoc-members: \ No newline at end of file + :undoc-members: diff --git a/docs/classes/ALL_Point.rst b/docs/classes/ALL_Point.rst index 811bc90..76a95c0 100644 --- a/docs/classes/ALL_Point.rst +++ b/docs/classes/ALL_Point.rst @@ -2,8 +2,8 @@ ALL_Point ============= -.. doxygenclass:: ALL_Point +.. doxygenclass:: ALL::Point :members: :protected-members: :private-members: - :undoc-members: \ No newline at end of file + :undoc-members: diff --git a/docs/classes/ALL_Staggered.rst b/docs/classes/ALL_Staggered.rst index 4ee2c69..2889690 100644 --- a/docs/classes/ALL_Staggered.rst +++ b/docs/classes/ALL_Staggered.rst @@ -2,7 +2,7 @@ ALL_Staggered ============= -.. doxygenclass:: ALL_Staggered_LB +.. doxygenclass:: ALL::Staggered_LB :members: :protected-members: :private-members: diff --git a/docs/classes/ALL_Tensor.rst b/docs/classes/ALL_Tensor.rst index 615fd49..5386fc0 100644 --- a/docs/classes/ALL_Tensor.rst +++ b/docs/classes/ALL_Tensor.rst @@ -2,8 +2,8 @@ ALL_Tensor ========== -.. doxygenclass:: ALL_Tensor_LB +.. doxygenclass:: ALL::Tensor_LB :members: :private-members: :protected-members: - :undoc-members: \ No newline at end of file + :undoc-members: diff --git a/docs/classes/ALL_Voronoi.rst b/docs/classes/ALL_Voronoi.rst new file mode 100644 index 0000000..03bd940 --- /dev/null +++ b/docs/classes/ALL_Voronoi.rst @@ -0,0 +1,9 @@ +=========== +ALL_Voronoi +=========== + +.. doxygenclass:: ALL::Voronoi_LB + :members: + :private-members: + :protected-members: + :undoc-members: -- GitLab