From 22a351d314c88b0aa181fc2444e8b41328a96955 Mon Sep 17 00:00:00 2001 From: Michael Gottesman Date: Wed, 28 Aug 2013 20:29:44 +0000 Subject: [PATCH] [doxygen] Added support for doxygen external search. llvm-svn: 189509 --- clang/docs/CMakeLists.txt | 27 ++++++++++++++++++++++++++- clang/docs/Makefile | 6 +++++- clang/docs/doxygen.cfg.in | 8 +++++++- 3 files changed, 38 insertions(+), 3 deletions(-) diff --git a/clang/docs/CMakeLists.txt b/clang/docs/CMakeLists.txt index dee97ccd4c23..4e4cf433a187 100644 --- a/clang/docs/CMakeLists.txt +++ b/clang/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/clang/docs/Makefile b/clang/docs/Makefile index 2608046f1f85..0723ac986be1 100644 --- a/clang/docs/Makefile +++ b/clang/docs/Makefile @@ -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 diff --git a/clang/docs/doxygen.cfg.in b/clang/docs/doxygen.cfg.in index ed9ffcb85a53..497d4bfdf647 100644 --- a/clang/docs/doxygen.cfg.in +++ b/clang/docs/doxygen.cfg.in @@ -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@