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
2 changes: 1 addition & 1 deletion .clang-tidy
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
Checks: '*,-fuchsia-*,-google-*,-zircon-*,-abseil-*,-altera-*,-llvm*,-modernize-use-trailing-return-type,-misc-include-cleaner'
Checks: '*,-fuchsia-*,-google-*,-zircon-*,-abseil-*,-altera-*,-llvm*,-modernize-use-trailing-return-type,-misc-include-cleaner,-readability-else-after-return'
WarningsAsErrors: ''
HeaderFilterRegex: ''
FormatStyle: none
22 changes: 20 additions & 2 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
FROM mcr.microsoft.com/devcontainers/base:dev-ubuntu24.04

LABEL maintainer="Michel Estermann <estermann.michel@gmail.com>"
ARG BASE_IMAGE=mcr.microsoft.com/devcontainers/base:ubuntu

FROM $BASE_IMAGE

LABEL maintainer="Michel Estermann <estermann.michel@gmail.com>"
ARG CLANG_VERSION=18
ARG GCC_VERSION=14

RUN apt-get update \
&& apt-get clean \
&& apt-get -qq install -y --no-install-recommends \
make \
build-essential \
Expand All @@ -25,6 +28,7 @@ RUN apt-get update \
gcc-14 \
file \
ssh-client \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*

# Install locales package and generate en_US.UTF-8 locale
Expand Down Expand Up @@ -132,3 +136,17 @@ RUN update-alternatives --install /usr/bin/cc cc /usr/bin/clang-${CLANG_VERSION}
RUN update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang++-${CLANG_VERSION} 100
RUN update-alternatives --install /usr/bin/clang-tidy clang-tidy /usr/bin/clang-tidy-${CLANG_VERSION} 100
RUN update-alternatives --install /usr/bin/clang-format clang-format /usr/bin/clang-format-${CLANG_VERSION} 100

# Install packages
RUN apt-get update \
&& apt-get -qq install -y --no-install-recommends \
ubuntu-desktop \
tightvncserver \
novnc \
websockify \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*

EXPOSE 5901 6080

CMD ["sh", "-c", "/usr/share/novnc/utils/launch.sh --vnc localhost:5901 & vncserver :1 -geometry 1400x1000 -depth 24 && tail -f /dev/null"]
88 changes: 52 additions & 36 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,40 +1,56 @@
{
"name": "C++",
"build": {
"name": "C++ noVNC",
"build": {
"context": "..",
"dockerfile": "Dockerfile",
"args": {
"CLANG_VERSION": "18",
"GCC_VERSION": "14"
}
},
"mounts": [
"source=${localEnv:HOME}/.ssh,target=/home/vscode/.ssh,type=bind",
"source=${localEnv:HOME}/.conan2,target=/home/vscode/.conan2,type=bind",
"source=native-ccache,target=/opt/.native-ccache,type=volume"
],
"dockerfile": "Dockerfile",
"args": {
"CLANG_VERSION": "19",
"GCC_VERSION": "14",
"BASE_IMAGE": "mcr.microsoft.com/devcontainers/base:ubuntu"
}
},
"mounts": [
"source=${localEnv:HOME}/.ssh,target=/home/vscode/.ssh,type=bind"
],
"workspaceMount": "source=${localWorkspaceFolder},target=/workspaces/Coronan,type=bind",
"updateRemoteUserUID": true,
"postStartCommand": "git config --global --add safe.directory ${containerWorkspaceFolder}",

"postAttachCommand": "pre-commit install -f --hook-type pre-commit && conan profile detect --force && conan install . --build=missing --settings=build_type=Debug && conan install . --build=missing --settings=build_type=Release",
"customizations": {
"vscode": {
"extensions": [
"ms-vscode.cpptools",
"ms-vscode.cpptools-extension-pack",
"xaver.clang-format",
"llvm-vs-code-extensions.vscode-clangd",
"twxs.cmake",
"ms-vscode.cmake-tools",
"mhutchie.git-graph",
"donjayamanne.githistory",
"webfreak.debug",
"jnoortheen.nix-ide",
"ms-python.python",
"hbenl.vscode-test-explorer",
"ms-azuretools.vscode-docker",
"codacy-app.codacy"
]
}
}
"postStartCommand": "git config --global --add safe.directory ${containerWorkspaceFolder}",
"postAttachCommand": "pre-commit install -f --hook-type pre-commit && conan profile detect --force",
"customizations": {
"vscode": {
"extensions": [
"ms-vscode.cpptools",
"ms-vscode.cpptools-extension-pack",
"ms-vscode.cmake-tools",
"xaver.clang-format",
"ms-python.python",
"ms-python.autopep8",
"jeff-hykin.better-cpp-syntax",
"matepek.vscode-catch2-test-adapter",
"mhutchie.git-graph",
"cs128.cs128-clang-tidy",
"donjayamanne.githistory",
"webfreak.debug",
"jnoortheen.nix-ide",
"hbenl.vscode-test-explorer",
"ms-azuretools.vscode-docker",
"actboy168.tasks",
"streetsidesoftware.code-spell-checker",
"github.vscode-pull-request-github"
]
}
},
"features": {
"ghcr.io/devcontainers/features/nix:1": {},
"ghcr.io/ChristopherMacGown/devcontainer-features/direnv:1": {}
},
"forwardPorts": [
6080
],
"portsAttributes": {
"6080": {
"label": "noVNC",
"onAutoForward": "openPreview"
}
}
}
4 changes: 2 additions & 2 deletions .envrc
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# uncomment if you want to use a nix-shell to build
# use nix

CC=gcc
CXX=g++
export CC=gcc
export CXX=g++
2 changes: 1 addition & 1 deletion .github/workflows/api-doc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ jobs:
- name: Set conan compiler env
run: conan profile detect
- name: conan install
run: conan install . --build=missing --settings=build_type=Debug
run: conan install . --build=missing --settings build_type=Debug
- name: cmake-configuration
run: cmake -S . -B build -DCMAKE_BUILD_TYPE=Debug
- name: build-documentation
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ci-linux-sanatizer.yml
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@ jobs:
- name: Set conan compiler env
run: conan profile detect
- name: conan install
run: conan install . --build=missing --settings=build_type=Debug --settings=compiler.cppstd=17
run: conan install . --build=missing --settings build_type=Debug --settings=compiler.cppstd=17
- name: CMake configure
run: |
cmake -S . --preset=${{ matrix.profile }}
Expand Down
37 changes: 32 additions & 5 deletions .github/workflows/ci-linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -79,12 +79,21 @@ jobs:
generator: Ninja
coverage: OFF
download_qt: OFF
- name: ubuntu-24.04-clang-18-download-qt
- name: ubuntu-24.04-clang-19
os: ubuntu-24.04
build_type: Release
cppcompiler: clang++-18
ccompiler: clang-18
clang-tidy: clang-tidy-18
cppcompiler: clang++-19
ccompiler: clang-19
clang-tidy: clang-tidy-19
generator: Ninja
coverage: OFF
download_qt: OFF
- name: ubuntu-24.04-clang-19-download-qt
os: ubuntu-24.04
build_type: Release
cppcompiler: clang++-19
ccompiler: clang-19
clang-tidy: clang-tidy-19
generator: Ninja
coverage: OFF
download_qt: ON
Expand Down Expand Up @@ -124,6 +133,24 @@ jobs:
generator: Ninja
coverage: OFF
download_qt: OFF
- name: ubuntu-24.04-arm-clang
os: ubuntu-24.04-arm
build_type: Release
cppcompiler: clang++
ccompiler: clang
clang-tidy: clang-tidy
generator: Ninja
coverage: OFF
download_qt: OFF
- name: ubuntu-24.04-arm-gcc
os: ubuntu-24.04-arm
build_type: Release
cppcompiler: g++
ccompiler: gcc
clang-tidy: clang-tidy
generator: Ninja
coverage: OFF
download_qt: OFF

env:
CXX: ${{ matrix.cppcompiler }}
Expand Down Expand Up @@ -168,7 +195,7 @@ jobs:
- name: Set conan compiler env
run: conan profile detect
- name: conan install
run: conan install . --build=missing --settings=build_type=${{ matrix.build_type }} --settings=compiler.cppstd=17
run: conan install . --build=missing --settings build_type=${{ matrix.build_type }} --settings compiler.cppstd=17
- name: CMake configure
run: |
cmake -S . -B ./build -G "${{ matrix.generator }}" \
Expand Down
13 changes: 11 additions & 2 deletions .github/workflows/ci-macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,20 +21,29 @@ jobs:
build_type: Release
cppcompiler: clang++
ccompiler: clang
libcxx: libc++
generators: Ninja
- name: macOS-15-intel-clang
os: macos-15-intel
build_type: Release
cppcompiler: clang++
ccompiler: clang
libcxx: libc++
generators: Ninja
- name: macOS-14-clang
os: macOS-14
build_type: Release
cppcompiler: clang++
ccompiler: clang
libcxx: libc++
generators: Ninja
- name: macOS-15-clang
os: macOS-15
build_type: Release
cppcompiler: clang++
ccompiler: clang
libcxx: libc++
generators: Ninja

env:
CXX: ${{ matrix.cppcompiler }}
CC: ${{ matrix.ccompiler }}
Expand Down Expand Up @@ -63,7 +72,7 @@ jobs:
- name: Set conan compiler env
run: conan profile detect
- name: conan install
run: conan install . --build=missing --settings=build_type=${{ matrix.build_type }}
run: conan install . --build=missing --settings build_type=${{ matrix.build_type }} --settings compiler.libcxx=${{ matrix.libcxx }}
- name: CMake configure
run: |
cmake -S . -B ./build -G "${{ matrix.generators }}" \
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ci-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ jobs:
- name: Set conan compiler env
run: conan profile detect
- name: conan install
run: conan install . --build=missing --settings=build_type=Release --settings=compiler.cppstd=17
run: conan install . --build=missing --settings build_type=Release --settings compiler.cppstd=17
- name: CMake configure
run: |
cmake -S . --preset=linux-gcc-release
Expand Down
30 changes: 25 additions & 5 deletions .github/workflows/ci-windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,27 @@ jobs:
cppcompiler: cl
ccompiler: cl
generators: Visual Studio 17 2022
arch: x64
qt-host: windows
qt-arch: win64_msvc2022_64
- name: windows-2025-VS-2022
os: windows-2025
build_type: Release
cppcompiler: cl
ccompiler: cl
generators: Visual Studio 17 2022

arch: x64
qt-host: windows
qt-arch: win64_msvc2022_64
- name: windows-11-arm-VS-2022
os: windows-11-arm
build_type: Release
cppcompiler: cl
ccompiler: cl
generators: Visual Studio 17 2022
arch: arm64
qt-host: windows_arm64
qt-arch: win64_msvc2022_arm64
env:
CXX: ${{ matrix.cppcompiler }}
CC: ${{ matrix.ccompiler }}
Expand All @@ -50,19 +64,25 @@ jobs:
uses: jurplel/install-qt-action@v4
with:
version: 6.8.3
host: windows
host: ${{ matrix.qt-host }}
target: desktop
arch: win64_msvc2022_64
arch: ${{ matrix.qt-arch }}
modules: qtcharts
- name: Install Qt ifw
uses: jurplel/install-qt-action@v4
if: matrix.qt-host == 'windows'
with:
host: windows
target: desktop
tools: tools_ifw
- name: setup-msvc-dev
uses: TheMrMilchmann/setup-msvc-dev@v3
with:
arch: x64
arch: ${{ matrix.arch }}
- name: Set conan compiler env
run: conan profile detect
- name: conan install
run: conan install . --build=missing --settings=build_type=${{ matrix.build_type }} --settings=compiler.cppstd=17
run: conan install . --build=missing --settings build_type=${{ matrix.build_type }} --settings compiler.cppstd=17
- name: CMake configure
run: |
cmake -S . -B ./build -G "${{ matrix.generators }}"
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/nix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,13 +41,13 @@ jobs:
ccache-${{ matrix.name }}
- uses: cachix/install-nix-action@v27
with:
nix_path: nixpkgs=channel:nixos-24.11
nix_path: nixpkgs=channel:nixos-25.05
- uses: cachix/cachix-action@v15
with:
name: bbvch
authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
- run: |
nix-shell --command "conan profile detect"
nix-shell --command "conan install . --build=missing --settings=build_type=Debug"
nix-shell --command "source venv/bin/activate && conan profile detect"
nix-shell --command "source venv/bin/activate && conan install . --build=missing --settings build_type=Debug"
nix-shell --command "cmake -S ${GITHUB_WORKSPACE} --preset=${{ matrix.configure_preset }}"
nix-shell --command "cmake --build --preset=${{ matrix.build_preset }}"
6 changes: 3 additions & 3 deletions .github/workflows/sonarqube-scan.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,17 +59,17 @@ jobs:
- name: CMake configure
run: cmake -S . -B ./build -G Ninja -DENABLE_COVERAGE=${{ env.WITH_COVERAGE }} -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }}
- name: Run Build Wrapper
run: build-wrapper-linux-x86-64 --out-dir ${{ env.BUILD_WRAPPER_OUT_DIR }} cmake --build build/ --config ${{ env.BUILD_TYPE }}
run: build-wrapper-linux-x86-64 --out-dir ${{ env.BUILD_WRAPPER_OUT_DIR }} ninja -C ./build
- name: Collect coverage into one XML report
if: env.WITH_COVERAGE == 'ON'
run: |
gcovr --sonarqube > coverage.xml
- name: SonarQube Scan
uses: SonarSource/sonarqube-scan-action@v4
uses: sonarsource/sonarqube-scan-action@v6
env:
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} # Generate a token on SonarQube, add it to the secrets of this repo with the name SONAR_TOKEN (Settings > Secrets > Actions > add new repository secret)
with:
# Additional arguments for the sonarcloud scanner
args: >
--define sonar.cfamily.compile-commands="${{ env.BUILD_WRAPPER_OUT_DIR }}/compile_commands.json"
--define sonar.cfamily.compile-commands=${{ env.BUILD_WRAPPER_OUT_DIR }}/compile_commands.json
--define sonar.coverageReportPaths=coverage.xml
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,5 @@ docs/conf.py
CMakeFiles/*
.cache/*
CMakeUserPresets.json
include/coronan/config.hpp
.github/workflows/ci-windows.yml
.venv/
Loading
Loading