[PATCH] D24935: [cmake] Support overriding remaining HTML doc install directories

Michał Górny via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 26 12:50:55 PDT 2016


mgorny created this revision.
mgorny added reviewers: delcypher, gottesmm, whitequark.
mgorny added a subscriber: llvm-commits.
Herald added subscribers: mgorny, beanz.

Support overriding the Doxygen & OCamldoc install directories, and provide a more FHS-compliant defaults for both of them. This extends r282240 that added this override for Sphinx-built documentation.

LLVM_INSTALL_DOXYGEN_HTML_DIR and LLVM_INSTALL_OCAMLDOC_HTML_DIR are added, to control the location where Doxygen-generated and OCamldoc-generated HTML docs are installed appropriately. They both specify CMake-style install paths, and therefore can either by relative to the install prefix or absolute.

The new defaults are subdirectories of share/doc/llvm, and replace the previous directories of 'docs/html' and 'docs/ocaml/html' that resulted in creating invalid '/usr/docs' that furthermore lacked proper namespacing for the LLVM package. The new defaults are consistent with the ones used for Sphinx HTML documentation, differing only in the last component. Since the 'html' subdirectory is already used for Sphinx docs, the 'doxygen-html' and 'ocaml-html' directories are used instead.


https://reviews.llvm.org/D24935

Files:
  CMakeLists.txt
  docs/CMake.rst
  docs/CMakeLists.txt

Index: docs/CMakeLists.txt
===================================================================
--- docs/CMakeLists.txt
+++ docs/CMakeLists.txt
@@ -93,8 +93,10 @@
   endif()
 
   if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
-    install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/doxygen/html
-      DESTINATION docs/html)
+    # ./ suffix is needed to copy the contents of html directory without
+    # appending html/ into LLVM_INSTALL_DOXYGEN_HTML_DIR.
+    install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/doxygen/html/.
+      DESTINATION "${LLVM_INSTALL_DOXYGEN_HTML_DIR}")
   endif()
 endif()
 endif()
@@ -154,7 +156,9 @@
   add_dependencies(ocaml_doc ${doc_targets})
 
   if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
-    install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/ocamldoc/html
-      DESTINATION docs/ocaml/html)
+    # ./ suffix is needed to copy the contents of html directory without
+    # appending html/ into LLVM_INSTALL_OCAMLDOC_HTML_DIR.
+    install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/ocamldoc/html/.
+      DESTINATION "${LLVM_INSTALL_OCAMLDOC_HTML_DIR}")
   endif()
 endif()
Index: docs/CMake.rst
===================================================================
--- docs/CMake.rst
+++ docs/CMake.rst
@@ -431,6 +431,11 @@
   Uses .svg files instead of .png files for graphs in the Doxygen output.
   Defaults to OFF.
 
+**LLVM_INSTALL_DOXYGEN_HTML_DIR**:STRING
+  The path to install Doxygen-generated HTML documentation to. This path can
+  either be absolute or relative to the CMAKE_INSTALL_PREFIX. Defaults to
+  `share/doc/llvm/doxygen-html`.
+
 **LLVM_ENABLE_SPHINX**:BOOL
   If specified, CMake will search for the ``sphinx-build`` executable and will make
   the ``SPHINX_OUTPUT_HTML`` and ``SPHINX_OUTPUT_MAN`` CMake options available.
@@ -461,6 +466,11 @@
   either be absolute or relative to the CMAKE_INSTALL_PREFIX. Defaults to
   `share/doc/llvm/html`.
 
+**LLVM_INSTALL_OCAMLDOC_HTML_DIR**:STRING
+  The path to install OCamldoc-generated HTML documentation to. This path can
+  either be absolute or relative to the CMAKE_INSTALL_PREFIX. Defaults to
+  `share/doc/llvm/ocaml-html`.
+
 **LLVM_CREATE_XCODE_TOOLCHAIN**:BOOL
   OS X Only: If enabled CMake will generate a target named
   'install-xcode-toolchain'. This target will create a directory at
Index: CMakeLists.txt
===================================================================
--- CMakeLists.txt
+++ CMakeLists.txt
@@ -456,6 +456,11 @@
 option (LLVM_ENABLE_SPHINX "Use Sphinx to generate llvm documentation." OFF)
 option (LLVM_ENABLE_OCAMLDOC "Build OCaml bindings documentation." ON)
 
+set(LLVM_INSTALL_DOXYGEN_HTML_DIR "share/doc/llvm/doxygen-html"
+    CACHE STRING "Doxygen-generated HTML documentation install directory")
+set(LLVM_INSTALL_OCAMLDOC_HTML_DIR "share/doc/llvm/ocaml-html"
+    CACHE STRING "OCamldoc-generated HTML documentation install directory")
+
 option (LLVM_BUILD_EXTERNAL_COMPILER_RT
   "Build compiler-rt as an external project." OFF)
 


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D24935.72541.patch
Type: text/x-patch
Size: 2952 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160926/3bdb24ab/attachment.bin>


More information about the llvm-commits mailing list