Skip to content

Commit

Permalink
Merge pull request #181 from Morwenn/develop
Browse files Browse the repository at this point in the history
Release 1.9.0
  • Loading branch information
Morwenn committed Jan 30, 2021
2 parents 432511a + ca633a8 commit ada4e8b
Show file tree
Hide file tree
Showing 112 changed files with 3,914 additions and 1,999 deletions.
67 changes: 67 additions & 0 deletions .github/workflows/build-macos.yml
@@ -0,0 +1,67 @@
# Copyright (c) 2021 Morwenn
# SPDX-License-Identifier: MIT

name: MacOS Builds

on:
push:
paths:
- '.github/workflows/build-macos.yml'
- 'CMakeLists.txt'
- 'cmake/**'
- 'examples/**'
- 'include/**'
- 'testsuite/**'
pull_request:
paths:
- '.github/workflows/build-macos.yml'
- 'CMakeLists.txt'
- 'cmake/**'
- 'examples/**'
- 'include/**'
- 'testsuite/**'

jobs:
build:
runs-on: macos-10.15

strategy:
fail-fast: false
matrix:
cxx:
- g++-9
- $(brew --prefix llvm)/bin/clang++ # Clang 11
config:
# Release build
- build_type: Release
# Debug builds
- build_type: Debug
sanitize: address
- build_type: Debug
sanitize: undefined

steps:
- uses: actions/checkout@v2
- uses: seanmiddleditch/gha-setup-ninja@master

- name: Configure CMake
working-directory: ${{runner.workspace}}
run: |
export CXX=${{matrix.cxx}}
cmake -H${{github.event.repository.name}} -Bbuild \
-DCMAKE_CONFIGURATION_TYPES=${{matrix.config.build_type}} \
-DCMAKE_BUILD_TYPE=${{matrix.config.build_type}} \
-DCPPSORT_SANITIZE=${{matrix.config.sanitize}} \
-GNinja \
-DCPPSORT_BUILD_EXAMPLES=ON
- name: Build the test suite
shell: bash
working-directory: ${{runner.workspace}}/build
run: cmake --build . --config ${{matrix.config.build_type}} -j 2

- name: Run the test suite
env:
CTEST_OUTPUT_ON_FAILURE: 1
working-directory: ${{runner.workspace}}/build
run: ctest -C ${{matrix.config.build_type}}
84 changes: 84 additions & 0 deletions .github/workflows/build-ubuntu.yml
@@ -0,0 +1,84 @@
# Copyright (c) 2021 Morwenn
# SPDX-License-Identifier: MIT

name: Ubuntu Builds

on:
push:
paths:
- '.github/workflows/build-ubuntu.yml'
- 'CMakeLists.txt'
- 'cmake/**'
- 'examples/**'
- 'include/**'
- 'testsuite/**'
pull_request:
paths:
- '.github/workflows/build-ubuntu.yml'
- 'CMakeLists.txt'
- 'cmake/**'
- 'examples/**'
- 'include/**'
- 'testsuite/**'

jobs:
build:
runs-on: ubuntu-16.04

strategy:
fail-fast: false
matrix:
cxx:
- g++-5
- clang++-6.0
config:
# Release build
- build_type: Release
# Debug builds
- build_type: Debug
valgrind: ON
- build_type: Debug
sanitize: address
- build_type: Debug
sanitize: undefined

steps:
- uses: actions/checkout@v2

- name: Install Valgrind
if: ${{matrix.config.valgrind == 'ON'}}
run: sudo apt install -y valgrind

- name: Configure CMake
working-directory: ${{runner.workspace}}
env:
CXX: ${{matrix.cxx}}
run: |
cmake -H${{github.event.repository.name}} -Bbuild \
-DCMAKE_CONFIGURATION_TYPES=${{matrix.config.build_type}} \
-DCMAKE_BUILD_TYPE=${{matrix.config.build_type}} \
-DCPPSORT_SANITIZE=${{matrix.config.sanitize}} \
-DCPPSORT_USE_VALGRIND=${{matrix.config.valgrind}} \
-G"Unix Makefiles" \
-DCPPSORT_BUILD_EXAMPLES=ON
- name: Build the test suite
shell: bash
working-directory: ${{runner.workspace}}/build
run: cmake --build . --config ${{matrix.config.build_type}} -j 2

- name: Run the test suite
if: ${{matrix.config.valgrind != 'ON'}}
env:
CTEST_OUTPUT_ON_FAILURE: 1
working-directory: ${{runner.workspace}}/build
run: ctest -C ${{matrix.config.build_type}}

- name: Run the test suite with Memcheck
if: ${{matrix.config.valgrind == 'ON'}}
env:
CTEST_OUTPUT_ON_FAILURE: 1
working-directory: ${{runner.workspace}}/build
run: |
ctest -T memcheck -C ${{matrix.config.build_type}} -j 2
find ./Testing/Temporary -name "MemoryChecker.*.log" -size +1300c | xargs cat;
54 changes: 54 additions & 0 deletions .github/workflows/build-windows.yml
@@ -0,0 +1,54 @@
# Copyright (c) 2021 Morwenn
# SPDX-License-Identifier: MIT

name: Windows Builds

on:
push:
paths:
- '.github/workflows/build-windows.yml'
- 'CMakeLists.txt'
- 'cmake/**'
- 'examples/**'
- 'include/**'
- 'testsuite/**'
pull_request:
paths:
- '.github/workflows/build-windows.yml'
- 'CMakeLists.txt'
- 'cmake/**'
- 'examples/**'
- 'include/**'
- 'testsuite/**'

jobs:
build:
runs-on: windows-2019

strategy:
fail-fast: false
matrix:
build_type: [Debug, Release]

steps:
- uses: actions/checkout@v2

- name: Configure CMake
shell: pwsh
working-directory: ${{runner.workspace}}
run: |
cmake -H${{github.event.repository.name}} -Bbuild `
-DCMAKE_CONFIGURATION_TYPES=${{matrix.build_type}} `
-DCMAKE_BUILD_TYPE=${{matrix.build_type}} `
-G"MinGW Makefiles" `
-DCPPSORT_BUILD_EXAMPLES=ON
- name: Build the test suite
working-directory: ${{runner.workspace}}/build
run: cmake --build . --config ${{matrix.build_type}} -j 2

- name: Run the test suite
env:
CTEST_OUTPUT_ON_FAILURE: 1
working-directory: ${{runner.workspace}}/build
run: ctest -C ${{matrix.build_type}}
59 changes: 59 additions & 0 deletions .github/workflows/code-coverage.yml
@@ -0,0 +1,59 @@
# Copyright (c) 2020-2021 Morwenn
# SPDX-License-Identifier: MIT

name: Coverage Upload to Codecov

on:
push:
branches:
- master
- develop
- 2.0.0-develop
paths:
- '.github/workflows/code-coverage.yml'
- 'CMakeLists.txt'
- 'cmake/**'
- 'codecov.yml'
- 'include/**'
- 'testsuite/**'

env:
BUILD_TYPE: Debug

jobs:
upload-coverage:
runs-on: ubuntu-latest

steps:
- name: Checkout project
uses: actions/checkout@v2

- name: Configure CMake
shell: bash
working-directory: ${{runner.workspace}}
run: >
cmake -H${{github.event.repository.name}} -Bbuild
-DCMAKE_BUILD_TYPE="${BUILD_TYPE}"
-DCPPSORT_ENABLE_COVERAGE=true
-G"Unix Makefiles"
- name: Build with coverage
shell: bash
working-directory: ${{runner.workspace}}/build
run: cmake --build . --config $BUILD_TYPE -j 2

- name: Run the test suite
shell: bash
working-directory: ${{runner.workspace}}/build
run: ctest -C Release --output-on-failure

- name: Create coverage info
shell: bash
working-directory: ${{runner.workspace}}/build
run: make gcov

- name: Upload coverage info
uses: codecov/codecov-action@v1.2.1
with:
directory: ${{runner.workspace}}/build
functionalities: gcov
45 changes: 6 additions & 39 deletions .gitignore
@@ -1,46 +1,13 @@
# Copyright (c) 2015-2020 Morwenn
# SPDX-License-Identifier: MIT

# Project-specific directory
# Usual build directory
build

# Compiled Object files
*.slo
*.lo
*.o
*.obj
# Benchmark results directories
results

# Compiled Dynamic libraries
*.so
*.dylib
*.dll

# Compiled Static libraries
*.lai
*.la
*.a
*.lib

# Executables
*.exe
*.out
*.app

# Code::Blocks files
*.cbp
*.depend
*.layout
*.save-failed

# VSCode files
.vscode

# Static analyzer files
CppCheckResults.xml

# Files generated by LaTeX
*.aux
*.log
# Files generated by project scripts
*.csv
*.png
*.pdf
*.synctex.gz
tools/*.txt

0 comments on commit ada4e8b

Please sign in to comment.