CMakeLists.txt 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. #=============================================================================
  2. # CMake - Cross Platform Makefile Generator
  3. # Copyright 2000-2009 Kitware, Inc., Insight Software Consortium
  4. #
  5. # Distributed under the OSI-approved BSD License (the "License");
  6. # see accompanying file Copyright.txt for details.
  7. #
  8. # This software is distributed WITHOUT ANY WARRANTY; without even the
  9. # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  10. # See the License for more information.
  11. #=============================================================================
  12. if(NOT CMake_SOURCE_DIR)
  13. set(CMakeDeveloperReference_STANDALONE 1)
  14. cmake_minimum_required(VERSION 2.8.4 FATAL_ERROR)
  15. get_filename_component(tmp "${CMAKE_CURRENT_SOURCE_DIR}" PATH)
  16. get_filename_component(CMake_SOURCE_DIR "${tmp}" PATH)
  17. include(${CMake_SOURCE_DIR}/Modules/CTestUseLaunchers.cmake)
  18. include(${CMake_SOURCE_DIR}/Source/CMakeVersionCompute.cmake)
  19. include(${CMake_SOURCE_DIR}/Source/CMakeInstallDestinations.cmake)
  20. unset(CMAKE_DATA_DIR)
  21. unset(CMAKE_DATA_DIR CACHE)
  22. macro(CMake_OPTIONAL_COMPONENT)
  23. set(COMPONENT "")
  24. endmacro()
  25. endif()
  26. project(CMakeDeveloperReference NONE)
  27. #
  28. # Build the reference
  29. #
  30. if (CMake_BUILD_DEVELOPER_REFERENCE OR CMakeDeveloperReference_STANDALONE)
  31. find_package(Doxygen REQUIRED)
  32. #
  33. ## Output formats
  34. #
  35. option(CMake_BUILD_DEVELOPER_REFERENCE_HTML "Build CMake Developer Reference - HTML format" ON)
  36. mark_as_advanced(CMake_BUILD_DEVELOPER_REFERENCE_HTML)
  37. if(CMake_BUILD_DEVELOPER_REFERENCE_HTML)
  38. set(GENERATE_HTML YES)
  39. else()
  40. set(GENERATE_HTML NO)
  41. endif()
  42. option(CMake_BUILD_DEVELOPER_REFERENCE_QTHELP "Build CMake Developer Reference - QtHelp format" OFF)
  43. mark_as_advanced(CMake_BUILD_DEVELOPER_REFERENCE_QTHELP)
  44. if(CMake_BUILD_DEVELOPER_REFERENCE_QTHELP)
  45. set(GENERATE_QHP YES)
  46. find_program(QHELPGENERATOR_EXECUTABLE
  47. NAMES qhelpgenerator
  48. DOC "qhelpgenerator tool"
  49. )
  50. if(NOT QHELPGENERATOR_EXECUTABLE)
  51. message(FATAL_ERROR "QHELPGENERATOR_EXECUTABLE (qhelpgenerator) not found!")
  52. endif()
  53. else()
  54. set(GENERATE_QHP NO)
  55. endif()
  56. #
  57. # Configure the script and the doxyfile, then add target
  58. #
  59. if(DOXYGEN_DOT_FOUND)
  60. set(HAVE_DOT YES)
  61. else()
  62. set(HAVE_DOT NO)
  63. endif()
  64. if(NOT DOT_PATH)
  65. get_filename_component(DOT_PATH ${DOXYGEN_DOT_EXECUTABLE} PATH)
  66. endif()
  67. configure_file(doxyfile.in doxyfile @ONLY)
  68. add_custom_target(cmake-developer-reference-all
  69. ${DOXYGEN_EXECUTABLE} doxyfile
  70. WORKING_DIRECTORY ${CMakeDeveloperReference_BINARY_DIR})
  71. add_custom_target(cmake-developer-reference ALL DEPENDS cmake-developer-reference-all)
  72. #
  73. # Installation
  74. #
  75. if(CMake_BUILD_DEVELOPER_REFERENCE_HTML)
  76. CMake_OPTIONAL_COMPONENT(cmake-developer-reference-html)
  77. install(DIRECTORY "${CMakeDeveloperReference_BINARY_DIR}/developer-reference/html"
  78. DESTINATION ${CMAKE_DOC_DIR}/developer-reference
  79. ${COMPONENT})
  80. endif()
  81. if(CMake_BUILD_DEVELOPER_REFERENCE_QTHELP)
  82. CMake_OPTIONAL_COMPONENT(cmake-developer-reference-qthelp)
  83. install(FILES "${CMakeDeveloperReference_BINARY_DIR}/developer-reference/CMakeDeveloperReference-${CMake_VERSION_MAJOR}${CMake_VERSION_MINOR}${CMake_VERSION_PATCH}.qch"
  84. DESTINATION ${CMAKE_DOC_DIR}/developer-reference
  85. ${COMPONENT})
  86. endif()
  87. endif ()