aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Krahl <me@robin-krahl.de>2019-01-16 19:17:17 +0100
committerRobin Krahl <me@robin-krahl.de>2019-01-16 19:17:17 +0100
commit2a4f2df2244018f525d23805f9fbdfa3f21b4570 (patch)
treeae146d63b8a4190847cd91944d790ace6c1d35d2
parent1f3da5c76acb20b2183ac52373ed3b0b63e1151e (diff)
downloadlibnitrokey-2a4f2df2244018f525d23805f9fbdfa3f21b4570.tar.gz
libnitrokey-2a4f2df2244018f525d23805f9fbdfa3f21b4570.tar.bz2
Add a doc target that generates C API documentation
Doxygen is used generate the C API documentation. The Doxygen configuration is stored in the Doxygen.in file (that is processed by CMake). To generate the documentation, run make doc in the build directory.
-rw-r--r--CMakeLists.txt9
-rw-r--r--Doxyfile.in17
2 files changed, 26 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1004baf..f7d98a3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -233,3 +233,12 @@ set (CPACK_RESOURCE_FILE_LICENSE
"${CMAKE_CURRENT_SOURCE_DIR}/LICENSE")
set (CPACK_PACKAGE_VERSION "${PROJECT_VERSION}")
include (CPack)
+
+# Build Doxygen documentation for the C API
+find_package(Doxygen)
+if (DOXYGEN_FOUND)
+ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY)
+ add_custom_target(doc ${DOXYGEN_EXECUTABLE} Doxyfile
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+ COMMENT "Generating C API documentation with Doxygen" VERBATIM)
+endif(DOXYGEN_FOUND)
diff --git a/Doxyfile.in b/Doxyfile.in
new file mode 100644
index 0000000..9211df1
--- /dev/null
+++ b/Doxyfile.in
@@ -0,0 +1,17 @@
+# For better readability, the documentation and default settings are removed
+# from this file. For more information on the Doxygen configuration, generate
+# a new Doxyfile using `doxygen -g` or have a look at the Doxygen manual at
+# http://www.doxygen.nl/manual/config.html
+#
+# This file is processed by CMake. To generate the documentation, run `make
+# doc` in the build directory.
+
+PROJECT_NAME = "@CMAKE_PROJECT_NAME@"
+PROJECT_NUMBER = "@PROJECT_VERSION@"
+PROJECT_BRIEF =
+OUTPUT_DIRECTORY = doc
+STRIP_FROM_PATH = @CMAKE_CURRENT_SOURCE_DIR@
+JAVADOC_AUTOBRIEF = YES
+OPTIMIZE_OUTPUT_FOR_C = YES
+WARN_NO_PARAMDOC = YES
+INPUT = @CMAKE_CURRENT_SOURCE_DIR@/NK_C_API.h