@@ -107,7 +107,7 @@ if(_recursiveFlag)
107107 endif ()
108108elseif (_frecursiveFlag)
109109 string (REGEX MATCH "-frecursive" output_test <string> "${CMAKE_Fortran_FLAGS} " )
110- if (NOT output_test)
110+ if (NOT output_test)
111111 set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -frecursive"
112112 CACHE STRING "Recursive flag must be set" FORCE )
113113 endif ()
@@ -368,8 +368,8 @@ endif()
368368# BLAS++ / LAPACK++
369369option (BLAS++ "Build BLAS++" OFF )
370370option (LAPACK++ "Build LAPACK++" OFF )
371-
372-
371+
372+
373373function (_display_cpp_implementation_msg name )
374374 string (TOLOWER ${name} name_lc)
375375 message (STATUS "${name} ++ enable" )
@@ -564,3 +564,69 @@ if (BLAS++)
564564 FILES_MATCHING REGEX "\\ .(h|hh)$"
565565 )
566566endif ()
567+
568+ # --------------------------------------------------
569+ # Generate MAN and/or HTML Documentation
570+ option (BUILD_HTML_DOCUMENTATION "Create and install the HTML based API
571+ documentation (requires Doxygen) - command: make html" OFF )
572+ option (BUILD_MAN_DOCUMENTATION "Create and install the MAN based documentation (requires Doxygen) - command: make man" OFF )
573+ message (STATUS "Build html documentation: ${BUILD_HTML_DOCUMENTATION} " )
574+ message (STATUS "Build man documentation: ${BUILD_MAN_DOCUMENTATION} " )
575+
576+ if (BUILD_HTML_DOCUMENTATION OR BUILD_MAN_DOCUMENTATION)
577+ find_package (Doxygen )
578+ if (NOT DOXYGEN_FOUND)
579+ message (WARNING "Doxygen is needed to build the documentation." )
580+
581+ else ()
582+
583+ set (DOXYGEN_PROJECT_BRIEF "LAPACK: Linear Algebra PACKage" )
584+ set (DOXYGEN_PROJECT_NUMBER ${LAPACK_VERSION} )
585+ set (DOXYGEN_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} /DOCS)
586+ set (PROJECT_LOGO ${CMAKE_CURRENT_SOURCE_DIR} /DOCS/lapack.png)
587+ set (DOXYGEN_OPTIMIZE_FOR_FORTRAN YES )
588+ set (DOXYGEN_SOURCE_BROWSER YES )
589+ set (DISTRIBUTE_GROUP_DOC YES )
590+ set (DOXYGEN_CREATE_SUBDIRS YES )
591+ set (DOXYGEN_SEPARATE_MEMBER_PAGES YES )
592+ set (DOXYGEN_EXTRACT_ALL YES )
593+ set (DOXYGEN_FILE_PATTERNS "*.f;*.c;*.h" )
594+ set (DOXYGEN_RECURSIVE YES )
595+ set (DOXYGEN_GENERATE_TREEVIEW YES )
596+ set (DOXYGEN_INTERACTIVE_SVG YES )
597+ set (DOXYGEN_QUIET YES )
598+ set (DOXYGEN_WARNINGS NO )
599+ set (DOXYGEN_GENERATE_HTML NO )
600+ set (DOXYGEN_GENERATE_MAN NO )
601+
602+
603+ if (BUILD_HTML_DOCUMENTATION)
604+ set (DOXYGEN_GENERATE_HTML YES )
605+ set (DOXYGEN_HTML_OUTPUT explore-html)
606+ set (DOXYGEN_INLINE_SOURCES YES )
607+ set (DOXYGEN_CALL_GRAPH YES )
608+ set (DOXYGEN_CALLER_GRAPH YES )
609+
610+ doxygen_add_docs (
611+ html
612+ ${PROJECT_SOURCE_DIR}
613+ COMMENT "Generating html LAPACK documentation (it will take some time... time to grab a coffee)"
614+ )
615+ endif ()
616+ if (BUILD_MAN_DOCUMENTATION)
617+ set (DOXYGEN_GENERATE_MAN YES )
618+ set (DOXYGEN_EXCLUDE SRC/VARIANTS)
619+ set (DOXYGEN_MAN_LINKS YES )
620+ set (DOXYGEN_INLINE_SOURCES NO )
621+ set (DOXYGEN_CALL_GRAPH NO )
622+ set (DOXYGEN_CALLER_GRAPH NO )
623+
624+ doxygen_add_docs (
625+ man
626+ ${PROJECT_SOURCE_DIR}
627+ COMMENT "Generating man LAPACK documentation"
628+ )
629+ endif ()
630+
631+ endif ()
632+ endif ()
0 commit comments