Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,19 @@
bin/
lib/
build/
x64/

# CMake generated files
CMakeCache.txt
CMakeFiles/
Makefile
cmake_install.cmake
install_manifest.txt
*.dir/

# vcpkg
vcpkg/
vcpkg_installed/
vcpkg-installed/

# Compiler and linker output
Expand All @@ -31,11 +34,13 @@ vcpkg-installed/

# IDE files
# Visual Studio
.vs/
*.sln
*.vcxproj
*.vcxproj.filters
*.vcxproj.user
*.userosscache
*.slnx
*.suo

# VS Code
Expand Down
1 change: 1 addition & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -42,3 +42,4 @@ add_subdirectory(src/runtime)
add_subdirectory(src/tools)
add_subdirectory(src/examples)
add_subdirectory(scripts)
add_subdirectory(docs)
59 changes: 59 additions & 0 deletions docs/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# Documentation configuration for Segfault
# This file sets up the Doxygen documentation target

# Find Doxygen
find_package(Doxygen QUIET)

if(DOXYGEN_FOUND)
message(STATUS "Doxygen found: ${DOXYGEN_EXECUTABLE}")

# Configure Doxygen
set(DOXYGEN_INPUT ${CMAKE_CURRENT_SOURCE_DIR}/../src/runtime
${CMAKE_CURRENT_SOURCE_DIR}/../src/contrib/cppcore/include
${CMAKE_CURRENT_SOURCE_DIR}/Architecture.md)

# Set output directory
set(DOXYGEN_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/html)

# Create output directory before running Doxygen
file(MAKE_DIRECTORY ${DOXYGEN_OUTPUT_DIR})

# Configure Doxyfile path with absolute paths
set(DOXYGEN_CONFIG_FILE ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile.configured)

# Create a configured Doxyfile with absolute paths
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile
${DOXYGEN_CONFIG_FILE}
@ONLY
)

# Add custom target for documentation
add_custom_target(doc
COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYGEN_CONFIG_FILE}
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Generating API documentation with Doxygen"
VERBATIM
)

# Add a clean target for documentation
add_custom_target(doc-clean
COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_CURRENT_BINARY_DIR}/html
COMMENT "Cleaning Doxygen documentation"
VERBATIM
)

# Make doc-clean depend on doc (optional)
add_dependencies(doc-clean doc)
Comment thread
kimkulling marked this conversation as resolved.
Resolved

message(STATUS "Documentation target 'doc' available - run 'cmake --build . --target doc' to generate")
else()
message(WARNING "Doxygen not found. Documentation target 'doc' will not be available.")

# Create a dummy target so the build doesn't fail
add_custom_target(doc
COMMAND ${CMAKE_COMMAND} -E echo "Doxygen not found. Please install Doxygen to generate documentation."
COMMENT "Doxygen not available - skipping documentation generation"
VERBATIM
)
endif()
Loading
Loading