CMakeLists.txt 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. # Distributed under the OSI-approved BSD 3-Clause License. See accompanying
  2. # file Copyright.txt or https://cmake.org/licensing for details.
  3. if(NOT CMake_SOURCE_DIR)
  4. set(CMakeDeveloperReference_STANDALONE 1)
  5. cmake_minimum_required(VERSION 3.1 FATAL_ERROR)
  6. get_filename_component(tmp "${CMAKE_CURRENT_SOURCE_DIR}" PATH)
  7. get_filename_component(CMake_SOURCE_DIR "${tmp}" PATH)
  8. include(${CMake_SOURCE_DIR}/Modules/CTestUseLaunchers.cmake)
  9. include(${CMake_SOURCE_DIR}/Source/CMakeVersionCompute.cmake)
  10. include(${CMake_SOURCE_DIR}/Source/CMakeInstallDestinations.cmake)
  11. unset(CMAKE_DATA_DIR)
  12. unset(CMAKE_DATA_DIR CACHE)
  13. macro(CMake_OPTIONAL_COMPONENT)
  14. set(COMPONENT "")
  15. endmacro()
  16. endif()
  17. project(CMakeDeveloperReference NONE)
  18. #
  19. # Build the reference
  20. #
  21. if (CMake_BUILD_DEVELOPER_REFERENCE OR CMakeDeveloperReference_STANDALONE)
  22. find_package(Doxygen REQUIRED)
  23. #
  24. ## Output formats
  25. #
  26. option(CMake_BUILD_DEVELOPER_REFERENCE_HTML "Build CMake Developer Reference - HTML format" ON)
  27. mark_as_advanced(CMake_BUILD_DEVELOPER_REFERENCE_HTML)
  28. if(CMake_BUILD_DEVELOPER_REFERENCE_HTML)
  29. set(GENERATE_HTML YES)
  30. else()
  31. set(GENERATE_HTML NO)
  32. endif()
  33. option(CMake_BUILD_DEVELOPER_REFERENCE_QTHELP "Build CMake Developer Reference - QtHelp format" OFF)
  34. mark_as_advanced(CMake_BUILD_DEVELOPER_REFERENCE_QTHELP)
  35. if(CMake_BUILD_DEVELOPER_REFERENCE_QTHELP)
  36. set(GENERATE_QHP YES)
  37. find_program(QHELPGENERATOR_EXECUTABLE
  38. NAMES qhelpgenerator
  39. DOC "qhelpgenerator tool"
  40. )
  41. if(NOT QHELPGENERATOR_EXECUTABLE)
  42. message(FATAL_ERROR "QHELPGENERATOR_EXECUTABLE (qhelpgenerator) not found!")
  43. endif()
  44. else()
  45. set(GENERATE_QHP NO)
  46. endif()
  47. #
  48. # Configure the script and the doxyfile, then add target
  49. #
  50. if(DOXYGEN_DOT_FOUND)
  51. set(HAVE_DOT YES)
  52. else()
  53. set(HAVE_DOT NO)
  54. endif()
  55. if(NOT DOT_PATH)
  56. get_filename_component(DOT_PATH ${DOXYGEN_DOT_EXECUTABLE} PATH)
  57. endif()
  58. configure_file(doxyfile.in doxyfile @ONLY)
  59. add_custom_target(cmake-developer-reference-all
  60. ${DOXYGEN_EXECUTABLE} doxyfile
  61. WORKING_DIRECTORY ${CMakeDeveloperReference_BINARY_DIR})
  62. add_custom_target(cmake-developer-reference ALL DEPENDS cmake-developer-reference-all)
  63. #
  64. # Installation
  65. #
  66. if(CMake_BUILD_DEVELOPER_REFERENCE_HTML)
  67. CMake_OPTIONAL_COMPONENT(cmake-developer-reference-html)
  68. install(DIRECTORY "${CMakeDeveloperReference_BINARY_DIR}/developer-reference/html"
  69. DESTINATION ${CMAKE_DOC_DIR}/developer-reference
  70. ${COMPONENT})
  71. endif()
  72. if(CMake_BUILD_DEVELOPER_REFERENCE_QTHELP)
  73. CMake_OPTIONAL_COMPONENT(cmake-developer-reference-qthelp)
  74. install(FILES "${CMakeDeveloperReference_BINARY_DIR}/developer-reference/CMakeDeveloperReference-${CMake_VERSION_MAJOR}${CMake_VERSION_MINOR}${CMake_VERSION_PATCH}.qch"
  75. DESTINATION ${CMAKE_DOC_DIR}/developer-reference
  76. ${COMPONENT})
  77. endif()
  78. endif ()