Skip to content

Commit bd9b466

Browse files
committed
Add a few changes
1 parent fb5eec4 commit bd9b466

File tree

6 files changed

+40
-40
lines changed

6 files changed

+40
-40
lines changed

.devcontainer/devcontainer.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@
1111
"llvm-vs-code-extensions.vscode-clangd",
1212
"jeff-hykin.better-cpp-syntax",
1313
"cschlosser.doxdocgen", // Generate doxygen documentation for source code
14-
"JacquesLucke.gcov-viewer" // View gcov covered lines in the source code
14+
"JacquesLucke.gcov-viewer", // View gcov covered lines in the source code
15+
"jbenden.c-cpp-flylint" // Lint C/C++ code with supported static analysis tools
1516
]
1617
}
1718
}

.gitlab/.gitlab-ci.yml

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,12 @@ stages:
1111
- deploy
1212
- documentation
1313

14-
default:
15-
image: gcc
14+
#default:
15+
# image: gcc
1616

1717
variables:
1818
GIT_SUBMODULE_STRATEGY: recursive
19+
BUILD_GCC_DEB_IMAGE: $CI_REGISTRY_IMAGE/build_gcc_deb:latest
1920
DOXYGEN_IMAGE: $CI_REGISTRY_IMAGE/doxygen:latest
2021
DOCKER_SCRIPTS_PATH: .gitlab/docker_scripts
2122
DOXYGEN_HTML_PATH: docs/doxygen/build/html
@@ -54,14 +55,18 @@ image/doxygen:
5455
- changes:
5556
- $DOCKER_SCRIPTS_PATH/doxygen/**/*
5657

58+
image/build_gcc_deb:
59+
extends: .image
60+
rules:
61+
- changes:
62+
- $DOCKER_SCRIPTS_PATH/build_gcc_deb/**/*
5763

58-
# build:
59-
# stage: build
60-
# interruptible: true
61-
# script:
62-
# - chmod a+x ./.github/scripts/*.cmake
63-
# - cmake -P ./.github/scripts/configure.cmake
64-
# - cmake -P ./.github/scripts/build.cmake
64+
build:
65+
stage: build
66+
interruptible: true
67+
script:
68+
- cmake -S . -B build -D CMAKE_BUILD_TYPE=Debug
69+
-G "Ninja" -D CMAKE_MAKE_PROGRAM=ninja
6570

6671
# build:
6772
# stage: build
@@ -97,10 +102,9 @@ doxygen_html:
97102
dependencies:
98103
- image/doxygen
99104
interruptible: true
100-
cache:
101-
key: 'doxygen_html'
102-
paths: ['$DOXYGEN_HTML_PATH']
103-
policy: push
105+
artifacts:
106+
paths:
107+
- $DOXYGEN_HTML_PATH
104108
script:
105109
- echo "Hello, $GITLAB_USER_LOGIN!"
106110
- mkdir build && cd build
@@ -113,10 +117,6 @@ pages:
113117
interruptible: false # Deployment jobs usually shouldn't be cancelled, to prevent partial deployments.
114118
dependencies:
115119
- doxygen_html
116-
cache:
117-
key: 'doxygen_html'
118-
paths: ['$DOXYGEN_HTML_PATH']
119-
policy: pull
120120
variables:
121121
GIT_STRATEGY: none
122122
script:
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
FROM debian:latest
1+
FROM debian:bookworm-slim
22
ADD bootstrap.sh /
33
RUN chmod +x /bootstrap.sh && /bootstrap.sh && rm /bootstrap.sh

.gitlab/docker_scripts/debian/bootstrap.sh renamed to .gitlab/docker_scripts/build_gcc_deb/bootstrap.sh

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,11 @@ apt-get update
77
apt-get dist-upgrade -y
88

99
apt-get install --no-install-recommends -y \
10+
build-essential \
1011
cmake \
11-
doxygen \
12-
graphviz \
13-
make
12+
ninja-build \
13+
libwxgtk3.0-gtk3-dev \
14+
libgtest-dev
1415

1516
apt-get autoremove -y
1617
apt-get clean

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ A template for modern C++ cross-platform projects. Using CMake, CI/CD, unit test
4141
### Progress status
4242

4343
![CMake](https://img.shields.io/badge/CMake-done-green) ![CTest](https://img.shields.io/badge/CTest-done-green) ![CPack](https://img.shields.io/badge/CPack-done-green)![CDash](https://img.shields.io/badge/CDash-done-green) ![codecov](https://img.shields.io/badge/codecov-done-green) ![coveralls](https://img.shields.io/badge/coveralls-done-green) ![coverity](https://img.shields.io/badge/coverity-done-green) ![consoleApp](https://img.shields.io/badge/console%20app-done-green) ![staticLib](https://img.shields.io/badge/static%20library-done-green) ![dynamicLib](https://img.shields.io/badge/dynamic%20library-todo-red) ![wxWidgets](https://img.shields.io/badge/wxWidgets-done-green) ![Qt](https://img.shields.io/badge/Qt-todo-red) ![windowsIco](https://img.shields.io/badge/windows%20icon-done-green)
44-
![windowsVer](https://img.shields.io/badge/windows%20version-done-green) ![i18nL10n](https://img.shields.io/badge/i18n%20and%20L10n-todo-red) ![Boost](https://img.shields.io/badge/boost-todo-red) ![GoogleTest](https://img.shields.io/badge/GoogleTest-done-green) ![BoostTest](https://img.shields.io/badge/Boost.Test-todo-red) ![Catch2](https://img.shields.io/badge/catch2-todo-red) ![Doctest](https://img.shields.io/badge/doctest-todo-red) ![vcpkg](https://img.shields.io/badge/vcpkg-done-green) ![conan](https://img.shields.io/badge/conan-todo-red) ![cppcheck](https://img.shields.io/badge/cppcheck-done-green) ![CSA](https://img.shields.io/badge/clang%20static%20analyzer-done-green) ![clangtidy](https://img.shields.io/badge/clang%20tidy-done-green) ![lcov](https://img.shields.io/badge/lcov-done-green) ![llvm-cov](https://img.shields.io/badge/llvm--cov-todo-red) ![gcovr](https://img.shields.io/badge/gcovr-done-green) ![OpenCppCoverage](https://img.shields.io/badge/OpenCppCoverage-needs%20work-yellow) ![valgrind](https://img.shields.io/badge/valgrind-done-green) ![sanitizers](https://img.shields.io/badge/sanitizers-done-green) ![gprof](https://img.shields.io/badge/gprof-todo-red) ![IntelVTuneProfiler](https://img.shields.io/badge/Intel%20VTune%20Profiler-todo-red) ![perf](https://img.shields.io/badge/perf-todo-red) ![doxygen](https://img.shields.io/badge/doxygen-done-green) ![sphinx](https://img.shields.io/badge/sphinx-needs%20work-yellow) ![GitHub Actions](https://img.shields.io/badge/GitHub%20Actions-done-green) ![GitHub Pages](https://img.shields.io/badge/GitHub%20Pages-done-green) ![GitLab CI/CD](https://img.shields.io/badge/GitLab%20CI/CD-todo-red) ![GitLab Pages](https://img.shields.io/badge/GitLab%20Pages-done-green) ![nsis](https://img.shields.io/badge/nsis-done-green) ![wix toolset](https://img.shields.io/badge/wix%20toolset-done-green) ![deb](https://img.shields.io/badge/deb-done-green) ![rpm](https://img.shields.io/badge/rpm-done-green) ![DragNDrop](https://img.shields.io/badge/DragNDrop-needs%20work-yellow) ![productbuild](https://img.shields.io/badge/productbuild-todo-red) ![raspbian](https://img.shields.io/badge/raspbian-todo-red) ![SignTool](https://img.shields.io/badge/SignTool-todo-red) ![GitHub Codespaces](https://img.shields.io/badge/GitHub%20Codespaces-done-green) ![MSVC](https://img.shields.io/badge/MSVC-done-green) ![MinGW](https://img.shields.io/badge/MinGW-done-green) ![LLVM](https://img.shields.io/badge/LLVM-done-green)
44+
![windowsVer](https://img.shields.io/badge/windows%20version-done-green) ![i18nL10n](https://img.shields.io/badge/i18n%20and%20L10n-todo-red) ![Boost](https://img.shields.io/badge/boost-todo-red) ![GoogleTest](https://img.shields.io/badge/GoogleTest-done-green) ![BoostTest](https://img.shields.io/badge/Boost.Test-todo-red) ![Catch2](https://img.shields.io/badge/catch2-todo-red) ![Doctest](https://img.shields.io/badge/doctest-todo-red) ![vcpkg](https://img.shields.io/badge/vcpkg-done-green) ![conan](https://img.shields.io/badge/conan-todo-red) ![cppcheck](https://img.shields.io/badge/cppcheck-done-green) ![CSA](https://img.shields.io/badge/clang%20static%20analyzer-done-green) ![clangtidy](https://img.shields.io/badge/clang%20tidy-done-green) ![lcov](https://img.shields.io/badge/lcov-done-green) ![llvm-cov](https://img.shields.io/badge/llvm--cov-todo-red) ![gcovr](https://img.shields.io/badge/gcovr-done-green) ![OpenCppCoverage](https://img.shields.io/badge/OpenCppCoverage-needs%20work-yellow) ![valgrind](https://img.shields.io/badge/valgrind-done-green) ![sanitizers](https://img.shields.io/badge/sanitizers-done-green) ![gdb](https://img.shields.io/badge/gdb-todo-red) ![gprof](https://img.shields.io/badge/gprof-todo-red) ![IntelVTuneProfiler](https://img.shields.io/badge/Intel%20VTune%20Profiler-todo-red) ![perf](https://img.shields.io/badge/perf-todo-red) ![doxygen](https://img.shields.io/badge/doxygen-done-green) ![sphinx](https://img.shields.io/badge/sphinx-needs%20work-yellow) ![Read The Docs](https://img.shields.io/badge/Read%20the%20Docs-todo-red) ![GitHub Actions](https://img.shields.io/badge/GitHub%20Actions-done-green) ![GitHub Pages](https://img.shields.io/badge/GitHub%20Pages-done-green) ![GitLab CI/CD](https://img.shields.io/badge/GitLab%20CI/CD-todo-red) ![GitLab Pages](https://img.shields.io/badge/GitLab%20Pages-done-green) ![nsis](https://img.shields.io/badge/nsis-done-green) ![wix toolset](https://img.shields.io/badge/wix%20toolset-done-green) ![deb](https://img.shields.io/badge/deb-done-green) ![rpm](https://img.shields.io/badge/rpm-done-green) ![DragNDrop](https://img.shields.io/badge/DragNDrop-needs%20work-yellow) ![productbuild](https://img.shields.io/badge/productbuild-todo-red) ![raspbian](https://img.shields.io/badge/raspbian-todo-red) ![SignTool](https://img.shields.io/badge/SignTool-todo-red) ![GitHub Codespaces](https://img.shields.io/badge/GitHub%20Codespaces-done-green) ![MSVC](https://img.shields.io/badge/MSVC-done-green) ![MinGW](https://img.shields.io/badge/MinGW-done-green) ![LLVM](https://img.shields.io/badge/LLVM-done-green)
4545

4646

4747
## Download

cmake/doxygen.cmake

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ find_package(Doxygen)
55
set(DOXYGEN_GENERATE_HTML YES CACHE BOOL "Generate Doxygen HTML")
66
set(DOXYGEN_GENERATE_LATEX YES CACHE BOOL "Generate Doxygen LaTeX")
77
set(DOXYGEN_GENERATE_XML YES) # Needed by Sphinx
8-
set(DOXYGEN_USE_MDFILE_AS_MAINPAGE README.md)
98
set(DOXYGEN_PROJECT_LOGO ${DOXYGEN_DIR}/logo.png)
109
set(DOXYGEN_OUTPUT_DIRECTORY ${DOXYGEN_DIR}/build)
1110
set(DOXYGEN_GENERATE_TREEVIEW YES) # Required by doxygen-awesome-css
@@ -33,24 +32,23 @@ if (DOXYGEN_FOUND)
3332
message(STATUS "-- Doxygen documentation enabled through 'doxygen' target.")
3433

3534
# Add Table of Contents to markdown files
36-
file(COPY
37-
README.md
38-
${DOCS_DIR}/getting_started.md
39-
${DOCS_DIR}/install.md
40-
${DOCS_DIR}/development_guide.md
41-
DESTINATION "${CMAKE_CURRENT_BINARY_DIR}")
42-
43-
file(GLOB md_files "${CMAKE_CURRENT_BINARY_DIR}/*.md")
44-
foreach(filename ${md_files})
45-
file(READ ${filename} MD_TEXT)
46-
file(WRITE ${filename} "[TOC]\n\n${MD_TEXT}")
47-
endforeach()
35+
file(GLOB md_files ${CMAKE_SOURCE_DIR}/docs/*.md)
36+
37+
file(COPY ${CMAKE_SOURCE_DIR}/README.md DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/md_files")
38+
file(COPY ${md_files} DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/md_files/docs")
39+
40+
file(GLOB_RECURSE md_files "${CMAKE_CURRENT_BINARY_DIR}/md_files/*.md")
41+
foreach(filename ${md_files})
42+
file(READ ${filename} MD_TEXT)
43+
# Insert [TOC] immediately after the first level-1 header line.
44+
string(REGEX REPLACE "^(# [^\n]+)\r?\n(.+)" "\\1\n[TOC]\n\\2" MD_TEXT_MODIFIED "${MD_TEXT}")
45+
file(WRITE ${filename} "${MD_TEXT_MODIFIED}")
46+
endforeach()
47+
48+
set(DOXYGEN_USE_MDFILE_AS_MAINPAGE "${CMAKE_CURRENT_BINARY_DIR}/md_files/README.md")
4849

4950
doxygen_add_docs(doxygen
50-
${CMAKE_CURRENT_BINARY_DIR}/README.md
51-
${CMAKE_CURRENT_BINARY_DIR}/getting_started.md
52-
${CMAKE_CURRENT_BINARY_DIR}/install.md
53-
${CMAKE_CURRENT_BINARY_DIR}/development_guide.md
51+
${md_files}
5452
LICENSE
5553
${SOURCE_DIR})
5654
endif()

0 commit comments

Comments
 (0)