Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 28 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,13 +1,40 @@
cmake_minimum_required(VERSION 3.5.0)
cmake_minimum_required(VERSION 3.10.0)

if (POLICY CMP0048)
cmake_policy(SET CMP0048 NEW)
endif(POLICY CMP0048)

project(kmip C CXX)

enable_testing()

set(KMIP_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")

add_subdirectory(libkmip/src)
add_subdirectory(kmippp)
add_subdirectory(kmipcore)
add_subdirectory(kmipclient)

find_package(Doxygen)

option(BUILD_DOCS "Build API documentation with Doxygen" ${DOXYGEN_FOUND})

if(BUILD_DOCS)
if(NOT DOXYGEN_FOUND)
message(FATAL_ERROR "BUILD_DOCS is ON but Doxygen was not found.")
endif()

configure_file(Doxyfile ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile COPYONLY)

add_custom_target(doc
COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
COMMENT "Generating API documentation with Doxygen"
VERBATIM
)

# Make the 'doc' target depend on your build targets if necessary
# add_dependencies(doc your_library your_executable)
else()
message(STATUS "Doxygen not found or BUILD_DOCS=OFF, skipping documentation generation.")
endif()
36 changes: 36 additions & 0 deletions Doxyfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Project information
PROJECT_NAME = libkmip
PROJECT_NUMBER = 0.4.0
OUTPUT_DIRECTORY = generated-docs

# Input settings
INPUT = . # Scan the current directory for source files
RECURSIVE = YES

# Output settings
GENERATE_LATEX = NO
GENERATE_MAN = NO
GENERATE_RTF = NO
GENERATE_XML = NO
GENERATE_HTMLHELP = YES

# UML related settings
UML_LOOK = YES
HAVE_DOT = YES
DOT_PATH = /usr/bin/dot # Adjust this path to where your 'dot' executable is located
PLANTUML_JAR_PATH = /usr/share/java/plantuml.jar
PLANTUML_PREPROC = NO
PLANTUML_INCLUDE_PATH =
PLANTUML_CONFIG_FILE =
# Enable class diagram generation
CLASS_DIAGRAMS = YES
COLLABORATION_GRAPH = YES
UML_LIMIT_NUM_FIELDS = 50
TEMPLATE_RELATIONS = YES
MAX_DOT_GRAPH_DEPTH = 0
MAX_DOT_GRAPH_NODES = 0
HIDE_UNDOC_MEMBERS = NO
HIDE_VIRTUAL_FUNCTIONS = NO
SHOW_INCLUDE_FILES = YES
SHOW_USED_FILES = YES
SHOW_FILES = YES
Loading