docs: cmake build
[awesomized/libmemcached] / docs / CMakeLists.txt
diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt
new file mode 100644 (file)
index 0000000..31f30ca
--- /dev/null
@@ -0,0 +1,59 @@
+find_package(Sphinx)
+
+if(SPHINX_EXECUTABLE)
+
+    if(NOT DEFINED SPHINX_THEME)
+        set(SPHINX_THEME sphinx_rtd_theme)
+        set(SPHINX_THEME_OPTIONS "'collapse_navigation':False, 'navigation_depth':2, 'titles_only':False, 'includehidden':False")
+    endif()
+
+    if(NOT DEFINED SPHINX_THEME_DIR)
+        set(SPHINX_THEME_DIR)
+    endif()
+
+    if(NOT DEFINED SPHINX_OPTIONS)
+        set(SPHINX_OPTIONS)
+    endif()
+
+    set(SPHINX_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/source")
+
+    # configured documentation tools and intermediate build results
+    set(SPHINX_BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}")
+
+    # Sphinx cache with pickled ReST documents
+    set(SPHINX_CACHE_DIR "${SPHINX_BUILD_DIR}/_doctrees")
+
+    # HTML output directory
+    set(SPHINX_HTML_DIR "${SPHINX_BUILD_DIR}/html")
+
+    # MAN output directory
+    set(SPHINX_MAN_DIR "${SPHINX_BUILD_DIR}/man")
+
+    configure_file(
+            "${SPHINX_SOURCE_DIR}/conf.py.in"
+            "${SPHINX_BUILD_DIR}/conf.py"
+            @ONLY)
+
+    add_custom_target("docs"
+            ${SPHINX_EXECUTABLE}
+            -q -a -b html
+            -c "${SPHINX_BUILD_DIR}"
+            -d "${SPHINX_CACHE_DIR}"
+            ${SPHINX_OPTIONS}
+            "${SPHINX_SOURCE_DIR}"
+            "${SPHINX_HTML_DIR}"
+            BYPRODUCTS ${SPHINX_HTML_DIR}
+            COMMENT "Build HTML documentation with Sphinx")
+    #list(APPEND ADDITIONAL_CLEAN_FILES ${SPHINX_CACHE_DIR} ${SPHINX_HTML_DIR})
+    add_custom_target(man
+            ${SPHINX_EXECUTABLE}
+            -q -a -b man
+            -c "${SPHINX_BUILD_DIR}"
+            -d "${SPHINX_CACHE_DIR}"
+            ${SPHINX_OPTIONS}
+            "${SPHINX_SOURCE_DIR}"
+            "${SPHINX_MAN_DIR}"
+            BYPRODUCTS ${SPHINX_MAN_DIR}
+            COMMENT "Build manpage documentation with Sphinx")
+    #list(APPEND ADDITIONAL_CLEAN_FILES ${SPHINX_CACHE_DIR} ${SPHINX_MAN_DIR})
+endif()