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

docs/CMakeLists.txt
docs/Makefile
docs/doxygen.cfg.in

index dee97ccd4c2345556eb60cd6ff4f8ab3deed7fa2..4e4cf433a18787a5bed03117bd4f901bb7a16f5c 100644 (file)
@@ -1,13 +1,38 @@
 
 if (DOXYGEN_FOUND)
 if (LLVM_ENABLE_DOXYGEN)
-  set(abs_srcdir ${LLVM_MAIN_SRC_DIR})
+  set(abs_srcdir ${CMAKE_CURRENT_SOURCE_DIR})
   set(abs_builddir ${LLVM_BINARY_DIR})
 
   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 clang)
+       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)
   set(abs_srcdir)
index 2608046f1f85a1b2e0e3a2a62b71e862e54299b8..0723ac986be1cea61ccaa75b11862c526ee4b359 100644 (file)
@@ -19,7 +19,11 @@ $(PROJ_OBJ_DIR)/doxygen.cfg: doxygen.cfg.in
          -e 's/@abs_srcdir@/./g' \
          -e 's/@DOT@/dot/g' \
          -e 's/@PACKAGE_VERSION@/mainline/' \
-         -e 's/@abs_builddir@/./g' > $@
+         -e 's/@abs_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 $(CLANG_LEVEL)/Makefile
index ed9ffcb85a53eea8f7bf829e56e6a41aa00598b0..497d4bfdf6471ee2b357e0abdea13d117d920cbf 100644 (file)
@@ -1227,4 +1227,10 @@ DOT_CLEANUP            = YES
 # The SEARCHENGINE tag specifies whether or not a search engine should be 
 # used. If set to NO the values of all tags below this one will be ignored.
 
-SEARCHENGINE           = NO
+SEARCHENGINE           = @enable_server_based_search@
+
+EXTERNAL_SEARCH        = @enable_external_search@
+
+EXTERNAL_SEARCH_ID     = clang
+
+EXTRA_SEARCH_MAPPINGS  = @extra_search_mappings@