about summary refs log tree commit diff homepage
diff options
context:
space:
mode:
authorDan Liew <daniel.liew@imperial.ac.uk>2017-09-29 10:03:37 +0100
committerDan Liew <daniel.liew@imperial.ac.uk>2017-10-04 22:28:52 +0100
commit4f72f52f09d75f942bd1f28bf03b5abd95d9627d (patch)
treec89cf0c6d43dba711e56c3d525fa865ce1160ac4
parentba660bfd6903ac909815fd0d8204e7bf03197ce8 (diff)
downloadklee-4f72f52f09d75f942bd1f28bf03b5abd95d9627d.tar.gz
[CMake] Add `clean_doxygen` rule to clean up doxygen build tree and
add this as a dependency of `clean_all`.
-rw-r--r--README-CMake.md1
-rw-r--r--docs/CMakeLists.txt14
2 files changed, 15 insertions, 0 deletions
diff --git a/README-CMake.md b/README-CMake.md
index a2f2da5f..5828e319 100644
--- a/README-CMake.md
+++ b/README-CMake.md
@@ -10,6 +10,7 @@ its autoconf/Makefile based build system.
   won't invoke the `clean_*` targets. It is advised that the `clean_all` target
   is used instead.
 * `clean_all` - Run all clean targets.
+* `clean_doxygen` - Clean doxygen build tree.
 * `clean_runtime` - Clean the runtime build tree.
 * `docs` - Build documentation
 * `edit_cache` - Show cmake/ccmake/cmake-gui interface for chaning configure options.
diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt
index 386298ce..f689e8a0 100644
--- a/docs/CMakeLists.txt
+++ b/docs/CMakeLists.txt
@@ -28,6 +28,20 @@ if (ENABLE_DOXYGEN)
       ${ADD_CUSTOM_COMMAND_USES_TERMINAL_ARG}
     )
     add_dependencies(docs doc-doxygen)
+
+    # FIXME: This variable should be used to set `OUTPUT_DIRECTORY` in
+    # doxygen.cfg
+    set(DOXYGEN_OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/doxygen")
+
+    # Add rule to clean doxygen documentation
+    add_custom_target(clean_doxygen
+      COMMAND
+        "${CMAKE_COMMAND}"
+        "-E"
+        "remove_directory"
+        "${DOXYGEN_OUTPUT_DIR}"
+    )
+    add_dependencies(clean_all clean_doxygen)
   else()
     message(WARNING "Doxygen not found. Can't build Doxygen documentation")
     set(ENABLE_DOXYGEN OFF