[doxygen] Added support for doxygen external search.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189509 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt
index dee97cc..4e4cf43 100644
--- a/docs/CMakeLists.txt
+++ b/docs/CMakeLists.txt
@@ -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)
diff --git a/docs/Makefile b/docs/Makefile
index 2608046..0723ac9 100644
--- a/docs/Makefile
+++ b/docs/Makefile
@@ -19,7 +19,11 @@
-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
diff --git a/docs/doxygen.cfg.in b/docs/doxygen.cfg.in
index ed9ffcb..497d4bf 100644
--- a/docs/doxygen.cfg.in
+++ b/docs/doxygen.cfg.in
@@ -1227,4 +1227,10 @@
# 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@