Skip to content
Open
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
4 changes: 4 additions & 0 deletions .github/actions/setup-conan/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,11 @@ runs:

if [[ "${{ runner.os }}" != "Windows" ]]; then
echo "tools.system.package_manager:mode = install" >> .conan2/global.conf
if command -v sudo >/dev/null 2>&1; then
echo "tools.system.package_manager:sudo = True" >> .conan2/global.conf
else
echo "tools.system.package_manager:sudo = False" >> .conan2/global.conf
fi
fi

if [[ "${{ inputs.conan-compiler }}" == "clang" && "${{ runner.os }}" == "Linux" ]]; then
Expand Down
6 changes: 6 additions & 0 deletions .github/actions/setup-python/action.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,16 @@
name: 'Setup Python'
description: 'Sets up Python and installs requirements (including Conan)'

inputs:
install-python:
description: 'Whether to run actions/setup-python'
default: 'true'

runs:
using: "composite"
steps:
- name: Set up Python
if: inputs.install-python == 'true'
uses: actions/setup-python@v5.4.0
with:
python-version: '3.13'
Expand Down
23 changes: 19 additions & 4 deletions .github/workflows/cmake.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,37 +29,43 @@ jobs:
build:
name: ${{ matrix.settings.name }} ${{ matrix.configuration }}
runs-on: ${{ matrix.settings.os }}
container: ${{ matrix.settings.bebe_image }}
strategy:
matrix:
configuration: [ "Release", "Debug" ]
settings:
- {
name: "Ubuntu GCC-12",
os: ubuntu-latest,
bebe_image: "ghcr.io/twon/bebe/bebe:ubuntu.gcc12",
compiler: { type: GCC, version: 12, conan: "gcc", cc: "gcc-12", cxx: "g++-12", std: 20 },
lib: "libstdc++11"
}
- {
name: "Ubuntu GCC-13",
os: ubuntu-latest,
bebe_image: "ghcr.io/twon/bebe/bebe:ubuntu.gcc13",
compiler: { type: GCC, version: 13, conan: "gcc", cc: "gcc-13", cxx: "g++-13", std: 23 },
lib: "libstdc++11"
}
- {
name: "Ubuntu GCC-14",
os: ubuntu-latest,
bebe_image: "ghcr.io/twon/bebe/bebe:ubuntu.gcc14",
compiler: { type: GCC, version: 14, conan: "gcc", cc: "gcc-14", cxx: "g++-14", std: 23 },
lib: "libstdc++11"
}
- {
name: "Ubuntu GCC-15",
os: ubuntu-latest,
bebe_image: "ghcr.io/twon/bebe/bebe:ubuntu.gcc15",
compiler: { type: GCC, version: 15, conan: "gcc", cc: "gcc-15", cxx: "g++-15", std: 23 },
lib: "libstdc++11"
}
- {
name: "Ubuntu Clang-14 + libc++",
os: ubuntu-22.04,
os: ubuntu-latest,
bebe_image: "ghcr.io/twon/bebe/bebe:ubuntu.clang14",
compiler:
{
type: CLANG,
Expand All @@ -73,7 +79,8 @@ jobs:
}
- {
name: "Ubuntu Clang-15 + libc++",
os: ubuntu-22.04,
os: ubuntu-latest,
bebe_image: "ghcr.io/twon/bebe/bebe:ubuntu.clang15",
compiler:
{
type: CLANG,
Expand All @@ -87,7 +94,8 @@ jobs:
}
- {
name: "Ubuntu Clang-16 + libc++",
os: ubuntu-22.04,
os: ubuntu-latest,
bebe_image: "ghcr.io/twon/bebe/bebe:ubuntu.clang16",
compiler:
{
type: CLANG,
Expand All @@ -102,6 +110,7 @@ jobs:
- {
name: "Ubuntu Clang-17 + libc++",
os: ubuntu-latest,
bebe_image: "ghcr.io/twon/bebe/bebe:ubuntu.clang17",
compiler:
{
type: CLANG,
Expand All @@ -116,6 +125,7 @@ jobs:
- {
name: "Ubuntu Clang-18 + libc++",
os: ubuntu-latest,
bebe_image: "ghcr.io/twon/bebe/bebe:ubuntu.clang18",
compiler:
{
type: CLANG,
Expand All @@ -130,6 +140,7 @@ jobs:
- {
name: "Ubuntu Clang-19 + libc++",
os: ubuntu-latest,
bebe_image: "ghcr.io/twon/bebe/bebe:ubuntu.clang19",
compiler:
{
type: CLANG,
Expand All @@ -144,6 +155,7 @@ jobs:
- {
name: "Ubuntu Clang-20 + libc++",
os: ubuntu-latest,
bebe_image: "ghcr.io/twon/bebe/bebe:ubuntu.clang20",
compiler:
{
type: CLANG,
Expand Down Expand Up @@ -207,6 +219,7 @@ jobs:
- uses: actions/checkout@v6.0.2

- name: Install Compiler
if: ${{ !matrix.settings.bebe_image }}
uses: ./.github/actions/setup-compiler
with:
compiler-type: ${{ matrix.settings.compiler.type }}
Expand All @@ -216,6 +229,8 @@ jobs:

- name: Setup Python
uses: ./.github/actions/setup-python
with:
install-python: ${{ !matrix.settings.bebe_image }}

- name: Cache Conan Restore
uses: ./.github/actions/conan-cache-restore
Expand All @@ -240,7 +255,7 @@ jobs:
- name: Conan Install
shell: bash
run: |
conan install "${{ github.workspace }}" --build missing -pr:b default
conan install . --build missing -pr:b default

- name: Configure CMake (Windows)
if: runner.os == 'Windows'
Expand Down
25 changes: 5 additions & 20 deletions .github/workflows/code_coverage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,34 +27,19 @@ on:

env:
BUILD_TYPE: Debug
COMPILER_VERSION: 12
COMPILER_VERSION: 15

jobs:
build:
runs-on: ubuntu-latest
container: ghcr.io/twon/bebe/bebe:ubuntu.gcc15
steps:
- uses: actions/checkout@v6.0.2

- name: Install Latest GCC
shell: bash
run: |
sudo apt install -y g++-${{ env.COMPILER_VERSION }}
sudo rm -f /usr/bin/gcc /usr/bin/g++ /usr/bin/gcov
sudo ln -s /usr/bin/gcov-${{ env.COMPILER_VERSION }} /usr/bin/gcov
sudo ln -s /usr/bin/gcc-${{ env.COMPILER_VERSION }} /usr/bin/gcc
sudo ln -s /usr/bin/g++-${{ env.COMPILER_VERSION }} /usr/bin/g++

- name: Install Lcov
shell: bash
run: |
wget https://github.com/linux-test-project/lcov/archive/refs/tags/v2.0.tar.gz
tar -xvf v2.0.tar.gz
cd lcov-2.0 && sudo make install && cd ..
sudo perl -MCPAN -e 'install Capture::Tiny'
sudo apt-get install -y libdatetime-perl

- name: Setup Python
uses: ./.github/actions/setup-python
with:
install-python: 'false'

- name: Cache Conan Restore
uses: ./.github/actions/conan-cache-restore
Expand All @@ -78,7 +63,7 @@ jobs:
- name: Conan Install
shell: bash
run: |
conan install "${{ github.workspace }}" --build missing
conan install . --build missing

- name: Configure CMake
shell: bash
Expand Down
15 changes: 5 additions & 10 deletions .github/workflows/documentation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,24 +27,19 @@ on:

env:
BUILD_TYPE: Debug
COMPILER_VERSION: 13
COMPILER_VERSION: 15

jobs:
documentation:
runs-on: ubuntu-latest
container: ghcr.io/twon/bebe/bebe:ubuntu.gcc15
steps:
- uses: actions/checkout@v6.0.2

- name: Install Compiler
uses: ./.github/actions/setup-compiler
with:
compiler-type: GCC
compiler-version: ${{ env.COMPILER_VERSION }}
stdlib: libstdc++11
os: Linux

- name: Setup Python
uses: ./.github/actions/setup-python
with:
install-python: 'false'

- name: Cache Conan Restore
uses: ./.github/actions/conan-cache-restore
Expand All @@ -70,7 +65,7 @@ jobs:
- name: Conan Install
shell: bash
run: |
conan install "${{ github.workspace }}" --build missing -o build_docs=True
conan install . --build missing -o build_docs=True

- name: Configure CMake
shell: bash
Expand Down
3 changes: 3 additions & 0 deletions conanfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,9 @@ def build_requirements(self):
self.test_requires("catch2/3.13.0")
self.test_requires("gtest/1.17.0")

if self.settings.os == "Linux":
self.tool_requires("pkgconf/2.1.0") # Required for X11 support.

if get_cmake_version() < Version("4.3.0"):
self.tool_requires("cmake/4.3.0")

Expand Down
Loading