Generate documentation through CMake.
parent
c1298f0b80
commit
b557dadd3f
|
@ -7,9 +7,6 @@
|
|||
# The directory containing all build outputs.
|
||||
/build/
|
||||
|
||||
# The directory generated by `Doxygen`.
|
||||
/docs/
|
||||
|
||||
# A symlink produced by default when running `nix build`.
|
||||
result
|
||||
|
||||
|
|
|
@ -2,11 +2,12 @@ cmake_minimum_required(VERSION 3.19)
|
|||
project(bootstrap VERSION 0.1.3 LANGUAGES C)
|
||||
|
||||
add_executable(bootstrap main.c)
|
||||
|
||||
add_subdirectory(src)
|
||||
target_link_libraries(bootstrap PUBLIC m)
|
||||
target_include_directories(bootstrap PUBLIC include)
|
||||
|
||||
add_subdirectory(src)
|
||||
add_subdirectory(docs)
|
||||
|
||||
if("${CMAKE_BUILD_TYPE}" STREQUAL "Debug")
|
||||
set_target_properties(
|
||||
bootstrap PROPERTIES
|
||||
|
|
|
@ -251,10 +251,12 @@ $ make test
|
|||
|
||||
### Documentation
|
||||
|
||||
We use [doxygen](https://www.doxygen.nl/index.html) for documentation
|
||||
generation. Run the following command to generate documentation locally:
|
||||
Documentation is generated using [Doxygen](https://www.doxygen.nl/index.html)
|
||||
(version 1.9.7) through CMake. (Re)generate documentation by navigating to
|
||||
the desired build configuration directory and running:
|
||||
```bash
|
||||
$ doxygen
|
||||
$ cmake --build .
|
||||
$ make docs
|
||||
```
|
||||
|
||||
### Formatting
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
find_package(Doxygen REQUIRED)
|
||||
|
||||
set(DOXYGEN_INPUT_DIR ${PROJECT_SOURCE_DIR}/include)
|
||||
set(DOXYGEN_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/doxygen)
|
||||
set(DOXYGEN_INDEX_FILE ${DOXYGEN_OUTPUT_DIR}/xml/index.xml)
|
||||
set(DOXYFILE_IN ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in)
|
||||
set(DOXYFILE_OUT ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile)
|
||||
|
||||
configure_file(${DOXYFILE_IN} ${DOXYFILE_OUT} @ONLY)
|
||||
|
||||
file(MAKE_DIRECTORY ${DOXYGEN_OUTPUT_DIR})
|
||||
|
||||
add_custom_command(OUTPUT
|
||||
${DOXYGEN_INDEX_FILE}
|
||||
COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYFILE_OUT}
|
||||
MAIN_DEPENDENCY ${DOXYFILE_OUT} ${DOXYFILE_IN}
|
||||
COMMENT "Generating Doxygen documentation"
|
||||
VERBATIM
|
||||
)
|
||||
|
||||
add_custom_target(docs DEPENDS ${DOXYGEN_INDEX_FILE})
|
||||
|
||||
# Ensure worker is built before documentation.
|
||||
add_dependencies(docs bootstrap)
|
|
@ -0,0 +1,2 @@
|
|||
INPUT = "@DOXYGEN_INPUT_DIR@"
|
||||
GENERATE_LATEX = NO
|
Loading…
Reference in New Issue