You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

89 lines
3.9 KiB

  1. SUBDIRS(Doxygen KWStyle)
  2. MAKE_DIRECTORY(${CMake_BINARY_DIR}/Docs)
  3. # Add a documentation target.
  4. SET(DOC_FILES "")
  5. MACRO(ADD_DOCS target dependency)
  6. # Generate documentation for "ctest" executable.
  7. GET_TARGET_PROPERTY(CMD ${target} LOCATION)
  8. # only generate the documentation if the target is actually built
  9. IF(CMD)
  10. ADD_CUSTOM_COMMAND(
  11. OUTPUT ${CMake_BINARY_DIR}/Docs/${target}.txt
  12. COMMAND ${CMD}
  13. ARGS --help-full ${CMake_BINARY_DIR}/Docs/${target}.txt
  14. --help-full ${CMake_BINARY_DIR}/Docs/${target}.html
  15. --help-full ${CMake_BINARY_DIR}/Docs/${target}.1
  16. DEPENDS ${target}
  17. MAIN_DEPENDENCY ${dependency}
  18. )
  19. INSTALL_FILES(${CMAKE_MAN_DIR}/man1 FILES ${CMake_BINARY_DIR}/Docs/${target}.1)
  20. INSTALL_FILES(${CMAKE_DOC_DIR} FILES
  21. ${CMake_BINARY_DIR}/Docs/${target}.txt
  22. ${CMake_BINARY_DIR}/Docs/${target}.html
  23. )
  24. SET(DOC_FILES ${DOC_FILES} ${CMake_BINARY_DIR}/Docs/${target}.txt)
  25. ENDIF(CMD)
  26. ENDMACRO(ADD_DOCS target dependency)
  27. # add the docs for the executables
  28. ADD_DOCS(ctest ${CMake_SOURCE_DIR}/Utilities/Doxygen/authors.txt)
  29. ADD_DOCS(cpack ${CMake_SOURCE_DIR}/Utilities/Doxygen/authors.txt)
  30. ADD_DOCS(ccmake ${CMake_SOURCE_DIR}/Utilities/Doxygen/authors.txt)
  31. ADD_DOCS(CMakeSetup ${CMake_SOURCE_DIR}/Utilities/Doxygen/doxyfile.in)
  32. # add the documentation for cmake itself
  33. GET_TARGET_PROPERTY(CMD cmake LOCATION)
  34. ADD_CUSTOM_COMMAND(
  35. OUTPUT ${CMake_BINARY_DIR}/Docs/cmake.txt
  36. COMMAND ${CMD}
  37. ARGS --copyright ${CMake_BINARY_DIR}/Docs/Copyright.txt
  38. --help-full ${CMake_BINARY_DIR}/Docs/cmake.txt
  39. --help-full ${CMake_BINARY_DIR}/Docs/cmake.html
  40. --help-full ${CMake_BINARY_DIR}/Docs/cmake.1
  41. --help-properties ${CMake_BINARY_DIR}/Docs/cmake-properties.txt
  42. --help-properties ${CMake_BINARY_DIR}/Docs/cmake-properties.html
  43. --help-properties ${CMake_BINARY_DIR}/Docs/cmakeprops.1
  44. --help-variables ${CMake_BINARY_DIR}/Docs/cmake-variables.txt
  45. --help-variables ${CMake_BINARY_DIR}/Docs/cmake-variables.html
  46. --help-variables ${CMake_BINARY_DIR}/Docs/cmakevars.1
  47. --help-modules ${CMake_BINARY_DIR}/Docs/cmake-modules.txt
  48. --help-modules ${CMake_BINARY_DIR}/Docs/cmake-modules.html
  49. --help-modules ${CMake_BINARY_DIR}/Docs/cmakemodules.1
  50. --help-commands ${CMake_BINARY_DIR}/Docs/cmake-commands.txt
  51. --help-commands ${CMake_BINARY_DIR}/Docs/cmake-commands.html
  52. --help-commands ${CMake_BINARY_DIR}/Docs/cmakecommands.1
  53. --help-compatcommands ${CMake_BINARY_DIR}/Docs/cmake-compatcommands.txt
  54. --help-compatcommands ${CMake_BINARY_DIR}/Docs/cmake-compatcommands.html
  55. --help-compatcommands ${CMake_BINARY_DIR}/Docs/cmakecompat.1
  56. DEPENDS cmake
  57. MAIN_DEPENDENCY ${CMake_SOURCE_DIR}/Utilities/Doxygen/authors.txt
  58. )
  59. INSTALL_FILES(${CMAKE_MAN_DIR}/man1 FILES
  60. ${CMake_BINARY_DIR}/Docs/cmake.1
  61. ${CMake_BINARY_DIR}/Docs/cmakecommands.1
  62. ${CMake_BINARY_DIR}/Docs/cmakecompat.1
  63. ${CMake_BINARY_DIR}/Docs/cmakeprops.1
  64. ${CMake_BINARY_DIR}/Docs/cmakevars.1
  65. ${CMake_BINARY_DIR}/Docs/cmakemodules.1)
  66. INSTALL_FILES(${CMAKE_DOC_DIR} FILES
  67. ${CMake_BINARY_DIR}/Docs/cmake.txt
  68. ${CMake_BINARY_DIR}/Docs/cmake.html
  69. ${CMake_BINARY_DIR}/Docs/cmake-properties.txt
  70. ${CMake_BINARY_DIR}/Docs/cmake-properties.html
  71. ${CMake_BINARY_DIR}/Docs/cmake-variables.txt
  72. ${CMake_BINARY_DIR}/Docs/cmake-variables.html
  73. ${CMake_BINARY_DIR}/Docs/cmake-modules.txt
  74. ${CMake_BINARY_DIR}/Docs/cmake-modules.html
  75. ${CMake_BINARY_DIR}/Docs/cmake-commands.txt
  76. ${CMake_BINARY_DIR}/Docs/cmake-commands.html
  77. ${CMake_BINARY_DIR}/Docs/cmake-compatcommands.txt
  78. ${CMake_BINARY_DIR}/Docs/cmake-compatcommands.html )
  79. # Drive documentation generation.
  80. ADD_CUSTOM_TARGET(documentation ALL DEPENDS ${DOC_FILES} ${CMake_BINARY_DIR}/Docs/cmake.txt )