| ## |
| ## Licensed to the Apache Software Foundation (ASF) under one |
| ## or more contributor license agreements. See the NOTICE file |
| ## distributed with this work for additional information |
| ## regarding copyright ownership. The ASF licenses this file |
| ## to you under the Apache License, Version 2.0 (the |
| ## "License"); you may not use this file except in compliance |
| ## with the License. You may obtain a copy of the License at |
| ## |
| ## http://www.apache.org/licenses/LICENSE-2.0 |
| ## |
| ## Unless required by applicable law or agreed to in writing, |
| ## software distributed under the License is distributed on an |
| ## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| ## KIND, either express or implied. See the License for the |
| ## specific language governing permissions and limitations |
| ## under the License. |
| ## |
| |
| set(bin ${CMAKE_CURRENT_BINARY_DIR}) |
| |
| if(USE_DOXYGEN) |
| |
| # Create doxygen configuration files. |
| function(configure_doxygen HTML_OUTPUT INPUT MORE_CONFIG) |
| if(USE_DOT) |
| set(HAVE_DOT yes) |
| else() |
| set(HAVE_DOT no) |
| endif() |
| # Arguments and local variables are used to configure doxygen.in |
| configure_file( |
| ${CMAKE_CURRENT_SOURCE_DIR}/doxygen.in |
| ${CMAKE_CURRENT_BINARY_DIR}/${HTML_OUTPUT}.doxygen) |
| endfunction(configure_doxygen) |
| |
| configure_doxygen(api "${CMAKE_SOURCE_DIR}/include" "") |
| configure_doxygen(api_dev "${CMAKE_SOURCE_DIR}/include ${CMAKE_SOURCE_DIR}/src" |
| "ENABLED_SECTIONS=INTERNAL\nINTERNAL_DOCS=yes\nEXTRACT_ALL=yes") |
| |
| # Dependencies: calculated at configuration time so we won't detect |
| # new/removed files till re-configuration. Usually adding/removing sources |
| # will force a re-configuration so by deleting the output to force a re-build |
| # after re-configuration we should catch most cases. |
| file(GLOB_RECURSE API_SOURCES |
| ${CMAKE_SOURCE_DIR}/include/*.h |
| ${CMAKE_SOURCE_DIR}/src/*.h |
| ${CMAKE_SOURCE_DIR}/src/*.c) |
| file(REMOVE_RECURSE ${bin}/api ${bin}/api_dev) # Force rebuild after re-configuration. |
| |
| add_custom_command (OUTPUT api api_dev |
| COMMAND ${DOXYGEN_EXECUTABLE} api.doxygen |
| COMMAND ${DOXYGEN_EXECUTABLE} api_dev.doxygen |
| COMMAND ${CMAKE_COMMAND} -E touch api api_dev |
| DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/doxygen.in ${API_SOURCES}) |
| |
| add_custom_target(apidocs DEPENDS api api_dev) |
| add_dependencies(doc apidocs) |
| |
| install_doc(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/api DESTINATION ${QD_DOC_INSTALL_DIR}) |
| install_doc(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/api_dev DESTINATION ${QD_DOC_INSTALL_DIR}) |
| |
| endif(USE_DOXYGEN) |