1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- find_package(Doxygen)
- if (PICO_SDK_TOP_LEVEL_PROJECT AND ${DOXYGEN_FOUND})
- set(PICO_BUILD_DOCS_DEFAULT 1)
- endif()
- option(PICO_BUILD_DOCS "Build HTML Doxygen docs" ${PICO_BUILD_DOCS_DEFAULT})
- if (DEFINED ENV{PICO_EXAMPLES_PATH} AND NOT PICO_EXAMPLES_PATH)
- set(PICO_EXAMPLES_PATH $ENV{PICO_EXAMPLES_PATH})
- message("Using PICO_EXAMPLES_PATH from environment ('${PICO_EXAMPLES_PATH}')")
- endif()
- if(PICO_BUILD_DOCS)
- if(NOT DOXYGEN_FOUND)
- message(FATAL_ERROR "Doxygen is needed to build the documentation.")
- endif()
- include(ExternalProject)
- if(PICO_EXAMPLES_PATH)
- get_filename_component(PICO_EXAMPLES_PATH "${PICO_EXAMPLES_PATH}" REALPATH BASE_DIR "${CMAKE_BINARY_DIR}")
- if (EXISTS ${PICO_EXAMPLES_PATH})
- message("Documentation example code will come from ${PICO_EXAMPLES_PATH}")
- else()
- message(WARNING "Documentation example code configured to come from ${PICO_EXAMPLES_PATH}, but that path does not exist")
- endif()
- add_custom_target(doc-pico-examples)
- else()
- ExternalProject_Add(doc-pico-examples
- GIT_REPOSITORY git@github.com:raspberrypi/pico-examples.git
- GIT_TAG master
- CONFIGURE_COMMAND ""
- BUILD_COMMAND ""
- INSTALL_COMMAND ""
- )
- ExternalProject_Get_property(doc-pico-examples SOURCE_DIR)
- ExternalProject_Get_property(doc-pico-examples GIT_REPOSITORY)
- ExternalProject_Get_property(doc-pico-examples GIT_TAG)
- set(PICO_EXAMPLES_PATH ${SOURCE_DIR})
- message("Documentation example code will come from git repo ${GIT_REPOSITORY}, branch ${GIT_TAG}")
- endif()
- set(DOXY_OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/doxygen")
- set(DOXY_INPUT_DIRS "${PICO_DOXYGEN_PATHS}")
- set(DOXY_EXCLUDE_DIRS "${PICO_DOXYGEN_EXCLUDE_PATHS}")
- set(DOXY_EXAMPLE_DIR "${PICO_EXAMPLES_PATH}")
- set(doxyfile_in ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in)
- set(doxyfile ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile)
- configure_file(${doxyfile_in} ${doxyfile} @ONLY)
- add_custom_target(docs
- COMMAND ${DOXYGEN_EXECUTABLE} ${doxyfile}
- WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
- COMMENT "Generating API documentation with Doxygen"
- VERBATIM)
- add_dependencies(docs doc-pico-examples)
- endif()
|