Home | History | Annotate | Download | only in doc
      1 project(EigenDoc)
      2 
      3 set_directory_properties(PROPERTIES EXCLUDE_FROM_ALL TRUE)
      4 
      5 project(EigenDoc)
      6 
      7 if(CMAKE_COMPILER_IS_GNUCXX)
      8   if(CMAKE_SYSTEM_NAME MATCHES Linux)
      9     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O1 -g1")
     10   endif(CMAKE_SYSTEM_NAME MATCHES Linux)
     11 endif(CMAKE_COMPILER_IS_GNUCXX)
     12 
     13 option(EIGEN_INTERNAL_DOCUMENTATION "Build internal documentation" OFF)
     14 
     15 
     16 # Set some Doxygen flags
     17 set(EIGEN_DOXY_PROJECT_NAME             "Eigen")
     18 set(EIGEN_DOXY_OUTPUT_DIRECTORY_SUFFIX  "")
     19 set(EIGEN_DOXY_INPUT                    "\"${Eigen_SOURCE_DIR}/Eigen\" \"${Eigen_SOURCE_DIR}/doc\"")
     20 set(EIGEN_DOXY_HTML_COLORSTYLE_HUE      "220")
     21 set(EIGEN_DOXY_TAGFILES                 "")
     22 if(EIGEN_INTERNAL_DOCUMENTATION)
     23   set(EIGEN_DOXY_INTERNAL                 "YES")
     24 else(EIGEN_INTERNAL_DOCUMENTATION)
     25   set(EIGEN_DOXY_INTERNAL                 "NO")
     26 endif(EIGEN_INTERNAL_DOCUMENTATION)
     27 
     28 configure_file(
     29   ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in
     30   ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
     31 )
     32 
     33 set(EIGEN_DOXY_PROJECT_NAME             "Eigen-unsupported")
     34 set(EIGEN_DOXY_OUTPUT_DIRECTORY_SUFFIX  "/unsupported")
     35 set(EIGEN_DOXY_INPUT                    "\"${Eigen_SOURCE_DIR}/unsupported/Eigen\" \"${Eigen_SOURCE_DIR}/unsupported/doc\"")
     36 set(EIGEN_DOXY_HTML_COLORSTYLE_HUE      "0")
     37 # set(EIGEN_DOXY_TAGFILES                 "\"${Eigen_BINARY_DIR}/doc/eigen.doxytags =../\"")
     38 set(EIGEN_DOXY_TAGFILES                 "")
     39 
     40 configure_file(
     41   ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in
     42   ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile-unsupported
     43 )
     44 
     45 configure_file(
     46   ${CMAKE_CURRENT_SOURCE_DIR}/eigendoxy_header.html.in
     47   ${CMAKE_CURRENT_BINARY_DIR}/eigendoxy_header.html
     48 )
     49 
     50 configure_file(
     51   ${CMAKE_CURRENT_SOURCE_DIR}/eigendoxy_footer.html.in
     52   ${CMAKE_CURRENT_BINARY_DIR}/eigendoxy_footer.html
     53 )
     54 
     55 configure_file(
     56   ${CMAKE_CURRENT_SOURCE_DIR}/eigendoxy_layout.xml.in
     57   ${CMAKE_CURRENT_BINARY_DIR}/eigendoxy_layout.xml
     58 )
     59 
     60 configure_file(
     61   ${Eigen_SOURCE_DIR}/unsupported/doc/eigendoxy_layout.xml.in
     62   ${Eigen_BINARY_DIR}/doc/unsupported/eigendoxy_layout.xml
     63 )
     64 
     65 set(examples_targets "")
     66 set(snippets_targets "")
     67 
     68 add_definitions("-DEIGEN_MAKING_DOCS")
     69 add_custom_target(all_examples)
     70 
     71 add_subdirectory(examples)
     72 add_subdirectory(special_examples)
     73 add_subdirectory(snippets)
     74 
     75 add_custom_target(
     76   doc-eigen-prerequisites
     77   ALL
     78   COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/html/
     79   COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/eigen_navtree_hacks.js           ${CMAKE_CURRENT_BINARY_DIR}/html/
     80   COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/Eigen_Silly_Professor_64x64.png  ${CMAKE_CURRENT_BINARY_DIR}/html/
     81   COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/ftv2pnode.png                    ${CMAKE_CURRENT_BINARY_DIR}/html/
     82   COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/ftv2node.png                     ${CMAKE_CURRENT_BINARY_DIR}/html/
     83   COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/AsciiQuickReference.txt          ${CMAKE_CURRENT_BINARY_DIR}/html/
     84   WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
     85 )
     86 
     87 add_custom_target(
     88   doc-unsupported-prerequisites
     89   ALL
     90   COMMAND ${CMAKE_COMMAND} -E make_directory ${Eigen_BINARY_DIR}/doc/html/unsupported
     91   COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/eigen_navtree_hacks.js           ${CMAKE_CURRENT_BINARY_DIR}/html/unsupported/
     92   COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/Eigen_Silly_Professor_64x64.png  ${CMAKE_CURRENT_BINARY_DIR}/html/unsupported/
     93   COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/ftv2pnode.png                    ${CMAKE_CURRENT_BINARY_DIR}/html/unsupported/
     94   COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/ftv2node.png                     ${CMAKE_CURRENT_BINARY_DIR}/html/unsupported/
     95   WORKING_DIRECTORY ${Eigen_BINARY_DIR}/doc
     96 )
     97 
     98 add_dependencies(doc-eigen-prerequisites all_snippets all_examples)
     99 add_dependencies(doc-unsupported-prerequisites unsupported_snippets unsupported_examples)
    100 
    101 add_custom_target(doc ALL
    102   COMMAND doxygen
    103   COMMAND doxygen Doxyfile-unsupported
    104   COMMAND ${CMAKE_COMMAND} -E copy ${Eigen_BINARY_DIR}/doc/html/group__TopicUnalignedArrayAssert.html ${Eigen_BINARY_DIR}/doc/html/TopicUnalignedArrayAssert.html
    105   COMMAND ${CMAKE_COMMAND} -E rename html eigen-doc
    106   COMMAND ${CMAKE_COMMAND} -E remove eigen-doc/eigen-doc.tgz
    107   COMMAND ${CMAKE_COMMAND} -E tar cfz eigen-doc.tgz eigen-doc
    108   COMMAND ${CMAKE_COMMAND} -E rename eigen-doc.tgz eigen-doc/eigen-doc.tgz
    109   COMMAND ${CMAKE_COMMAND} -E rename eigen-doc html
    110   WORKING_DIRECTORY ${Eigen_BINARY_DIR}/doc)
    111 
    112 add_dependencies(doc doc-eigen-prerequisites doc-unsupported-prerequisites)
    113