diff --git a/.clang-format b/.clang-format deleted file mode 100644 index adcb7bc..0000000 --- a/.clang-format +++ /dev/null @@ -1,74 +0,0 @@ -##================================================================================================== -## OFW - Expressive Vector Engine -## Copyright : OFW Contributors & Maintainers -## SPDX-License-Identifier: BSL-1.0 -##================================================================================================== -AccessModifierOffset: 0 -AlignAfterOpenBracket: Align -AlignConsecutiveAssignments: true -AlignConsecutiveDeclarations: true -AlignConsecutiveMacros: true -AlignEscapedNewlines: Right -AlignOperands: true -AlignTrailingComments: true -AllowAllParametersOfDeclarationOnNextLine: false -AllowAllConstructorInitializersOnNextLine: false -AllowAllParametersOfDeclarationOnNextLine: false -AllowShortBlocksOnASingleLine: Always -AllowShortCaseLabelsOnASingleLine: true -AllowShortFunctionsOnASingleLine: All -AllowShortIfStatementsOnASingleLine: false -AllowShortLambdasOnASingleLine: All -AllowShortLoopsOnASingleLine: true -AlwaysBreakAfterReturnType: TopLevelDefinitions -AlwaysBreakTemplateDeclarations: MultiLine -BinPackArguments: false -BinPackParameters: false -BreakBeforeBinaryOperators: NonAssignment -BreakBeforeBraces: Allman -BreakBeforeTernaryOperators: true -BreakConstructorInitializers: BeforeComma -BreakInheritanceList: BeforeComma -ColumnLimit: 100 -ConstructorInitializerAllOnOneLineOrOnePerLine: true -Cpp11BracedListStyle: true -ExperimentalAutoDetectBinPacking: false -FixNamespaceComments: false -IncludeBlocks: Regroup -IncludeCategories: - - Regex: '<[[:alnum:].]+>' - Priority: 0 -#IndentCaseBlocks: true -IndentCaseLabels: false -IndentPPDirectives: AfterHash -IndentWidth: 2 -IndentWrappedFunctionNames: false -KeepEmptyLinesAtTheStartOfBlocks: false -Language: Cpp -MaxEmptyLinesToKeep: 1 -NamespaceIndentation: All -PointerAlignment: Right -ReflowComments: true -SortIncludes: true -SortUsingDeclarations: true -SpaceAfterCStyleCast: false -SpaceAfterLogicalNot: false -SpaceAfterTemplateKeyword: false -SpaceBeforeAssignmentOperators: true -SpaceBeforeCpp11BracedList: true -SpaceBeforeCtorInitializerColon: true -SpaceBeforeInheritanceColon: true -SpaceBeforeParens: Never -SpaceBeforeRangeBasedForLoopColon: true -SpaceBeforeSquareBrackets: false -SpaceInEmptyBlock: false -SpaceInEmptyParentheses: false -SpacesBeforeTrailingComments: 1 -SpacesInAngles: false -SpacesInCStyleCastParentheses: false -SpacesInConditionalStatement: true -SpacesInContainerLiterals: true -SpacesInParentheses: false -SpacesInSquareBrackets: false -Standard: c++20 -UseTab: Never diff --git a/.github/actions/run_tests/Dockerfile b/.github/actions/run_tests/Dockerfile deleted file mode 100644 index 5d08a32..0000000 --- a/.github/actions/run_tests/Dockerfile +++ /dev/null @@ -1,8 +0,0 @@ -# Container image that runs your code -FROM jfalcou/compilers:v4 - -# Copies your code file from your action repository to the filesystem path `/` of the container -COPY entrypoint.sh /entrypoint.sh - -# Code file to execute when the docker container starts up (`entrypoint.sh`) -ENTRYPOINT ["/entrypoint.sh"] diff --git a/.github/actions/run_tests/action.yml b/.github/actions/run_tests/action.yml deleted file mode 100644 index a8cafe0..0000000 --- a/.github/actions/run_tests/action.yml +++ /dev/null @@ -1,28 +0,0 @@ -# action.yml -name: 'Clone and Build Tests' -description: 'Clone and build a given repository' -inputs: - compiler: # compiler - description: 'Compiler' - required: false - default: '' - cpu: # How much CPU do we use - description: 'CPU Count' - required: false - default: '8' - options: # Special options - description: 'Compiler options' - required: false - default: '' - linker_options: # Special options - description: 'Linker options' - required: false - default: '' -runs: - using: 'docker' - image: 'Dockerfile' - args: - - ${{ inputs.compiler }} - - ${{ inputs.cpu }} - - ${{ inputs.options }} - - ${{ inputs.linker_options }} diff --git a/.github/actions/run_tests/entrypoint.sh b/.github/actions/run_tests/entrypoint.sh deleted file mode 100755 index b9e3829..0000000 --- a/.github/actions/run_tests/entrypoint.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/sh -l - -set -e -echo "::group::Running: 'cmake .. -G Ninja -DCMAKE_CXX_COMPILER=$1 -DCMAKE_CXX_FLAGS="$3" -DCMAKE_EXE_LINKER_FLAGS="$4"'" -mkdir build -cd build -cmake .. -G Ninja -DCMAKE_CXX_COMPILER=$1 -DCMAKE_CXX_FLAGS="$3" -DCMAKE_EXE_LINKER_FLAGS="$4" -echo "::endgroup::" - -echo "::group::Compiling tests" -ninja -j $2 -echo "::endgroup::" - -echo "::group::Running tests" -ctest --output-on-failure -j $2 -echo "::endgroup::" - -exit 0 diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml deleted file mode 100644 index c97afd5..0000000 --- a/.github/workflows/main.yml +++ /dev/null @@ -1,134 +0,0 @@ -name: RABERU CI -on: - push: - branches: - - main - pull_request: - branches: - - main - -jobs: - gcc-linux: - runs-on: [ubuntu-latest] - strategy: - fail-fast: false - matrix: - cfg: - - { opts: -O0 } - - { opts: "-O3 -flto -DNDEBUG"} - steps: - - name: Fetch current branch - uses: actions/checkout@v3 - - name: RABERU using g++-11 with ${{ matrix.cfg.opts }} - uses: ./.github/actions/run_tests - with: - compiler: 'g++-11' - options: '${{ matrix.cfg.opts }}' - linker_options: '' - cpu: 2 - - clang-linux: - runs-on: [ubuntu-latest] - strategy: - fail-fast: false - matrix: - cfg: - - { opts: -O0 , linker: } - - { opts: "-O3 -flto -DNDEBUG" , linker: } - - { opts: "-O3 -flto -DNDEBUG -stdlib=libc++" , linker: -stdlib=libc++ } - - { opts: "-O0 -stdlib=libc++" , linker: -stdlib=libc++ } - steps: - - name: Fetch current branch - uses: actions/checkout@v3 - - name: RABERU using clang++ with ${{ matrix.cfg.opts }} - uses: ./.github/actions/run_tests - with: - compiler: 'clang++' - options: '${{ matrix.cfg.opts }}' - linker_options: '${{ matrix.cfg.linker }}' - cpu: 2 - - clang-macosx: - runs-on: [macos-12] - strategy: - fail-fast: false - matrix: - cfg: - - { opts: -O0 , linker: } - - { opts: "-O0 -stdlib=libc++" , linker: -stdlib=libc++ } - - { opts: "-O3 -flto -DNDEBUG" , linker: } - - { opts: "-O3 -flto -DNDEBUG -stdlib=libc++" , linker: -stdlib=libc++ } - steps: - - name: Fetch current branch - uses: actions/checkout@v3 - - name: Running CMake for clang++ with ${{ matrix.cfg.opts }} - run: | - mkdir build && cd build - cmake .. -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_CXX_FLAGS="${{ matrix.cfg.opts }}" -DCMAKE_EXE_LINKER_FLAGS="${{ matrix.cfg.linker }}" - - name: Compiling Unit Tests - run: cd build && make -j 2 - - name: Running Unit Tests - run: cd build && ctest --output-on-failure -j 2 - - gcc-macosx: - runs-on: [macos-11] - strategy: - fail-fast: false - matrix: - cfg: - - { opts: -O0 } - - { opts: "-O3 -flto -DNDEBUG"} - steps: - - name: Fetch current branch - uses: actions/checkout@v3 - - name: Running CMake for g++-11 with ${{ matrix.cfg.opts }} - run: | - mkdir build && cd build - cmake .. -DCMAKE_CXX_COMPILER=g++-11 -DCMAKE_CXX_FLAGS="${{ matrix.cfg.opts }}" - - name: Compiling Unit Tests - run: cd build && make -j 2 - - name: Running Unit Tests - run: cd build && ctest --output-on-failure -j 2 - - android: - runs-on: [macos-12] - strategy: - fail-fast: false - matrix: - cfg: - - { opts: -O0 } - - { opts: "-O3 -flto -DNDEBUG"} - steps: - - name: Fetch current branch - uses: actions/checkout@v3 - - name: Running CMake for g++ with ${{ matrix.cfg.opts }} - run: | - mkdir build && cd build - cmake .. -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_ROOT/build/cmake/android.toolchain.cmake -DANDROID_ABI=arm64-v8a - - name: Compiling Unit Tests - run: cd build && make -j 2 - - msvc: - runs-on: [windows-2022] - strategy: - fail-fast: false - matrix: - cfg: - - { mode: Debug , options: ""} - - { mode: Release, options: ""} - steps: - - name: Fetch current branch - uses: actions/checkout@v3 - - name: Running CMake for MSVC ${{ matrix.cfg.mode }} ${{ matrix.cfg.options }} - run: | - mkdir build && cd build - cmake -G "Visual Studio 17 2022" -A x64 .. -DRABERU_BUILD_TEST=ON - - name: Compiling Unit Tests - run: | - cd build - cmake --build . --config ${{ matrix.cfg.mode }} --parallel 2 - - name: Running Tests - run: | - cd build - ctest -C ${{ matrix.cfg.mode }} --output-on-failure - diff --git a/.github/workflows/unit.yml b/.github/workflows/unit.yml new file mode 100644 index 0000000..b903c8f --- /dev/null +++ b/.github/workflows/unit.yml @@ -0,0 +1,107 @@ +##====================================================================================================================== +## RABERU - Fancy Parameters Library +## Copyright : RABERU Contributors & Maintainers +## SPDX-License-Identifier: BSL-1.0 +##====================================================================================================================== +name: RABERU Unit Testing +on: + pull_request: + branches: + - main + +concurrency: + group: raberu-unit-${{ github.ref }} + cancel-in-progress: true + +jobs: + + windows: + runs-on: [windows-2022] + strategy: + fail-fast: false + matrix: + cfg: + # - { tool: "-T ClangCL", config: Debug } + # - { tool: "-T ClangCL", config: Release } + - { tool: , config: Debug } + - { tool: , config: Release } + steps: + - name: Fetch current branch + uses: actions/checkout@v3 + - name: Running CMake for MSVC + run: | + mkdir build && cd build + cmake -G "Visual Studio 17 2022" ${{ matrix.cfg.tool }} -A x64 .. + - name: Compiling Unit Tests + run: | + cd build + cmake --build . --target raberu-test --config ${{ matrix.cfg.config }} --parallel 2 + cmake --build . --target raberu-test --config Release --parallel 2 + - name: Running Tests + run: | + cd build + ctest -C ${{ matrix.cfg.config }} --output-on-failure + + linux: + runs-on: [ubuntu-latest] + container: + image: ghcr.io/jfalcou/compilers:v6 + strategy: + fail-fast: false + matrix: + cfg: + - { compiler: g++-12 , opts: -O0 , linker: } + - { compiler: clang++ , opts: -O0 , linker: } + - { compiler: clang++ , opts: "-O3 -flto -DNDEBUG" , linker: } + - { compiler: g++-12 , opts: "-O3 -flto -DNDEBUG" , linker: } + - { compiler: clang++ , opts: "-O3 -flto -DNDEBUG -stdlib=libc++" , linker: -stdlib=libc++ } + - { compiler: clang++ , opts: "-O0 -stdlib=libc++" , linker: -stdlib=libc++ } + steps: + - name: Fetch current branch + uses: actions/checkout@v3 + - name: Running CMake for ${{ matrix.cfg.compiler }} with ${{ matrix.cfg.opts }} + run: | + mkdir build && cd build + cmake .. -G Ninja -DCMAKE_CXX_COMPILER=${{ matrix.cfg.compiler }} -DCMAKE_CXX_FLAGS="${{ matrix.cfg.opts }}" -DCMAKE_EXE_LINKER_FLAGS=${{ matrix.cfg.linker }} + - name: Running Unit Tests + run: cd build && ninja raberu-test -j 2 && ctest --output-on-failure -j 2 + + macosx: + runs-on: [macos-12] + strategy: + fail-fast: false + matrix: + cfg: + - { compiler: g++-12 , opts: -O0 , linker: } + - { compiler: g++-12 , opts: "-O3 -DNDEBUG" , linker: } + - { compiler: clang++ , opts: -O0 , linker: } + - { compiler: clang++ , opts: "-O3 -flto -DNDEBUG" , linker: } + - { compiler: clang++ , opts: "-O3 -flto -DNDEBUG -stdlib=libc++" , linker: -stdlib=libc++ } + - { compiler: clang++ , opts: "-O0 -stdlib=libc++" , linker: -stdlib=libc++ } + steps: + - name: Fetch current branch + uses: actions/checkout@v3 + - name: Running CMake for ${{ matrix.cfg.compiler }} with ${{ matrix.cfg.opts }} + run: | + mkdir build && cd build + cmake .. -DCMAKE_CXX_COMPILER=${{ matrix.cfg.compiler }} -DCMAKE_CXX_FLAGS="${{ matrix.cfg.opts }}" -DCMAKE_EXE_LINKER_FLAGS=${{ matrix.cfg.linker }} + - name: Running Unit Tests + run: cd build && make raberu-test -j 2 && ctest --output-on-failure -j 2 + + android: + runs-on: [macos-12] + strategy: + fail-fast: false + matrix: + cfg: + - { opts: -O0 } + - { opts: "-O3 -flto -DNDEBUG"} + steps: + - name: Fetch current branch + uses: actions/checkout@v3 + - name: Running CMake for ${{ matrix.cfg.compiler }} with ${{ matrix.cfg.opts }} + run: | + mkdir build && cd build + cmake .. -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_ROOT/build/cmake/android.toolchain.cmake -DANDROID_ABI=arm64-v8a + - name: Compiling Unit Tests + run: cd build && make raberu-test -j 2 diff --git a/CMakeLists.txt b/CMakeLists.txt index febd92e..f65ae39 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,75 +1,67 @@ -##================================================================================================== -## RABERU - Compact C++20 Tuple Toolbox +##====================================================================================================================== +## RABERU - Fancy Named Parameter Library ## Copyright : RABERU Project Contributors ## SPDX-License-Identifier: BSL-1.0 -##================================================================================================== -cmake_minimum_required(VERSION 3.12) - -##================================================================================================== -## Setup project -##================================================================================================== +##====================================================================================================================== +cmake_minimum_required(VERSION 3.22) project(raberu LANGUAGES CXX) -set(PROJECT_VERSION 1.0) - -##================================================================================================== -## No in-source build -##================================================================================================== -if (${PROJECT_SOURCE_DIR} STREQUAL ${PROJECT_BINARY_DIR}) - message(FATAL_ERROR "[raberu]: In-source build is not recommend") -endif() +include(${PROJECT_SOURCE_DIR}/cmake/dependencies.cmake) +include(${PROJECT_SOURCE_DIR}/cmake/compiler.cmake) -## ================================================================================================= -## Install target -## ================================================================================================= -install(DIRECTORY ${PROJECT_SOURCE_DIR}/include/raberu TYPE INCLUDE) +##====================================================================================================================== +option( RABERU_BUILD_TEST "Build tests for Raberu" ON ) +option( RABERU_BUILD_DOCUMENTATION "Build Doxygen for Raberu" OFF ) -## ================================================================================================= -## Exporting target for external use -## ================================================================================================= -add_library(raberu_lib INTERFACE) -target_include_directories(raberu_lib INTERFACE $) +##====================================================================================================================== +## Project setup via copacabana +##====================================================================================================================== +set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/cmake ${COPACABANA_SOURCE_DIR}/copacabana/cmake) +include(${COPACABANA_SOURCE_DIR}/copacabana/cmake/copacabana.cmake) +copa_project_version(MAJOR 1 MINOR 0 PATCH 0) -if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang") -target_compile_options( raberu_lib INTERFACE -Wno-gnu-string-literal-operator-template) +##====================================================================================================================== +## Summary Display +##====================================================================================================================== +if(NOT RABERU_QUIET) + if(CMAKE_BUILD_TYPE) + message(STATUS "[${PROJECT_NAME}] - Building in ${CMAKE_BUILD_TYPE} mode") + endif() + message(STATUS "[${PROJECT_NAME}] - Unit tests : ${RABERU_BUILD_TEST} (via RABERU_BUILD_TEST)") + message(STATUS "[${PROJECT_NAME}] - Doxygen : ${RABERU_BUILD_DOCUMENTATION} (via RABERU_BUILD_DOCUMENTATION)") + set(QUIET_OPTION "") +else() + set(QUIET_OPTION "QUIET") endif() -target_compile_features(raberu_lib INTERFACE cxx_std_20) -add_library(raberu::raberu ALIAS raberu_lib) - -##================================================================================================== -## Options -##================================================================================================== -option( RABERU_BUILD_TEST "Build tests for raberu" ON ) -option( RABERU_BUILD_DOCS "Build docs for raberu" OFF ) +##====================================================================================================================== +## Install Process setup +##====================================================================================================================== +copa_setup_install( LIBRARY raberu + FEATURES cxx_std_20 + DOC ${PROJECT_SOURCE_DIR}/LICENSE.md + INCLUDE ${PROJECT_SOURCE_DIR}/include/tts + ) -##================================================================================================== -## Test target -##================================================================================================== -if( RABERU_BUILD_TEST ) - include(CTest) - add_subdirectory(${PROJECT_SOURCE_DIR}/test/) +##====================================================================================================================== +## Setup doxygen +##====================================================================================================================== +if(RABERU_BUILD_DOCUMENTATION) + copa_setup_doxygen(${QUIET_OPTION} TARGET raberu-doxygen DESTINATION "${PROJECT_BINARY_DIR}/doc") endif() - -##================================================================================================== -## Add Doxygen building target -##================================================================================================== -if( RABERU_BUILD_DOCS ) - find_package(Doxygen QUIET) - - if (DOXYGEN_FOUND) - message( STATUS "[raberu] Doxygen available") - else (DOXYGEN_FOUND) - message( STATUS "[raberu] Doxygen need to be installed to generate the doxygen documentation") - endif (DOXYGEN_FOUND) - - if (DOXYGEN_FOUND) - set(DOXYGEN_CONFIG ${PROJECT_SOURCE_DIR}/doc/Doxyfile) - add_custom_target ( rbr-doxygen - COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYGEN_CONFIG} - WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/doc - COMMENT "[raberu] Generating API documentation with Doxygen" - VERBATIM +##====================================================================================================================== +## Standalone generation +##====================================================================================================================== +copa_setup_standalone ( ${QUIET_OPTION} + FILE raberu.hpp SOURCE include DESTINATION standalone + ROOT raberu TARGET raberu-standalone ) - endif (DOXYGEN_FOUND) + +##====================================================================================================================== +## Tests setup +##====================================================================================================================== +if(RABERU_BUILD_TEST) + enable_testing() + add_custom_target(raberu-unit) + add_subdirectory(test) endif() diff --git a/README.md b/README.md index f577a7f..98aa2a1 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ It does so by providing: [See it live on Compiler Explorer](https://godbolt.org/z/oWjP44n57) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ c++ -#include +#include #include #include diff --git a/appveyor.yml b/appveyor.yml deleted file mode 100644 index 6d819b7..0000000 --- a/appveyor.yml +++ /dev/null @@ -1,17 +0,0 @@ -version: 1.0.{build} -os: Visual Studio 2022 - -environment: - matrix: - - ARCH: x86 - -build_script: -- mkdir build -- cd build -- cmake -G "Visual Studio 17 2022" -A x64 .. -- cmake --build . --verbose --config Debug -- cmake --build . --verbose --config Release - -test_script: -- ctest -C Release -VV -- ctest -C Debug -VV diff --git a/cmake/compiler.cmake b/cmake/compiler.cmake new file mode 100644 index 0000000..aea98cd --- /dev/null +++ b/cmake/compiler.cmake @@ -0,0 +1,32 @@ +##====================================================================================================================== +## RABERU - Fancy Named Parameter Library +## Copyright : RABERU Project Contributors +## SPDX-License-Identifier: BSL-1.0 +##====================================================================================================================== + +##====================================================================================================================== +## Compiler options +##====================================================================================================================== +add_library(raberu_test INTERFACE) + +target_compile_features ( raberu_test INTERFACE cxx_std_20 ) + +if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") + if(CMAKE_CXX_COMPILER_FRONTEND_VARIANT STREQUAL "MSVC") + target_compile_options( raberu_test INTERFACE /W3 /EHsc ) + else() + target_compile_options( raberu_test INTERFACE -Werror -Wall -Wextra -Wunused-variable -Wdocumentation + ) + endif() +elseif (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") + target_compile_options( raberu_test INTERFACE /W3 /EHsc /Zc:preprocessor) +else() + target_compile_options( raberu_test INTERFACE -Werror -Wall -Wextra -Wunused-variable) +endif() + +target_include_directories( raberu_test INTERFACE + ${PROJECT_SOURCE_DIR}/test + ${PROJECT_SOURCE_DIR}/standalone + ) + +target_link_libraries(raberu_test INTERFACE tts::tts) diff --git a/cmake/dependencies.cmake b/cmake/dependencies.cmake new file mode 100644 index 0000000..a324df3 --- /dev/null +++ b/cmake/dependencies.cmake @@ -0,0 +1,40 @@ +##====================================================================================================================== +## RABERU - Fancy Named Parameter Library +## Copyright : RABERU Project Contributors +## SPDX-License-Identifier: BSL-1.0 +##====================================================================================================================== + +##====================================================================================================================== +## Download and setup CPM +##====================================================================================================================== +set(CPM_DOWNLOAD_VERSION 0.34.0) + +if(CPM_SOURCE_CACHE) + set(CPM_DOWNLOAD_LOCATION "${CPM_SOURCE_CACHE}/cpm/CPM_${CPM_DOWNLOAD_VERSION}.cmake") +elseif(DEFINED ENV{CPM_SOURCE_CACHE}) + set(CPM_DOWNLOAD_LOCATION "$ENV{CPM_SOURCE_CACHE}/cpm/CPM_${CPM_DOWNLOAD_VERSION}.cmake") +else() + set(CPM_DOWNLOAD_LOCATION "${CMAKE_BINARY_DIR}/cmake/CPM_${CPM_DOWNLOAD_VERSION}.cmake") +endif() + +if(NOT (EXISTS ${CPM_DOWNLOAD_LOCATION})) + message(STATUS "[${PROJECT_NAME}] Downloading CPM.cmake to ${CPM_DOWNLOAD_LOCATION}") + file(DOWNLOAD + https://github.com/TheLartians/CPM.cmake/releases/download/v${CPM_DOWNLOAD_VERSION}/CPM.cmake + ${CPM_DOWNLOAD_LOCATION} + ) +endif() + +include(${CPM_DOWNLOAD_LOCATION}) + +##====================================================================================================================== +## Retrieve dependencies +##====================================================================================================================== +CPMAddPackage(NAME COPACABANA GITHUB_REPOSITORY jfalcou/copacabana GIT_TAG main) + +CPMAddPackage ( NAME TTS GITHUB_REPOSITORY jfalcou/tts + GIT_TAG main + OPTIONS "TTS_BUILD_TEST OFF" + "TTS_BUILD_DOCUMENTATION OFF" + "TTS_QUIET ON" + ) diff --git a/cmake/raberu-config.cmake b/cmake/raberu-config.cmake new file mode 100644 index 0000000..eda9422 --- /dev/null +++ b/cmake/raberu-config.cmake @@ -0,0 +1,11 @@ +##====================================================================================================================== +## RABERU - Fancy Named Parameter Library +## Copyright : RABERU Project Contributors +## SPDX-License-Identifier: BSL-1.0 +##====================================================================================================================== + +##====================================================================================================================== +## Reuse install.cmake to preapre package properly +##====================================================================================================================== +include("${CMAKE_CURRENT_LIST_DIR}/raberu-targets.cmake") +set(RABERU_LIBRARIES raberu::raberu) diff --git a/doc/Doxyfile b/doc/Doxyfile index bdd3ff5..2b2aa46 100644 --- a/doc/Doxyfile +++ b/doc/Doxyfile @@ -3,12 +3,11 @@ #--------------------------------------------------------------------------- DOXYFILE_ENCODING = UTF-8 -PROJECT_NAME = Raberu -PROJECT_NUMBER = -PROJECT_BRIEF = v2.0 - Past Prologue +PROJECT_NAME = $(DOXYGEN_PROJECT_NAME) +PROJECT_NUMBER = v$(DOXYGEN_PROJECT_VERSION) +PROJECT_BRIEF = Fancy Named Parameter Library PROJECT_LOGO = logo.png - -OUTPUT_DIRECTORY = ../docs +OUTPUT_DIRECTORY = $(DOXYGEN_OUPUT) CREATE_SUBDIRS = NO ALLOW_UNICODE_NAMES = NO @@ -29,15 +28,31 @@ ALWAYS_DETAILED_SEC = NO INLINE_INHERITED_MEMB = YES FULL_PATH_NAMES = YES -STRIP_FROM_PATH = ../include -STRIP_FROM_PATH += /home/jt/falcoudev -STRIP_FROM_PATH += /home/falcou/dev -STRIP_FROM_INC_PATH = ../include +STRIP_FROM_INC_PATH = $(DOXYGEN_STRIP)/src +STRIP_FROM_INC_PATH = $(DOXYGEN_STRIP)/include +STRIP_FROM_PATH = $(DOXYGEN_STRIP)/src +STRIP_FROM_PATH += $(DOXYGEN_STRIP)/include SEPARATE_MEMBER_PAGES = YES TAB_SIZE = 2 -ALIASES = +ALIASES += "godbolt{1}=@include \1" +ALIASES += "groupheader{1}=

\1

" +ALIASES += "nullable=[NullablePointer](https://en.cppreference.com/w/cpp/named_req/NullablePointer)" +ALIASES += "semiregular=SemiRegular" +ALIASES += "regular=Regular" +ALIASES += "swappable=Swappable" +ALIASES += "callable=[Callable Object](https://en.cppreference.com/w/cpp/named_req/Callable)" +ALIASES += "container=[Container](https://en.cppreference.com/w/cpp/named_req/Container)" +ALIASES += "iterator=[Input Iterator](https://en.cppreference.com/w/cpp/named_req/Inputterator)" +ALIASES += "raiterator=[Random Access Iterator](https://en.cppreference.com/w/cpp/named_req/RandomAccessIterator)" +ALIASES += "callable{1}=[Callable Object\1](https://en.cppreference.com/w/cpp/named_req/Callable)" +ALIASES += "container{1}=[Container\1](https://en.cppreference.com/w/cpp/named_req/Container)" +ALIASES += "iterator{1}=[Input Iterator\1](https://en.cppreference.com/w/cpp/named_req/Inputterator)" +ALIASES += "raiterator{1}=[Random Access Iterator\1](https://en.cppreference.com/w/cpp/named_req/RandomAccessIterator" +ALIASES += "view{1}=[view\1](@ref kwk::view)" +ALIASES += "view=[view](@ref kwk::view)" + EXTENSION_MAPPING = MARKDOWN_SUPPORT = YES TOC_INCLUDE_HEADINGS = 5 @@ -63,644 +78,50 @@ INTERNAL_DOCS = NO CASE_SENSE_NAMES = YES HIDE_SCOPE_NAMES = NO HIDE_COMPOUND_REFERENCE= NO -SHOW_INCLUDE_FILES = YES - -# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each -# grouped member an include statement to the documentation, telling the reader -# which file to include in order to use the member. -# The default value is: NO. - +SHOW_INCLUDE_FILES = NO SHOW_GROUPED_MEMB_INC = YES - -# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include -# files with double quotes in the documentation rather than with sharp brackets. -# The default value is: NO. - -FORCE_LOCAL_INCLUDES = NO - -# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the -# documentation for inline members. -# The default value is: YES. - -INLINE_INFO = YES - SORT_MEMBER_DOCS = YES SORT_BRIEF_DOCS = YES SORT_MEMBERS_CTORS_1ST = YES SORT_GROUP_NAMES = YES - -# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by -# fully-qualified names, including namespaces. If set to NO, the class list will -# be sorted only by class name, not including the namespace part. -# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. -# Note: This option applies only to the class list, not to the alphabetical -# list. -# The default value is: NO. - -SORT_BY_SCOPE_NAME = NO - -# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper -# type resolution of all parameters of a function it will reject a match between -# the prototype and the implementation of a member function even if there is -# only one candidate or it is obvious which candidate to choose by doing a -# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still -# accept a match between prototype and implementation in such cases. -# The default value is: NO. - -STRICT_PROTO_MATCHING = NO - -# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo -# list. This list is created by putting \todo commands in the documentation. -# The default value is: YES. - GENERATE_TODOLIST = NO - -# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test -# list. This list is created by putting \test commands in the documentation. -# The default value is: YES. - GENERATE_TESTLIST = NO - -# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug -# list. This list is created by putting \bug commands in the documentation. -# The default value is: YES. - GENERATE_BUGLIST = NO - -# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO) -# the deprecated list. This list is created by putting \deprecated commands in -# the documentation. -# The default value is: YES. - -GENERATE_DEPRECATEDLIST= YES - -# The ENABLED_SECTIONS tag can be used to enable conditional documentation -# sections, marked by \if ... \endif and \cond -# ... \endcond blocks. - -ENABLED_SECTIONS = - -# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the -# initial value of a variable or macro / define can have for it to appear in the -# documentation. If the initializer consists of more lines than specified here -# it will be hidden. Use a value of 0 to hide initializers completely. The -# appearance of the value of individual variables and macros / defines can be -# controlled using \showinitializer or \hideinitializer command in the -# documentation regardless of this setting. -# Minimum value: 0, maximum value: 10000, default value: 30. - -MAX_INITIALIZER_LINES = 30 - -# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at -# the bottom of the documentation of classes and structs. If set to YES, the -# list will mention the files that were used to generate the documentation. -# The default value is: YES. - SHOW_USED_FILES = NO - -# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This -# will remove the Files entry from the Quick Index and from the Folder Tree View -# (if specified). -# The default value is: YES. - -SHOW_FILES = NO - -# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces -# page. This will remove the Namespaces entry from the Quick Index and from the -# Folder Tree View (if specified). -# The default value is: YES. - -SHOW_NAMESPACES = YES - -# The FILE_VERSION_FILTER tag can be used to specify a program or script that -# doxygen should invoke to get the current version for each file (typically from -# the version control system). Doxygen will invoke the program by executing (via -# popen()) the command command input-file, where command is the value of the -# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided -# by doxygen. Whatever the program writes to standard output is used as the file -# version. For an example see the documentation. - -FILE_VERSION_FILTER = - -# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed -# by doxygen. The layout file controls the global structure of the generated -# output files in an output format independent way. To create the layout file -# that represents doxygen's defaults, run doxygen with the -l option. You can -# optionally specify a file name after the option, if omitted DoxygenLayout.xml -# will be used as the name of the layout file. See also section "Changing the -# layout of pages" for information. -# -# Note that if you run doxygen from a directory containing a file called -# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE -# tag is left empty. - +SHOW_FILES = YES LAYOUT_FILE = layout.xml - -# The CITE_BIB_FILES tag can be used to specify one or more bib files containing -# the reference definitions. This must be a list of .bib files. The .bib -# extension is automatically appended if omitted. This requires the bibtex tool -# to be installed. See also https://en.wikipedia.org/wiki/BibTeX for more info. -# For LaTeX the style of the bibliography can be controlled using -# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the -# search path. See also \cite for info how to create references. - -CITE_BIB_FILES = - -#--------------------------------------------------------------------------- -# Configuration options related to warning and progress messages -#--------------------------------------------------------------------------- - -# The QUIET tag can be used to turn on/off the messages that are generated to -# standard output by doxygen. If QUIET is set to YES this implies that the -# messages are off. -# The default value is: NO. - -QUIET = NO - -# The WARNINGS tag can be used to turn on/off the warning messages that are -# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES -# this implies that the warnings are on. -# -# Tip: Turn warnings on while writing the documentation. -# The default value is: YES. - -WARNINGS = YES - -# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate -# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag -# will automatically be disabled. -# The default value is: YES. - -WARN_IF_UNDOCUMENTED = YES - -# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for -# potential errors in the documentation, such as documenting some parameters in -# a documented function twice, or documenting parameters that don't exist or -# using markup commands wrongly. -# The default value is: YES. - -WARN_IF_DOC_ERROR = YES - -# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that -# are documented, but have no documentation for their parameters or return -# value. If set to NO, doxygen will only warn about wrong parameter -# documentation, but not about the absence of documentation. If EXTRACT_ALL is -# set to YES then this flag will automatically be disabled. See also -# WARN_IF_INCOMPLETE_DOC -# The default value is: NO. - -WARN_NO_PARAMDOC = NO - -# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when -# a warning is encountered. If the WARN_AS_ERROR tag is set to FAIL_ON_WARNINGS -# then doxygen will continue running as if WARN_AS_ERROR tag is set to NO, but -# at the end of the doxygen process doxygen will return with a non-zero status. -# Possible values are: NO, YES and FAIL_ON_WARNINGS. -# The default value is: NO. - -WARN_AS_ERROR = NO - -# The WARN_FORMAT tag determines the format of the warning messages that doxygen -# can produce. The string should contain the $file, $line, and $text tags, which -# will be replaced by the file and line number from which the warning originated -# and the warning text. Optionally the format may contain $version, which will -# be replaced by the version of the file (if it could be obtained via -# FILE_VERSION_FILTER) -# The default value is: $file:$line: $text. - -WARN_FORMAT = "$file:$line: $text" - -# The WARN_LOGFILE tag can be used to specify a file to which warning and error -# messages should be written. If left blank the output is written to standard -# error (stderr). - -WARN_LOGFILE = - -#--------------------------------------------------------------------------- -# Configuration options related to the input files -#--------------------------------------------------------------------------- - -# The INPUT tag is used to specify the files and/or directories that contain -# documented source files. You may enter file names like myfile.cpp or -# directories like /usr/src/myproject. Separate the files or directories with -# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING -# Note: If this tag is empty the current directory is searched. - INPUT = ../include \ . -# This tag can be used to specify the character encoding of the source files -# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses -# libiconv (or the iconv built into libc) for the transcoding. See the libiconv -# documentation (see: -# https://www.gnu.org/software/libiconv/) for the list of possible encodings. -# The default value is: UTF-8. - -INPUT_ENCODING = UTF-8 - -# If the value of the INPUT tag contains directories, you can use the -# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and -# *.h) to filter out the source-files in the directories. -# -# Note that for custom extensions or not directly supported extensions you also -# need to set EXTENSION_MAPPING for the extension otherwise the files are not -# read by doxygen. -# -# Note the list of default checked file patterns might differ from the list of -# default file extension mappings. -# -# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, -# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, -# *.hh, *.hxx, *.hpp, *.h++, *.l, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, -# *.inc, *.m, *.markdown, *.md, *.mm, *.dox (to be provided as doxygen C -# comment), *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, *.f18, *.f, *.for, *.vhd, -# *.vhdl, *.ucf, *.qsf and *.ice. - -FILE_PATTERNS = *.c \ - *.cc \ - *.cxx \ - *.cpp \ - *.c++ \ - *.java \ - *.ii \ - *.ixx \ - *.ipp \ - *.i++ \ - *.inl \ - *.idl \ - *.ddl \ - *.odl \ - *.h \ - *.hh \ - *.hxx \ - *.hpp \ - *.h++ \ - *.l \ - *.cs \ - *.d \ - *.php \ - *.php4 \ - *.php5 \ - *.phtml \ - *.inc \ - *.m \ - *.markdown \ - *.md \ - *.mm \ - *.dox \ - *.py \ - *.pyw \ - *.f90 \ - *.f95 \ - *.f03 \ - *.f08 \ - *.f18 \ - *.f \ - *.for \ - *.vhd \ - *.vhdl \ - *.ucf \ - *.qsf \ - *.ice - -# The RECURSIVE tag can be used to specify whether or not subdirectories should -# be searched for input files as well. -# The default value is: NO. - RECURSIVE = YES - -# The EXCLUDE tag can be used to specify files and/or directories that should be -# excluded from the INPUT source files. This way you can easily exclude a -# subdirectory from a directory tree whose root is specified with the INPUT tag. -# -# Note that relative paths are relative to the directory from which doxygen is -# run. - -EXCLUDE = - -# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or -# directories that are symbolic links (a Unix file system feature) are excluded -# from the input. -# The default value is: NO. - -EXCLUDE_SYMLINKS = NO - -# If the value of the INPUT tag contains directories, you can use the -# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude -# certain files from those directories. -# -# Note that the wildcards are matched against the file with absolute path, so to -# exclude all test directories for example use the pattern */test/* - -EXCLUDE_PATTERNS = - -# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names -# (namespaces, classes, functions, etc.) that should be excluded from the -# output. The symbol name can be a fully qualified name, a word, or if the -# wildcard * is used, a substring. Examples: ANamespace, AClass, -# AClass::ANamespace, ANamespace::*Test -# -# Note that the wildcards are matched against the file with absolute path, so to -# exclude all test directories use the pattern */test/* - EXCLUDE_SYMBOLS = detail* - -# The EXAMPLE_PATH tag can be used to specify one or more files or directories -# that contain example code fragments that are included (see the \include -# command). - -EXAMPLE_PATH = ../test -EXAMPLE_PATH += . - -# If the value of the EXAMPLE_PATH tag contains directories, you can use the -# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and -# *.h) to filter out the source-files in the directories. If left blank all -# files are included. - -EXAMPLE_PATTERNS = * - -# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be -# searched for input files to be used with the \include or \dontinclude commands -# irrespective of the value of the RECURSIVE tag. -# The default value is: NO. - -EXAMPLE_RECURSIVE = NO - -# The IMAGE_PATH tag can be used to specify one or more files or directories -# that contain images that are to be included in the documentation (see the -# \image command). - -IMAGE_PATH = - -# The INPUT_FILTER tag can be used to specify a program that doxygen should -# invoke to filter for each input file. Doxygen will invoke the filter program -# by executing (via popen()) the command: -# -# -# -# where is the value of the INPUT_FILTER tag, and is the -# name of an input file. Doxygen will then use the output that the filter -# program writes to standard output. If FILTER_PATTERNS is specified, this tag -# will be ignored. -# -# Note that the filter must not add or remove lines; it is applied before the -# code is scanned, but not when the output code is generated. If lines are added -# or removed, the anchors will not be placed correctly. -# -# Note that for custom extensions or not directly supported extensions you also -# need to set EXTENSION_MAPPING for the extension otherwise the files are not -# properly processed by doxygen. - -INPUT_FILTER = - -# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern -# basis. Doxygen will compare the file name with each pattern and apply the -# filter if there is a match. The filters are a list of the form: pattern=filter -# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how -# filters are used. If the FILTER_PATTERNS tag is empty or if none of the -# patterns match the file name, INPUT_FILTER is applied. -# -# Note that for custom extensions or not directly supported extensions you also -# need to set EXTENSION_MAPPING for the extension otherwise the files are not -# properly processed by doxygen. - -FILTER_PATTERNS = - -# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using -# INPUT_FILTER) will also be used to filter the input files that are used for -# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). -# The default value is: NO. - -FILTER_SOURCE_FILES = NO - -# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file -# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and -# it is also possible to disable source filtering for a specific pattern using -# *.ext= (so without naming a filter). -# This tag requires that the tag FILTER_SOURCE_FILES is set to YES. - -FILTER_SOURCE_PATTERNS = - -# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that -# is part of the input, its contents will be placed on the main page -# (index.html). This can be useful if you have a project on for instance GitHub -# and want to reuse the introduction page also for the doxygen output. - -USE_MDFILE_AS_MAINPAGE = - -#--------------------------------------------------------------------------- -# Configuration options related to source browsing -#--------------------------------------------------------------------------- - -# If the SOURCE_BROWSER tag is set to YES then a list of source files will be -# generated. Documented entities will be cross-referenced with these sources. -# -# Note: To get rid of all source code in the generated output, make sure that -# also VERBATIM_HEADERS is set to NO. -# The default value is: NO. - SOURCE_BROWSER = NO - -# Setting the INLINE_SOURCES tag to YES will include the body of functions, -# classes and enums directly into the documentation. -# The default value is: NO. - -INLINE_SOURCES = NO - -# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any -# special comment blocks from generated source code fragments. Normal C, C++ and -# Fortran comments will always remain visible. -# The default value is: YES. - -STRIP_CODE_COMMENTS = YES - -# If the REFERENCED_BY_RELATION tag is set to YES then for each documented -# entity all documented functions referencing it will be listed. -# The default value is: NO. - -REFERENCED_BY_RELATION = NO - -# If the REFERENCES_RELATION tag is set to YES then for each documented function -# all documented entities called/used by that function will be listed. -# The default value is: NO. - -REFERENCES_RELATION = NO - -# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set -# to YES then the hyperlinks from functions in REFERENCES_RELATION and -# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will -# link to the documentation. -# The default value is: YES. - -REFERENCES_LINK_SOURCE = YES - -# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the -# source code will show a tooltip with additional information such as prototype, -# brief description and links to the definition and documentation. Since this -# will make the HTML file larger and loading of large files a bit slower, you -# can opt to disable this feature. -# The default value is: YES. -# This tag requires that the tag SOURCE_BROWSER is set to YES. - -SOURCE_TOOLTIPS = YES - -# If the USE_HTAGS tag is set to YES then the references to source code will -# point to the HTML generated by the htags(1) tool instead of doxygen built-in -# source browser. The htags tool is part of GNU's global source tagging system -# (see https://www.gnu.org/software/global/global.html). You will need version -# 4.8.6 or higher. -# -# To use it do the following: -# - Install the latest version of global -# - Enable SOURCE_BROWSER and USE_HTAGS in the configuration file -# - Make sure the INPUT points to the root of the source tree -# - Run doxygen as normal -# -# Doxygen will invoke htags (and that will in turn invoke gtags), so these -# tools must be available from the command line (i.e. in the search path). -# -# The result: instead of the source browser generated by doxygen, the links to -# source code will now point to the output of htags. -# The default value is: NO. -# This tag requires that the tag SOURCE_BROWSER is set to YES. - -USE_HTAGS = NO - -# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a -# verbatim copy of the header file for each class for which an include is -# specified. Set to NO to disable this. -# See also: Section \class. -# The default value is: YES. - VERBATIM_HEADERS = NO -#--------------------------------------------------------------------------- -# Configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- - -# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all -# compounds will be generated. Enable this if the project contains a lot of -# classes, structs, unions or interfaces. -# The default value is: YES. - -ALPHABETICAL_INDEX = YES - -# In case all classes in a project start with a common prefix, all classes will -# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag -# can be used to specify a prefix (or a list of prefixes) that should be ignored -# while generating the index headers. -# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. - -IGNORE_PREFIX = - #--------------------------------------------------------------------------- # Configuration options related to the HTML output #--------------------------------------------------------------------------- - -# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output -# The default value is: YES. - GENERATE_HTML = YES - -# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a -# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of -# it. -# The default directory is: html. -# This tag requires that the tag GENERATE_HTML is set to YES. - HTML_OUTPUT = ./ - -# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each -# generated HTML page (for example: .htm, .php, .asp). -# The default value is: .html. -# This tag requires that the tag GENERATE_HTML is set to YES. - HTML_FILE_EXTENSION = .html - -# The HTML_HEADER tag can be used to specify a user-defined HTML header file for -# each generated HTML page. If the tag is left blank doxygen will generate a -# standard header. -# -# To get valid HTML the header file that includes any scripts and style sheets -# that doxygen needs, which is dependent on the configuration options used (e.g. -# the setting GENERATE_TREEVIEW). It is highly recommended to start with a -# default header using -# doxygen -w html new_header.html new_footer.html new_stylesheet.css -# YourConfigFile -# and then modify the file new_header.html. See also section "Doxygen usage" -# for information on how to generate the default header that doxygen normally -# uses. -# Note: The header is subject to change so you typically have to regenerate the -# default header when upgrading to a newer version of doxygen. For a description -# of the possible markers and block names see the documentation. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_HEADER = base.html - -# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each -# generated HTML page. If the tag is left blank doxygen will generate a standard -# footer. See HTML_HEADER for more information on how to generate a default -# footer and what special commands can be used inside the footer. See also -# section "Doxygen usage" for information on how to generate the default footer -# that doxygen normally uses. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_FOOTER = footer.html - -# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style -# sheet that is used by each HTML page. It can be used to fine-tune the look of -# the HTML output. If left blank doxygen will generate a default style sheet. -# See also section "Doxygen usage" for information on how to generate the style -# sheet that doxygen normally uses. -# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as -# it is more robust and this tag (HTML_STYLESHEET) will in the future become -# obsolete. -# This tag requires that the tag GENERATE_HTML is set to YES. - +HTML_HEADER = ./base.html +HTML_FOOTER = $(DOXYGEN_ASSETS)/footer.html HTML_STYLESHEET = - -# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined -# cascading style sheets that are included after the standard style sheets -# created by doxygen. Using this option one can overrule certain style aspects. -# This is preferred over using HTML_STYLESHEET since it does not replace the -# standard style sheet and is therefore more robust against future updates. -# Doxygen will copy the style sheet files to the output directory. -# Note: The order of the extra style sheet files is of importance (e.g. the last -# style sheet in the list overrules the setting of the previous ones in the -# list). For an example see the documentation. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_EXTRA_STYLESHEET = custom.css -HTML_EXTRA_STYLESHEET += doxygen-awesome.css -HTML_EXTRA_STYLESHEET += doxygen-awesome-sidebar-only.css - -# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or -# other source files which should be copied to the HTML output directory. Note -# that these files will be copied to the base HTML output directory. Use the -# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these -# files. In the HTML_STYLESHEET file, use the file name only. Also note that the -# files will be copied as-is; there are no commands or markers available. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_EXTRA_FILES = godbolt.js -HTML_EXTRA_FILES += fragment.js -HTML_EXTRA_FILES += paragraph.js -HTML_COLORSTYLE_HUE = 293 -HTML_COLORSTYLE_SAT = 40 -HTML_COLORSTYLE_GAMMA = 60 +HTML_EXTRA_STYLESHEET = $(DOXYGEN_ASSETS)/custom.css +HTML_EXTRA_STYLESHEET += color.css +HTML_EXTRA_STYLESHEET += $(DOXYGEN_ASSETS)/doxygen-awesome.css +HTML_EXTRA_STYLESHEET += $(DOXYGEN_ASSETS)/doxygen-awesome-sidebar-only.css +HTML_EXTRA_FILES = $(DOXYGEN_ASSETS)/godbolt.js +HTML_EXTRA_FILES += $(DOXYGEN_ASSETS)/fragment.js +HTML_EXTRA_FILES += $(DOXYGEN_ASSETS)/paragraph.js +HTML_COLORSTYLE_HUE = 189 +HTML_COLORSTYLE_SAT = 28 +HTML_COLORSTYLE_GAMMA = 68 HTML_TIMESTAMP = NO HTML_DYNAMIC_MENUS = NO HTML_DYNAMIC_SECTIONS = NO HTML_INDEX_NUM_ENTRIES = 100 GENERATE_DOCSET = NO -DOCSET_FEEDNAME = "Doxygen generated docs" -DOCSET_BUNDLE_ID = org.doxygen.Project -DOCSET_PUBLISHER_ID = org.doxygen.Publisher -DOCSET_PUBLISHER_NAME = Publisher -GENERATE_HTMLHELP = NO -GENERATE_CHI = NO -GENERATE_QHP = NO -GENERATE_ECLIPSEHELP = NO DISABLE_INDEX = YES GENERATE_TREEVIEW = YES @@ -709,175 +130,14 @@ TREEVIEW_WIDTH = 250 EXT_LINKS_IN_WINDOW = NO FORMULA_FONTSIZE = 10 - -# Use the FORMULA_TRANSPARENT tag to determine whether or not the images -# generated for formulas are transparent PNGs. Transparent PNGs are not -# supported properly for IE 6.0, but are supported on all modern browsers. -# -# Note that when changing this option you need to delete any form_*.png files in -# the HTML output directory before the changes have effect. -# The default value is: YES. -# This tag requires that the tag GENERATE_HTML is set to YES. - FORMULA_TRANSPARENT = YES - -# The FORMULA_MACROFILE can contain LaTeX \newcommand and \renewcommand commands -# to create new LaTeX commands to be used in formulas as building blocks. See -# the section "Including formulas" for details. - -FORMULA_MACROFILE = - -# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see -# https://www.mathjax.org) which uses client side JavaScript for the rendering -# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX -# installed or if you want to formulas look prettier in the HTML output. When -# enabled you may also need to install MathJax separately and configure the path -# to it using the MATHJAX_RELPATH option. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - USE_MATHJAX = YES - -# When MathJax is enabled you can set the default output format to be used for -# the MathJax output. For more details about the output format see MathJax -# version 2 (see: -# http://docs.mathjax.org/en/v2.7-latest/output.html) and MathJax version 3 -# (see: -# http://docs.mathjax.org/en/latest/web/components/output.html). -# Possible values are: HTML-CSS (which is slower, but has the best -# compatibility. This is the name for Mathjax version 2, for MathJax version 3 -# this will be translated into chtml), NativeMML (i.e. MathML. Only supported -# for NathJax 2. For MathJax version 3 chtml will be used instead.), chtml (This -# is the name for Mathjax version 3, for MathJax version 2 this will be -# translated into HTML-CSS) and SVG. -# The default value is: HTML-CSS. -# This tag requires that the tag USE_MATHJAX is set to YES. - MATHJAX_FORMAT = HTML-CSS - -# When MathJax is enabled you need to specify the location relative to the HTML -# output directory using the MATHJAX_RELPATH option. The destination directory -# should contain the MathJax.js script. For instance, if the mathjax directory -# is located at the same level as the HTML output directory, then -# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax -# Content Delivery Network so you can quickly see the result without installing -# MathJax. However, it is strongly recommended to install a local copy of -# MathJax from https://www.mathjax.org before deployment. The default value is: -# - in case of MathJax version 2: https://cdn.jsdelivr.net/npm/mathjax@2 -# - in case of MathJax version 3: https://cdn.jsdelivr.net/npm/mathjax@3 -# This tag requires that the tag USE_MATHJAX is set to YES. - MATHJAX_RELPATH = https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1 - -# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax -# extension names that should be enabled during MathJax rendering. For example -# for MathJax version 2 (see -# https://docs.mathjax.org/en/v2.7-latest/tex.html#tex-and-latex-extensions): -# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols -# For example for MathJax version 3 (see -# http://docs.mathjax.org/en/latest/input/tex/extensions/index.html): -# MATHJAX_EXTENSIONS = ams -# This tag requires that the tag USE_MATHJAX is set to YES. - MATHJAX_EXTENSIONS = - -# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces -# of code that will be used on startup of the MathJax code. See the MathJax site -# (see: -# http://docs.mathjax.org/en/v2.7-latest/output.html) for more details. For an -# example see the documentation. -# This tag requires that the tag USE_MATHJAX is set to YES. - MATHJAX_CODEFILE = - -# When the SEARCHENGINE tag is enabled doxygen will generate a search box for -# the HTML output. The underlying search engine uses javascript and DHTML and -# should work on any modern browser. Note that when using HTML help -# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) -# there is already a search function so this one should typically be disabled. -# For large projects the javascript based search engine can be slow, then -# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to -# search using the keyboard; to jump to the search box use + S -# (what the is depends on the OS and browser, but it is typically -# , /