diff --git a/.github/workflows/documentation.yaml b/.github/workflows/documentation.yaml index 9e90bf5..454d91b 100644 --- a/.github/workflows/documentation.yaml +++ b/.github/workflows/documentation.yaml @@ -8,10 +8,14 @@ on: env: CPM_SOURCE_CACHE: ${{ github.workspace }}/cpm_modules +permissions: + contents: write + + jobs: build: name: Build and publish documentation - runs-on: macos-latest + runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 @@ -20,18 +24,22 @@ jobs: path: "**/cpm_modules" key: ${{ github.workflow }}-cpm-modules-${{ hashFiles('**/CMakeLists.txt', '**/*.cmake') }} - - name: Install dependencies + - name: Install python dependencies run: | - brew install doxygen - pip3 install jinja2 Pygments + pip3 install jinja2==3.1.6 Pygments==2.19.1 + - name: Install Doxygen + uses: ssciwr/doxygen-install@v1 + with: + version: "1.13.2" + - name: Build run: | cmake -Sdocumentation -Bbuild cmake --build build --target GenerateDocs - name: Publish - uses: peaceiris/actions-gh-pages@v3 + uses: peaceiris/actions-gh-pages@v4 with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: ./build/doxygen/html diff --git a/CMakeLists.txt b/CMakeLists.txt index 8e686d9..31cf517 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -28,7 +28,7 @@ CPMAddPackage("gh:TheLartians/PackageProject.cmake@1.8.0") CPMAddPackage( NAME fmt - GIT_TAG 9.1.0 + GIT_TAG 10.2.1 GITHUB_REPOSITORY fmtlib/fmt OPTIONS "FMT_INSTALL YES" # create an installable target ) @@ -74,5 +74,5 @@ packageProject( INCLUDE_DESTINATION include/${PROJECT_NAME}-${PROJECT_VERSION} VERSION_HEADER "${VERSION_HEADER_LOCATION}" COMPATIBILITY SameMajorVersion - DEPENDENCIES "fmt 8.1.1" + DEPENDENCIES "fmt 10.2.1" ) diff --git a/cmake/CPM.cmake b/cmake/CPM.cmake index a10f926..baf2d8c 100644 --- a/cmake/CPM.cmake +++ b/cmake/CPM.cmake @@ -1,8 +1,11 @@ -set(CPM_DOWNLOAD_VERSION 0.35.0) +# SPDX-License-Identifier: MIT +# +# SPDX-FileCopyrightText: Copyright (c) 2019-2023 Lars Melchior and contributors + +set(CPM_DOWNLOAD_VERSION 0.40.2) +set(CPM_HASH_SUM "c8cdc32c03816538ce22781ed72964dc864b2a34a310d3b7104812a5ca2d835d") if(CPM_SOURCE_CACHE) - # Expand relative path. This is important if the provided path contains a tilde (~) - get_filename_component(CPM_SOURCE_CACHE ${CPM_SOURCE_CACHE} ABSOLUTE) 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") @@ -10,12 +13,12 @@ else() set(CPM_DOWNLOAD_LOCATION "${CMAKE_BINARY_DIR}/cmake/CPM_${CPM_DOWNLOAD_VERSION}.cmake") endif() -if(NOT (EXISTS ${CPM_DOWNLOAD_LOCATION})) - message(STATUS "Downloading CPM.cmake to ${CPM_DOWNLOAD_LOCATION}") - file(DOWNLOAD - https://github.com/cpm-cmake/CPM.cmake/releases/download/v${CPM_DOWNLOAD_VERSION}/CPM.cmake - ${CPM_DOWNLOAD_LOCATION} - ) -endif() +# Expand relative path. This is important if the provided path contains a tilde (~) +get_filename_component(CPM_DOWNLOAD_LOCATION ${CPM_DOWNLOAD_LOCATION} ABSOLUTE) + +file(DOWNLOAD + https://github.com/cpm-cmake/CPM.cmake/releases/download/v${CPM_DOWNLOAD_VERSION}/CPM.cmake + ${CPM_DOWNLOAD_LOCATION} EXPECTED_HASH SHA256=${CPM_HASH_SUM} +) include(${CPM_DOWNLOAD_LOCATION}) diff --git a/cmake/tools.cmake b/cmake/tools.cmake index 2364da9..e884c36 100644 --- a/cmake/tools.cmake +++ b/cmake/tools.cmake @@ -11,7 +11,7 @@ include(${CMAKE_CURRENT_LIST_DIR}/CPM.cmake) # enables sanitizers support using the the `USE_SANITIZER` flag available values are: Address, # Memory, MemoryWithOrigins, Undefined, Thread, Leak, 'Address;Undefined' if(USE_SANITIZER OR USE_STATIC_ANALYZER) - CPMAddPackage("gh:StableCoder/cmake-scripts#1f822d1fc87c8d7720c074cde8a278b44963c354") + CPMAddPackage("gh:StableCoder/cmake-scripts#24.04") if(USE_SANITIZER) include(${cmake-scripts_SOURCE_DIR}/sanitizers.cmake) @@ -54,13 +54,21 @@ if(USE_SANITIZER OR USE_STATIC_ANALYZER) include(${cmake-scripts_SOURCE_DIR}/tools.cmake) - clang_tidy(${CLANG_TIDY_ARGS}) - include_what_you_use(${IWYU_ARGS}) - cppcheck(${CPPCHECK_ARGS}) + if(${CLANG_TIDY}) + clang_tidy(${CLANG_TIDY_ARGS}) + endif() + + if(${IWYU}) + include_what_you_use(${IWYU_ARGS}) + endif() + + if(${CPPCHECK}) + cppcheck(${CPPCHECK_ARGS}) + endif() endif() endif() # enables CCACHE support through the USE_CCACHE flag possible values are: YES, NO or equivalent if(USE_CCACHE) - CPMAddPackage("gh:TheLartians/Ccache.cmake@1.2.3") + CPMAddPackage("gh:TheLartians/Ccache.cmake@1.2.4") endif() diff --git a/documentation/pages/about.dox b/documentation/pages/about.dox index 8ca02c0..59fc18f 100644 --- a/documentation/pages/about.dox +++ b/documentation/pages/about.dox @@ -1,5 +1,5 @@ /** @page about About @section doc ModernCppStarter Documentation - This is the auto-generated documentation for the initial project of the ModernCppStater. + This is the auto-generated documentation for the initial project of the ModernCppStarter. It shows how we can use Doxygen to automatically build a browsable documentation for your projects. */