diff --git a/CMakeLists.txt b/CMakeLists.txt index 69fba32d..9b4dd98c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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") @@ -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) diff --git a/devdoc/CMakeLists.txt b/devdoc/CMakeLists.txt new file mode 100644 index 00000000..af4e6106 --- /dev/null +++ b/devdoc/CMakeLists.txt @@ -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() + diff --git a/devdoc/Introduction.md b/devdoc/Introduction.md new file mode 100644 index 00000000..95315a82 --- /dev/null +++ b/devdoc/Introduction.md @@ -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 diff --git a/lib b/lib index 28c0d75c..811aa28c 160000 --- a/lib +++ b/lib @@ -1 +1 @@ -Subproject commit 28c0d75c62d7e7ac1f26e7df4dc997808a53f500 +Subproject commit 811aa28c5f35dab793a18835c6cbdd101720aca1