CMakeLists.txt 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  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. --help-full ${CMake_BINARY_DIR}/Docs/${target}.docbook
  17. DEPENDS ${target}
  18. MAIN_DEPENDENCY ${dependency}
  19. )
  20. INSTALL_FILES(${CMAKE_MAN_DIR}/man1 FILES ${CMake_BINARY_DIR}/Docs/${target}.1)
  21. INSTALL_FILES(${CMAKE_DOC_DIR} FILES
  22. ${CMake_BINARY_DIR}/Docs/${target}.txt
  23. ${CMake_BINARY_DIR}/Docs/${target}.html
  24. ${CMake_BINARY_DIR}/Docs/${target}.docbook
  25. )
  26. SET(DOC_FILES ${DOC_FILES} ${CMake_BINARY_DIR}/Docs/${target}.txt)
  27. ENDIF(CMD)
  28. ENDMACRO(ADD_DOCS target dependency)
  29. # add the docs for the executables
  30. ADD_DOCS(ctest ${CMake_SOURCE_DIR}/Utilities/Doxygen/authors.txt)
  31. ADD_DOCS(cpack ${CMake_SOURCE_DIR}/Utilities/Doxygen/authors.txt)
  32. ADD_DOCS(ccmake ${CMake_SOURCE_DIR}/Utilities/Doxygen/authors.txt)
  33. ADD_DOCS(CMakeSetup ${CMake_SOURCE_DIR}/Utilities/Doxygen/doxyfile.in)
  34. # add the documentation for cmake itself
  35. GET_TARGET_PROPERTY(CMD cmake LOCATION)
  36. ADD_CUSTOM_COMMAND(
  37. OUTPUT ${CMake_BINARY_DIR}/Docs/cmake.txt
  38. COMMAND ${CMD}
  39. ARGS --copyright ${CMake_BINARY_DIR}/Docs/Copyright.txt
  40. --help-full ${CMake_BINARY_DIR}/Docs/cmake.txt
  41. --help-full ${CMake_BINARY_DIR}/Docs/cmake.html
  42. --help-full ${CMake_BINARY_DIR}/Docs/cmake.1
  43. --help-full ${CMake_BINARY_DIR}/Docs/cmake.docbook
  44. --help-policies ${CMake_BINARY_DIR}/Docs/cmake-policies.txt
  45. --help-policies ${CMake_BINARY_DIR}/Docs/cmake-policies.html
  46. --help-policies ${CMake_BINARY_DIR}/Docs/cmakepolicies.1
  47. --help-properties ${CMake_BINARY_DIR}/Docs/cmake-properties.txt
  48. --help-properties ${CMake_BINARY_DIR}/Docs/cmake-properties.html
  49. --help-properties ${CMake_BINARY_DIR}/Docs/cmakeprops.1
  50. --help-variables ${CMake_BINARY_DIR}/Docs/cmake-variables.txt
  51. --help-variables ${CMake_BINARY_DIR}/Docs/cmake-variables.html
  52. --help-variables ${CMake_BINARY_DIR}/Docs/cmakevars.1
  53. --help-modules ${CMake_BINARY_DIR}/Docs/cmake-modules.txt
  54. --help-modules ${CMake_BINARY_DIR}/Docs/cmake-modules.html
  55. --help-modules ${CMake_BINARY_DIR}/Docs/cmakemodules.1
  56. --help-commands ${CMake_BINARY_DIR}/Docs/cmake-commands.txt
  57. --help-commands ${CMake_BINARY_DIR}/Docs/cmake-commands.html
  58. --help-commands ${CMake_BINARY_DIR}/Docs/cmakecommands.1
  59. --help-compatcommands ${CMake_BINARY_DIR}/Docs/cmake-compatcommands.txt
  60. --help-compatcommands ${CMake_BINARY_DIR}/Docs/cmake-compatcommands.html
  61. --help-compatcommands ${CMake_BINARY_DIR}/Docs/cmakecompat.1
  62. DEPENDS cmake
  63. MAIN_DEPENDENCY ${CMake_SOURCE_DIR}/Utilities/Doxygen/authors.txt
  64. )
  65. INSTALL_FILES(${CMAKE_MAN_DIR}/man1 FILES
  66. ${CMake_BINARY_DIR}/Docs/cmake.1
  67. ${CMake_BINARY_DIR}/Docs/cmakecommands.1
  68. ${CMake_BINARY_DIR}/Docs/cmakecompat.1
  69. ${CMake_BINARY_DIR}/Docs/cmakeprops.1
  70. ${CMake_BINARY_DIR}/Docs/cmakepolicies.1
  71. ${CMake_BINARY_DIR}/Docs/cmakevars.1
  72. ${CMake_BINARY_DIR}/Docs/cmakemodules.1)
  73. INSTALL_FILES(${CMAKE_DOC_DIR} FILES
  74. ${CMake_BINARY_DIR}/Docs/cmake.txt
  75. ${CMake_BINARY_DIR}/Docs/cmake.html
  76. ${CMake_BINARY_DIR}/Docs/cmake.docbook
  77. ${CMake_BINARY_DIR}/Docs/cmake-policies.txt
  78. ${CMake_BINARY_DIR}/Docs/cmake-policies.html
  79. ${CMake_BINARY_DIR}/Docs/cmake-properties.txt
  80. ${CMake_BINARY_DIR}/Docs/cmake-properties.html
  81. ${CMake_BINARY_DIR}/Docs/cmake-variables.txt
  82. ${CMake_BINARY_DIR}/Docs/cmake-variables.html
  83. ${CMake_BINARY_DIR}/Docs/cmake-modules.txt
  84. ${CMake_BINARY_DIR}/Docs/cmake-modules.html
  85. ${CMake_BINARY_DIR}/Docs/cmake-commands.txt
  86. ${CMake_BINARY_DIR}/Docs/cmake-commands.html
  87. ${CMake_BINARY_DIR}/Docs/cmake-compatcommands.txt
  88. ${CMake_BINARY_DIR}/Docs/cmake-compatcommands.html )
  89. # Drive documentation generation.
  90. ADD_CUSTOM_TARGET(documentation ALL DEPENDS ${DOC_FILES} ${CMake_BINARY_DIR}/Docs/cmake.txt )