Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
5973c74
PS-10068 Adding new KMIP C++ library and making it production ready
lukin-oleksiy Mar 23, 2026
aa36469
Fixes of review comments and other fixes
lukin-oleksiy Mar 25, 2026
84273f2
PS-10068 Adding new KMIP C++ library: docs update
lukin-oleksiy Mar 26, 2026
efc8784
PS-10068 Fix PR comment bfd0188
lukin-oleksiy Mar 27, 2026
8c261c9
PS-10068 Fix PR API refinement
lukin-oleksiy Mar 27, 2026
d272940
PS-10068 Fix PR API refinement
lukin-oleksiy Mar 28, 2026
b514338
PS-10068 Fix PR API refinement
lukin-oleksiy Mar 29, 2026
e1ab74b
PS-10068 Fix PR API refinement
lukin-oleksiy Mar 29, 2026
1cbec07
PS-10068 Fix PR API refinement
lukin-oleksiy Mar 29, 2026
9380e57
Fix KMIP locate paging and response batch-count validation
lukin-oleksiy Mar 29, 2026
9af3b02
PS-10068 Fix all code and test of KMIP v.2.0
lukin-oleksiy Mar 29, 2026
b9a111b
PS-10068 TLS verification added
lukin-oleksiy Mar 30, 2026
13346be
PS-10068 Log redaction added to prevent secrets leaks
lukin-oleksiy Mar 30, 2026
669d3e2
PS-10068 Better KMIP 2.0 attribute parsing
lukin-oleksiy Mar 30, 2026
d37bc1c
PS-10068 Yet another round of AI review and fixes
lukin-oleksiy Mar 30, 2026
98c1562
PS-10068 Final formatting
lukin-oleksiy Mar 30, 2026
5165b69
PS-10068 API update with better compatibility for kmippp->kmipclient …
lukin-oleksiy Mar 30, 2026
e6d216b
PS-10068 Fixing PR comments from AI review
lukin-oleksiy Mar 30, 2026
bd91dd4
PS-10068 Fixing PR comments from AI review (closing non-owning NetCli…
lukin-oleksiy Mar 30, 2026
5b76f9a
PS-10068 AI self-review and fixes
lukin-oleksiy Mar 31, 2026
85c943e
PS-10068 Fixes for Hashi Corp Vault
lukin-oleksiy Mar 31, 2026
1803b87
PS-10068 Fixes for missing "format" header in older GCC (11.04.00)
lukin-oleksiy Apr 1, 2026
f451013
PS-10068 Small fix of tests for Rortanix server
lukin-oleksiy Apr 2, 2026
71cbd62
PS-10068 Small fix of tests for Cosmic KMS server
lukin-oleksiy Apr 2, 2026
8d38973
PS-10068 Fix of Kmip move constructor problems found with Clang-20
lukin-oleksiy Apr 8, 2026
70d0014
PS-10068 Clang warning suppression should apply to legacy code only
lukin-oleksiy Apr 8, 2026
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
50 changes: 27 additions & 23 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ endif(POLICY CMP0048)

project(kmip C CXX)

enable_testing()

set(KMIP_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
option(WITH_ASAN "Enable AddressSanitizer for project build" OFF)
option(BUILD_KMIP_TESTS "Build and register libkmip/src/tests.c with CTest" OFF)
Expand All @@ -28,30 +30,32 @@ if(WITH_ASAN)
endif()
endif()

# Keep Clang-20+ builds quiet even when user environments inject strict warning flags.
if(CMAKE_C_COMPILER_ID MATCHES "Clang" AND CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 20)
add_compile_options(
$<$<COMPILE_LANGUAGE:C>:-Wno-c23-extensions>
$<$<COMPILE_LANGUAGE:C>:-Wno-invalid-utf8>
$<$<COMPILE_LANGUAGE:C>:-Wno-newline-eof>
$<$<COMPILE_LANGUAGE:C>:-Wno-sign-compare>
$<$<COMPILE_LANGUAGE:C>:-Wno-unused-parameter>
$<$<COMPILE_LANGUAGE:C>:-Wno-unused-variable>
)
endif()

if(CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 20)
add_compile_options(
$<$<COMPILE_LANGUAGE:CXX>:-Wno-invalid-utf8>
$<$<COMPILE_LANGUAGE:CXX>:-Wno-missing-field-initializers>
$<$<COMPILE_LANGUAGE:CXX>:-Wno-sign-compare>
$<$<COMPILE_LANGUAGE:CXX>:-Wno-unused-parameter>
$<$<COMPILE_LANGUAGE:CXX>:-Wno-unused-private-field>
$<$<COMPILE_LANGUAGE:CXX>:-Wno-unused-variable>
$<$<COMPILE_LANGUAGE:CXX>:-Wno-vla-cxx-extension>
)
endif()

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