our_knp/examples/knp/autodoc/CMakeLists.txt
int 8f43927575 Initial import: KNP experiments (examples, viz, cats-dogs, reports)
examples/ is based on KasperskyLab/knp at 55470ed6 with local changes
to the mnist-learn altai/blifat models, cuda-backend CMake and model_loader.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 18:17:15 +03:00

191 lines
9.7 KiB
CMake

#[[
© 2024 AO Kaspersky Lab
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
]]
cmake_minimum_required(VERSION 3.25)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
project(knp-autodoc
VERSION "${KNP_VERSION}"
DESCRIPTION "Kaspersky Neuromorphic Platform Doxygen autogenerated documentation"
HOMEPAGE_URL "https://neuro.kaspersky.ru/neyromorfnye-tekhnologii/")
if (KNP_BUILD_DOCUMENTATION)
file(REAL_PATH "${CMAKE_SOURCE_DIR}/knp" SOURCE_ROOT_DIR)
message(DEBUG "Source root directory: ${SOURCE_ROOT_DIR}.")
include("doxygen")
message(STATUS "Generating documentation...")
foreach(_i
core-library base-framework devices-library meta-library
neuron-traits-library synapse-traits-library
backends/cpu/cpu-single-threaded-backend
backends/cpu/cpu-multi-threaded-backend
backends/cpu/cpu-library
backends/cpu/thread_pool
)
list(APPEND _strip_list "${SOURCE_ROOT_DIR}/${_i}/include")
endforeach()
list(APPEND _strip_list "${SOURCE_ROOT_DIR}")
# Additional tag.
set(DOXYGEN_ALIASES "license=@par License:" "kaspersky_support=@par Developers:")
set(DOXYGEN_BUILTIN_STL_SUPPORT YES)
set(DOXYGEN_CALL_GRAPH YES)
set(DOXYGEN_CALLER_GRAPH YES)
set(DOXYGEN_CASE_SENSE_NAMES YES)
set(DOXYGEN_CREATE_SUBDIRS YES)
set(DOXYGEN_DOCSET_PUBLISHER_NAME "AO Kaspersky Lab")
set(DOXYGEN_DOT_FONTPATH "")
set(DOXYGEN_DOT_IMAGE_FORMAT "svg")
set(DOXYGEN_DOT_UML_DETAILS YES)
set(DOXYGEN_ENABLED_SECTIONS
ADV BE CD CX FD FR XCU XSR XSI XSH XBD OB ML MON MSG PS PSC RPP SD SHM SIO SS TCT TEF TPI TPP TPS TRC TRI
TRL TSA TSH TSS TYM UP UU)
set(DOXYGEN_EXAMPLE_PATH "${CMAKE_SOURCE_DIR}/examples")
set(DOXYGEN_EXCLUDE_SYMBOLS *impl* *testing*)
set(DOXYGEN_EXCLUDE
"${CMAKE_CURRENT_SOURCE_DIR}/common_files"
"${CMAKE_CURRENT_SOURCE_DIR}/cmake"
"${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt")
set(DOXYGEN_EXCLUDE_PATTERNS *.descr* .descr */impl/* */tests/* common_files */cmake/* CMakeLists.txt impexp.h */knp/python_framework/* *.py)
set(DOXYGEN_EXTENSION_MAPPING "no_extension=C++")
set(DOXYGEN_EXTRACT_ALL NO)
set(DOXYGEN_GENERATE_HTML YES)
set(DOXYGEN_GENERATE_MAN YES)
set(DOXYGEN_GENERATE_TREEVIEW YES)
set(DOXYGEN_HTML_COLORSTYLE LIGHT)
set(DOXYGEN_HTML_COLORSTYLE_GAMMA 113)
set(DOXYGEN_HTML_COLORSTYLE_HUE 209)
set(DOXYGEN_HTML_COLORSTYLE_SAT 255)
set(DOXYGEN_HTML_DYNAMIC_MENUS YES)
set(DOXYGEN_HTML_DYNAMIC_SECTIONS YES)
set(DOXYGEN_HTML_TIMESTAMP YES)
set(DOXYGEN_IMAGE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/icons")
set(DOXYGEN_INTERACTIVE_SVG YES)
set(DOXYGEN_LAYOUT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/common_files/DoxygenLayout.xml")
set(DOXYGEN_MACRO_EXPANSION YES)
set(DOXYGEN_MATHJAX_RELPATH "https://cdn.jsdelivr.net/npm/mathjax@2")
set(DOXYGEN_NUM_PROC_THREADS 0)
set(DOXYGEN_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/doc_doxygen")
set(DOXYGEN_PROJECT_NAME "Kaspersky Neuromorphic Platform")
set(DOXYGEN_PROJECT_NUMBER "${PROJECT_VERSION}")
set(DOXYGEN_PROJECT_BRIEF "API Reference")
set(DOXYGEN_PROJECT_LOGO "${CMAKE_CURRENT_SOURCE_DIR}/icons/logo.svg")
set(DOXYGEN_PROJECT_ICON "${CMAKE_CURRENT_SOURCE_DIR}/icons/logo.svg")
set(DOXYGEN_RECURSIVE YES)
set(DOXYGEN_STRIP_FROM_INC_PATH ${_strip_list})
set(DOXYGEN_STRIP_FROM_PATH "${SOURCE_ROOT_DIR}")
set(DOXYGEN_TEMPLATE_RELATIONS YES)
set(DOXYGEN_TIMESTAMP YES)
set(DOXYGEN_TREEVIEW_WIDTH 335)
set(DOXYGEN_UML_LOOK YES)
set(DOXYGEN_USE_MATHJAX YES)
set(DOXYGEN_WARN_AS_ERROR FAIL_ON_WARNINGS)
set(DOXYGEN_WARN_NO_PARAMDOC YES)
set(DOXYGEN_SOURCE_BROWSER YES)
set(DOXYGEN_DOCSET_BUNDLE_ID "com.kaspersky.KNP")
set(DOXYGEN_DOCSET_PUBLISHER_ID "com.kaspersky.KNP.documentation")
set(DOXYGEN_DOCSET_PUBLISHER_NAME "AO Kaspersky Lab")
set(DOXYGEN_VERBATIM_HEADERS YES)
set(DOXYGEN_HTML_HEADER "${CMAKE_CURRENT_SOURCE_DIR}/common_files/header.html")
set(DOXYGEN_HTML_FOOTER "${CMAKE_CURRENT_SOURCE_DIR}/common_files/footer.html")
set(DOXYGEN_HTML_EXTRA_STYLESHEET
"${CMAKE_CURRENT_SOURCE_DIR}/common_files/fonts/Kaspersky_Sans_Display.css"
"${CMAKE_CURRENT_SOURCE_DIR}/common_files/styles/doxygen-awesome.css"
"${CMAKE_CURRENT_SOURCE_DIR}/common_files/styles/doxygen-awesome-sidebar-only-darkmode-toggle.css"
"${CMAKE_CURRENT_SOURCE_DIR}/common_files/styles/custom-alternative.css"
"${CMAKE_CURRENT_SOURCE_DIR}/common_files/styles/search-size-fix.css"
"${CMAKE_CURRENT_SOURCE_DIR}/common_files/styles/custom.css"
"${CMAKE_CURRENT_SOURCE_DIR}/common_files/styles/icons.css")
set(DOXYGEN_HTML_EXTRA_FILES
"${CMAKE_CURRENT_SOURCE_DIR}/icons/logo_dark.svg"
"${CMAKE_CURRENT_SOURCE_DIR}/common_files/fonts/Kaspersky_Sans_Display_Bold.eot"
"${CMAKE_CURRENT_SOURCE_DIR}/common_files/fonts/Kaspersky_Sans_Display_Bold.ttf"
"${CMAKE_CURRENT_SOURCE_DIR}/common_files/fonts/Kaspersky_Sans_Display_Bold.woff"
"${CMAKE_CURRENT_SOURCE_DIR}/common_files/fonts/Kaspersky_Sans_Display_Bold.woff2"
"${CMAKE_CURRENT_SOURCE_DIR}/common_files/fonts/Kaspersky_Sans_Display.css"
"${CMAKE_CURRENT_SOURCE_DIR}/common_files/fonts/Kaspersky_Sans_Display_ExtraBold.eot"
"${CMAKE_CURRENT_SOURCE_DIR}/common_files/fonts/Kaspersky_Sans_Display_ExtraBold.ttf"
"${CMAKE_CURRENT_SOURCE_DIR}/common_files/fonts/Kaspersky_Sans_Display_ExtraBold.woff"
"${CMAKE_CURRENT_SOURCE_DIR}/common_files/fonts/Kaspersky_Sans_Display_ExtraBold.woff2"
"${CMAKE_CURRENT_SOURCE_DIR}/common_files/fonts/Kaspersky_Sans_Display_Light.eot"
"${CMAKE_CURRENT_SOURCE_DIR}/common_files/fonts/Kaspersky_Sans_Display_Light.ttf"
"${CMAKE_CURRENT_SOURCE_DIR}/common_files/fonts/Kaspersky_Sans_Display_Light.woff"
"${CMAKE_CURRENT_SOURCE_DIR}/common_files/fonts/Kaspersky_Sans_Display_Light.woff2"
"${CMAKE_CURRENT_SOURCE_DIR}/common_files/fonts/Kaspersky_Sans_Display_Medium.eot"
"${CMAKE_CURRENT_SOURCE_DIR}/common_files/fonts/Kaspersky_Sans_Display_Medium.ttf"
"${CMAKE_CURRENT_SOURCE_DIR}/common_files/fonts/Kaspersky_Sans_Display_Medium.woff"
"${CMAKE_CURRENT_SOURCE_DIR}/common_files/fonts/Kaspersky_Sans_Display_Medium.woff2"
"${CMAKE_CURRENT_SOURCE_DIR}/common_files/fonts/Kaspersky_Sans_Display_Regular.eot"
"${CMAKE_CURRENT_SOURCE_DIR}/common_files/fonts/Kaspersky_Sans_Display_Regular.ttf"
"${CMAKE_CURRENT_SOURCE_DIR}/common_files/fonts/Kaspersky_Sans_Display_Regular.woff"
"${CMAKE_CURRENT_SOURCE_DIR}/common_files/fonts/Kaspersky_Sans_Display_Regular.woff2"
"${CMAKE_CURRENT_SOURCE_DIR}/common_files/fonts/Kaspersky_Sans_Display_SemiBold.eot"
"${CMAKE_CURRENT_SOURCE_DIR}/common_files/fonts/Kaspersky_Sans_Display_SemiBold.ttf"
"${CMAKE_CURRENT_SOURCE_DIR}/common_files/fonts/Kaspersky_Sans_Display_SemiBold.woff"
"${CMAKE_CURRENT_SOURCE_DIR}/common_files/fonts/Kaspersky_Sans_Display_SemiBold.woff2"
"${CMAKE_CURRENT_SOURCE_DIR}/common_files/js/doxygen-awesome-darkmode-toggle.js"
"${CMAKE_CURRENT_SOURCE_DIR}/common_files/js/doxygen-awesome-fragment-copy-button.js"
"${CMAKE_CURRENT_SOURCE_DIR}/common_files/js/doxygen-awesome-paragraph-link.js"
"${CMAKE_CURRENT_SOURCE_DIR}/common_files/js/toggle-alternative-theme.js"
"${CMAKE_CURRENT_SOURCE_DIR}/common_files/js/doxygen-awesome-interactive-toc.js"
"${CMAKE_CURRENT_SOURCE_DIR}/common_files/js/doxygen-awesome-tabs.js"
"${CMAKE_CURRENT_SOURCE_DIR}/common_files/js/icons-add-properties.js"
"${CMAKE_CURRENT_SOURCE_DIR}/common_files/icons/symbol-class.svg"
"${CMAKE_CURRENT_SOURCE_DIR}/common_files/icons/symbol-namespace.svg"
"${CMAKE_CURRENT_SOURCE_DIR}/common_files/icons/symbol-class_white.svg"
"${CMAKE_CURRENT_SOURCE_DIR}/common_files/icons/symbol-namespace_white.svg"
"${CMAKE_CURRENT_SOURCE_DIR}/common_files/icons/sync_on.png"
"${CMAKE_CURRENT_SOURCE_DIR}/common_files/icons/sync_off.png")
# @DOXYGEN_SRCDIR@/common_files/styles/decapitalize.css \
# @DOXYGEN_SRCDIR@/common_files/styles/doxygen-awesome-sidebar-only.css)
set(DOXYGEN_DOT_COMMON_ATTR "fontname=Helvetica,fontsize=10")
set(DOXYGEN_DOT_EDGE_ATTR "labelfontname=Helvetica,labelfontsize=10")
doxygen_add_docs(
"${PROJECT_NAME}"
"${SOURCE_ROOT_DIR}"
"${CMAKE_SOURCE_DIR}/examples/mnist-learn"
ALL
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
COMMENT "Generating API documentation with Doxygen")
# Automatically build doc.
add_dependencies(knp-core "${PROJECT_NAME}")
if (KNP_INSTALL)
set(COMPONENT_NAME "documentation")
install(DIRECTORY
# Trailing slash is necessary to copy only contents.
"${CMAKE_BINARY_DIR}/doc_doxygen/html/"
COMPONENT "${COMPONENT_NAME}"
DESTINATION "${CMAKE_INSTALL_DOCDIR}/html/reference")
endif()
else()
message(STATUS "Documentation generating disabled.")
endif()