Commit 61ccebed authored by jan.koester's avatar jan.koester
Browse files

doc added

parent a766a939
Loading
Loading
Loading
Loading
+26 −1
Original line number Diff line number Diff line
project(libhtmlpp CXX)
cmake_minimum_required(VERSION 3.0)
cmake_minimum_required(VERSION 3.23)
enable_testing ()

set(LIBV "1.0.0")
set(Upstream_VERSION 1.0.0)

find_package(Doxygen QUIET)
if (DOXYGEN_FOUND)
    set(DOXYFILE_IN  ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in)
    set(DOXYFILE_OUT ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile)
    set(DOC_INSTALL_DIR "${CMAKE_INSTALL_DATAROOTDIR}/libhtmlpp/html")

    # Allow @LIBV@ substitution from your existing variable
    configure_file(${DOXYFILE_IN} ${DOXYFILE_OUT} @ONLY)

    add_custom_target(docs
        COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYFILE_OUT}
        WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
        COMMENT "Generating API documentation with Doxygen (sources: ${CMAKE_SOURCE_DIR}/src)"
        VERBATIM)

   install(
        DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/docs/html/"
        DESTINATION "${DOC_INSTALL_DIR}"
        COMPONENT docs
   )

else()
    message(STATUS "Doxygen not found; 'docs' target will not be available.")
endif()

if(NOT ${CMAKE_CXX_COMPILER} MATCHES "MSVC")
set(CMAKE_CXX_FLAGS "-fPIC -Wall")
endif()

Doxyfile.in

0 → 100644
+59 −0
Original line number Diff line number Diff line
# Doxygen configuration for libhtmlpp
# This file is configured by CMake (configure_file) to produce a Doxyfile.

PROJECT_NAME           = "libhtmlpp"
PROJECT_NUMBER         = "@LIBV@"

OUTPUT_DIRECTORY       = "@CMAKE_BINARY_DIR@/docs"
CREATE_SUBDIRS         = NO

# What to document
INPUT                  = "@CMAKE_SOURCE_DIR@/src" "@CMAKE_SOURCE_DIR@"
RECURSIVE              = YES
FILE_PATTERNS          = *.h *.hpp *.hh *.hxx *.c *.cc *.cpp *.cxx

# Extraction options
EXTRACT_ALL            = YES
EXTRACT_PRIVATE        = NO
EXTRACT_STATIC         = NO
EXTRACT_LOCAL_CLASSES  = YES
EXTRACT_ANON_NSPACES   = YES

# Warnings
WARNINGS               = YES
WARN_IF_UNDOCUMENTED   = NO
WARN_IF_DOC_ERROR      = YES
WARN_NO_PARAMDOC       = YES
WARN_LOGFILE           = "@CMAKE_BINARY_DIR@/docs/doxygen-warnings.log"

# Source browser
SOURCE_BROWSER         = YES
INLINE_SOURCES         = NO
STRIP_CODE_COMMENTS    = YES

# HTML output
GENERATE_HTML          = YES
HTML_OUTPUT            = html
SEARCHENGINE           = YES

# Disable LaTeX/PDF by default
GENERATE_LATEX         = NO

# Diagrams (optional, requires Graphviz "dot")
HAVE_DOT               = YES
DOT_IMAGE_FORMAT       = svg
DOT_TRANSPARENT        = YES
CALL_GRAPH             = NO
CALLER_GRAPH           = NO
CLASS_GRAPH            = YES
COLLABORATION_GRAPH    = NO
INCLUDE_GRAPH          = YES
INCLUDED_BY_GRAPH      = YES

# Misc
TAB_SIZE               = 4
JAVADOC_AUTOBRIEF      = YES
MULTILINE_CPP_IS_BRIEF = NO
OPTIMIZE_OUTPUT_FOR_C  = NO
OPTIMIZE_OUTPUT_JAVA   = NO
OPTIMIZE_FOR_FORTRAN   = NO