Home | History | Annotate | Download | only in docs
      1 
      2 if (DOXYGEN_FOUND)
      3 if (LLVM_ENABLE_DOXYGEN)
      4   set(abs_top_srcdir ${LLVM_MAIN_SRC_DIR})
      5   set(abs_top_builddir ${LLVM_BINARY_DIR})
      6   
      7   if (HAVE_DOT)
      8     set(DOT ${LLVM_PATH_DOT})
      9   endif()
     10 
     11   if (LLVM_DOXYGEN_EXTERNAL_SEARCH)
     12     set(enable_searchengine "YES")
     13     set(searchengine_url "${LLVM_DOXYGEN_SEARCHENGINE_URL}")
     14     set(enable_server_based_search "YES")
     15     set(enable_external_search "YES")
     16     set(extra_search_mappings "${LLVM_DOXYGEN_SEARCH_MAPPINGS}")
     17   else()
     18     set(enable_searchengine "NO")
     19     set(searchengine_url "")
     20     set(enable_server_based_search "NO")
     21     set(enable_external_search "NO")
     22     set(extra_search_mappings "")
     23   endif()
     24   
     25   # If asked, configure doxygen for the creation of a Qt Compressed Help file.
     26   option(LLVM_ENABLE_DOXYGEN_QT_HELP
     27     "Generate a Qt Compressed Help file." OFF)
     28   if (LLVM_ENABLE_DOXYGEN_QT_HELP)
     29     set(LLVM_DOXYGEN_QCH_FILENAME "org.llvm.qch" CACHE STRING
     30       "Filename of the Qt Compressed help file")
     31     set(LLVM_DOXYGEN_QHP_NAMESPACE "org.llvm" CACHE STRING 
     32       "Namespace under which the intermediate Qt Help Project file lives")
     33     set(LLVM_DOXYGEN_QHP_CUST_FILTER_NAME "${PACKAGE_STRING}" CACHE STRING
     34       "See http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-filters")
     35     set(LLVM_DOXYGEN_QHP_CUST_FILTER_ATTRS "${PACKAGE_NAME},${PACKAGE_VERSION}" CACHE STRING
     36       "See http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes")
     37     find_program(LLVM_DOXYGEN_QHELPGENERATOR_PATH qhelpgenerator 
     38       DOC "Path to the qhelpgenerator binary")
     39     if (NOT LLVM_DOXYGEN_QHELPGENERATOR_PATH)
     40       message(FATAL_ERROR "Failed to find qhelpgenerator binary")
     41     endif()
     42 
     43     set(llvm_doxygen_generate_qhp "YES")
     44     set(llvm_doxygen_qch_filename "${LLVM_DOXYGEN_QCH_FILENAME}")
     45     set(llvm_doxygen_qhp_namespace "${LLVM_DOXYGEN_QHP_NAMESPACE}")
     46     set(llvm_doxygen_qhelpgenerator_path "${LLVM_DOXYGEN_QHELPGENERATOR_PATH}")
     47     set(llvm_doxygen_qhp_cust_filter_name "${LLVM_DOXYGEN_QHP_CUST_FILTER_NAME}")
     48     set(llvm_doxygen_qhp_cust_filter_attrs "${LLVM_DOXYGEN_QHP_CUST_FILTER_ATTRS}")
     49 
     50   else()
     51     set(llvm_doxygen_generate_qhp "NO")
     52     set(llvm_doxygen_qch_filename "")
     53     set(llvm_doxygen_qhp_namespace "")
     54     set(llvm_doxygen_qhelpgenerator_path "")
     55     set(llvm_doxygen_qhp_cust_filter_name "")
     56     set(llvm_doxygen_qhp_cust_filter_attrs "")
     57   endif()
     58   
     59   option(LLVM_DOXYGEN_SVG
     60     "Use svg instead of png files for doxygen graphs." OFF)
     61   if (LLVM_DOXYGEN_SVG)
     62     set(DOT_IMAGE_FORMAT "svg")
     63   else()
     64     set(DOT_IMAGE_FORMAT "png")
     65   endif()
     66 
     67   configure_file(${CMAKE_CURRENT_SOURCE_DIR}/doxygen.cfg.in
     68     ${CMAKE_CURRENT_BINARY_DIR}/doxygen.cfg @ONLY)
     69 
     70   set(abs_top_srcdir)
     71   set(abs_top_builddir)
     72   set(DOT)
     73   set(enable_searchengine)
     74   set(searchengine_url)
     75   set(enable_server_based_search)
     76   set(enable_external_search)
     77   set(extra_search_mappings)
     78   set(llvm_doxygen_generate_qhp)
     79   set(llvm_doxygen_qch_filename)
     80   set(llvm_doxygen_qhp_namespace)
     81   set(llvm_doxygen_qhelpgenerator_path)
     82   set(llvm_doxygen_qhp_cust_filter_name)
     83   set(llvm_doxygen_qhp_cust_filter_attrs)
     84   set(DOT_IMAGE_FORMAT)
     85 
     86   add_custom_target(doxygen-llvm
     87     COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/doxygen.cfg
     88     WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
     89     COMMENT "Generating llvm doxygen documentation." VERBATIM)
     90 
     91   if (LLVM_BUILD_DOCS)
     92     add_dependencies(doxygen doxygen-llvm)
     93   endif()
     94 
     95   if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
     96     install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/doxygen/html
     97       DESTINATION docs/html)
     98   endif()
     99 endif()
    100 endif()
    101 
    102 if (LLVM_ENABLE_SPHINX)
    103   if (SPHINX_FOUND)
    104     include(AddSphinxTarget)
    105     if (${SPHINX_OUTPUT_HTML})
    106       add_sphinx_target(html llvm)
    107     endif()
    108 
    109 
    110     if (${SPHINX_OUTPUT_MAN})
    111       add_sphinx_target(man llvm)
    112     endif()
    113 
    114   endif()
    115 endif()
    116 
    117 list(FIND LLVM_BINDINGS_LIST ocaml uses_ocaml)
    118 if( NOT uses_ocaml LESS 0 )
    119   set(doc_targets
    120         ocaml_llvm
    121         ocaml_llvm_all_backends
    122         ocaml_llvm_analysis
    123         ocaml_llvm_bitreader
    124         ocaml_llvm_bitwriter
    125         ocaml_llvm_executionengine
    126         ocaml_llvm_irreader
    127         ocaml_llvm_linker
    128         ocaml_llvm_target
    129         ocaml_llvm_ipo
    130         ocaml_llvm_passmgr_builder
    131         ocaml_llvm_scalar_opts
    132         ocaml_llvm_transform_utils
    133         ocaml_llvm_vectorize
    134       )
    135 
    136   foreach(llvm_target ${LLVM_TARGETS_TO_BUILD})
    137     list(APPEND doc_targets ocaml_llvm_${llvm_target})
    138   endforeach()
    139 
    140   set(odoc_files)
    141   foreach( doc_target ${doc_targets} )
    142     get_target_property(odoc_file ${doc_target} OCAML_ODOC)
    143     list(APPEND odoc_files -load ${odoc_file})
    144   endforeach()
    145 
    146   add_custom_target(ocaml_doc
    147     COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_CURRENT_BINARY_DIR}/ocamldoc/html
    148     COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/ocamldoc/html
    149     COMMAND ${OCAMLFIND} ocamldoc -d ${CMAKE_CURRENT_BINARY_DIR}/ocamldoc/html
    150                                   -sort -colorize-code -html ${odoc_files}
    151     COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/_ocamldoc/style.css
    152                                      ${CMAKE_CURRENT_BINARY_DIR}/ocamldoc/html)
    153 
    154   add_dependencies(ocaml_doc ${doc_targets})
    155 
    156   if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
    157     install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/ocamldoc/html
    158       DESTINATION docs/ocaml/html)
    159   endif()
    160 endif()
    161