[doxygen] Added support for doxygen external search.
authorMichael Gottesman <mgottesman@apple.com>
Wed, 28 Aug 2013 20:28:35 +0000 (20:28 +0000)
committerMichael Gottesman <mgottesman@apple.com>
Wed, 28 Aug 2013 20:28:35 +0000 (20:28 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189507 91177308-0d34-0410-b5e6-96231b3b80d8

cmake/config-ix.cmake
docs/CMakeLists.txt
docs/Makefile
docs/doxygen.cfg.in

index 3f57e23a6f35420a3d9e109790f16c5d42a8959e..1f82557136d734ca4d853d0725250f3ac3ce1bdb 100755 (executable)
@@ -473,6 +473,8 @@ if (LLVM_ENABLE_DOXYGEN)
     if (LLVM_BUILD_DOCS)
       add_custom_target(doxygen ALL)
     endif()
+    option(DOXYGEN_EXTERNAL_SEARCH "Enable doxygen external search." OFF)
+    set(DOXYGEN_SEARCH_MAPPINGS "" CACHE STRING "Doxygen Search Mappings")
   endif()
 else()
   message(STATUS "Doxygen disabled.")
index 7f1a51f17a438695d418ec814e629f059a5819aa..7e9cc6beeab5a7e51d90f2b0cf755188df092d75 100644 (file)
@@ -7,6 +7,31 @@ if (LLVM_ENABLE_DOXYGEN)
   if (HAVE_DOT)
     set(DOT ${LLVM_PATH_DOT})
   endif()
+
+  if (DOXYGEN_EXTERNAL_SEARCH)
+    set(SEARCHENGINE "YES")
+    set(SERVER_BASED_SEARCH "YES")
+    set(EXTERNAL_SEARCH "YES")
+
+    set(EXTRA_SEARCH_MAPPINGS "")
+    foreach(NameAndValue ${DOXYGEN_SEARCH_MAPPINGS})
+      # Strip leading spaces
+      string(REGEX REPLACE "^[ ]+" "" NameAndValue ${NameAndValue})
+      # Find variable name
+      string(REGEX MATCH "^[^=]+" Name ${NameAndValue})
+      # Find the value
+      string(REPLACE "${Name}=" "" Value ${NameAndValue})
+      # Set the variable
+      if (NOT ${Name} EQUALS llvm)
+       set(EXTRA_SEARCH_MAPPINGS "${EXTRA_SEARCH_MAPPINGS} ${LLVM_BINARY_DIR}/${NameAndValue}")
+      endif()
+    endforeach()
+  else()
+    set(SEARCHENGINE "NO")
+    set(SERVER_BASED_SEARCH "NO")
+    set(EXTERNAL_SEARCH "NO")
+    set(EXTRA_SEARCH_MAPPINGS "")
+  endif()
   
   configure_file(${CMAKE_CURRENT_SOURCE_DIR}/doxygen.cfg.in
     ${CMAKE_CURRENT_BINARY_DIR}/doxygen.cfg @ONLY)
index 122c4b834bba47009bb6f35d5d467fc6472d257a..e830a3235adac09206a9d3f8787c0af65ed4bd4e 100644 (file)
@@ -19,7 +19,11 @@ $(PROJ_OBJ_DIR)/doxygen.cfg: doxygen.cfg.in
          -e 's/@abs_top_srcdir@/../g' \
          -e 's/@DOT@/dot/g' \
          -e 's/@PACKAGE_VERSION@/mainline/' \
-         -e 's/@abs_top_builddir@/../g' > $@
+         -e 's/@abs_top_builddir@/../g' \
+         -e 's/@enable_searchengine@/NO/g' \
+          -e 's/@enable_server_based_search@/NO/g' \
+         -e 's/@enable_external_search@/NO/g' \
+         -e 's/@extra_search_mappings@/NO/g' > $@
 endif
 
 include $(LEVEL)/Makefile.common
index 20de0773f403acdb0bf782712f7a5002ce57fc21..25614cd6700db8c266cca5da1536291f5b76820e 100644 (file)
@@ -1,3 +1,4 @@
+
 # Doxyfile 1.7.1
 
 # This file describes the settings to be used by the documentation system
@@ -1068,7 +1069,7 @@ FORMULA_TRANSPARENT    = YES
 # typically be disabled. For large projects the javascript based search engine
 # can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution.
 
-SEARCHENGINE           = NO
+SEARCHENGINE           = @enable_searchengine@
 
 # When the SERVER_BASED_SEARCH tag is enabled the search engine will be
 # implemented using a PHP enabled web server instead of at the web client
@@ -1078,7 +1079,13 @@ SEARCHENGINE           = NO
 # full text search. The disadvances is that it is more difficult to setup
 # and does not have live searching capabilities.
 
-SERVER_BASED_SEARCH    = NO
+SERVER_BASED_SEARCH    = @enable_server_based_search@
+
+EXTERNAL_SEARCH        = @enable_external_search@
+
+EXTERNAL_SEARCH_ID     = llvm
+
+EXTRA_SEARCH_MAPPINGS  = @extra_search_mappings@
 
 #---------------------------------------------------------------------------
 # configuration options related to the LaTeX output