aboutsummaryrefslogtreecommitdiff
path: root/circuitpython/ports/raspberrypi/sdk/docs/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'circuitpython/ports/raspberrypi/sdk/docs/CMakeLists.txt')
-rw-r--r--circuitpython/ports/raspberrypi/sdk/docs/CMakeLists.txt59
1 files changed, 59 insertions, 0 deletions
diff --git a/circuitpython/ports/raspberrypi/sdk/docs/CMakeLists.txt b/circuitpython/ports/raspberrypi/sdk/docs/CMakeLists.txt
new file mode 100644
index 0000000..45fd1d6
--- /dev/null
+++ b/circuitpython/ports/raspberrypi/sdk/docs/CMakeLists.txt
@@ -0,0 +1,59 @@
+find_package(Doxygen QUIET)
+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 https://github.com/raspberrypi/pico-examples
+ 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()