Skip to content

Commit

Permalink
Initial doxygen integration. Probably needs a bunch of work.
Browse files Browse the repository at this point in the history
  • Loading branch information
azonenberg committed Sep 20, 2024
1 parent 19bc636 commit 7058888
Show file tree
Hide file tree
Showing 4 changed files with 61 additions and 3 deletions.
7 changes: 5 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,13 @@ if(DEFINED ENV{VULKAN_SDK})
endif()
endif()

project(ngscopeclient)
project(ngscopeclient VERSION 0.1)

include(CTest)

# Configuration settings
set(BUILD_DOCS CACHE BOOL "Build the documentation")
set(BUILD_DOCS CACHE BOOL "Build end user documentation")
set(BUILD_DEVDOCS CACHE BOOL "Build developer documentation")
set(ANALYZE CACHE BOOL "Run static analysis on the code, requires cppcheck and clang-analyzer to be installed")
set(DISABLE_PCH CACHE BOOL "Disable precompiled headers as this may break certain configurations")

Expand Down Expand Up @@ -238,6 +239,8 @@ add_subdirectory("${PROJECT_SOURCE_DIR}/src/ngscopeclient")

add_subdirectory("${PROJECT_SOURCE_DIR}/src/nativefiledialog-extended")

add_subdirectory(devdoc)

# Unit tests
if(BUILD_TESTING)

Expand Down
20 changes: 20 additions & 0 deletions devdoc/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@

# Developer documentation
if(BUILD_DEVDOCS)
find_package(Doxygen
REQUIRED dot mscgen dia)

set(DOXYGEN_LOOKUP_CACHE_SIZE 2)

doxygen_add_docs(devdocs
${PROJECT_SOURCE_DIR}/devdoc
${PROJECT_SOURCE_DIR}/src/ngscopeclient
${PROJECT_SOURCE_DIR}/lib/log
${PROJECT_SOURCE_DIR}/lib/xptools
${PROJECT_SOURCE_DIR}/lib/scopehal
${PROJECT_SOURCE_DIR}/lib/scopeprotocols
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
COMMENT "Generate developer documentation"
)
endif()

35 changes: 35 additions & 0 deletions devdoc/Introduction.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
\mainpage

# Introduction

This is the developer documentation for ngscopeclient, libscopehal, and libscopeprotocols. If you plan to contribute to
the project or write your own instrument drivers or filter graph blocks, this should be your primary reference
material.

End user documentation is located at (link here).

\defgroup liblog Liblog (logging framework)

\defgroup libscopehal Libscopehal (drivers and core base classes)

\defgroup datamodel Waveform data model
\ingroup libscopehal

\defgroup drivers Instrument drivers
\ingroup libscopehal

\defgroup transports Transports (moves commands and data between drivers and physical hardware)
\ingroup libscopehal

\defgroup libscopeprotocols Libscopeprotocols (filter graph blocks)

\defgroup ethernet Ethernet protocol decodes
\ingroup libscopeprotocols

\defgroup math Basic math functions
\ingroup libscopeprotocols

\defgroup ngscopeclient Ngscopeclient (GUI)

\defgroup dialogs Dialog boxes
\ingroup ngscopeclient

0 comments on commit 7058888

Please sign in to comment.