Merge branch 'develop' into feature/conan-2

This commit is contained in:
Dan Paulat 2024-11-30 01:33:02 -06:00
commit e3fa3fdd61
8 changed files with 205 additions and 13 deletions

12
.clang-tidy Normal file
View file

@ -0,0 +1,12 @@
Checks:
- '-*'
- 'bugprone-*'
- 'clang-analyzer-*'
- 'cppcoreguidelines-*'
- 'misc-*'
- 'modernize-*'
- 'performance-*'
- '-misc-include-cleaner'
- '-misc-non-private-member-variables-in-classes'
- '-modernize-use-trailing-return-type'
FormatStyle: 'file'

View file

@ -11,7 +11,7 @@ on:
concurrency:
# Cancel in-progress jobs for the same pull request
group: ${{ github.head_ref || github.run_id }}
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
@ -70,7 +70,7 @@ jobs:
env:
CC: ${{ matrix.env_cc }}
CXX: ${{ matrix.env_cxx }}
SCWX_VERSION: v0.4.6
SCWX_VERSION: v0.4.7
runs-on: ${{ matrix.os }}
steps:

View file

@ -0,0 +1,40 @@
name: clang-format-check
on:
workflow_dispatch:
pull_request:
branches:
- 'develop'
concurrency:
# Cancel in-progress jobs for the same pull request
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
format:
runs-on: ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: false
- name: Update References
shell: bash
run: |
git fetch origin develop
- name: Setup Ubuntu Environment
shell: bash
run: |
sudo apt-get install clang-format-17
- name: Check Formatting
shell: bash
run: |
MERGE_BASE=$(git merge-base origin/develop ${{ github.event.pull_request.head.sha || github.ref }})
echo "Comparing against ${MERGE_BASE}"
git clang-format-17 --diff --style=file -v ${MERGE_BASE}

140
.github/workflows/clang-tidy-review.yml vendored Normal file
View file

@ -0,0 +1,140 @@
name: clang-tidy-review
on:
pull_request:
branches:
- 'develop'
concurrency:
# Cancel in-progress jobs for the same pull request
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
build:
strategy:
matrix:
include:
- name: linux64_clang-tidy
os: ubuntu-24.04
build_type: Release
env_cc: clang-17
env_cxx: clang++-17
qt_version: 6.8.0
qt_arch_aqt: linux_gcc_64
qt_modules: qtimageformats qtmultimedia qtpositioning qtserialport
qt_tools: ''
conan_arch: x86_64
conan_compiler: clang
conan_compiler_version: 17
conan_compiler_libcxx: --settings compiler.libcxx=libstdc++11
conan_compiler_runtime: ''
conan_package_manager: --conf tools.system.package_manager:mode=install --conf tools.system.package_manager:sudo=True
compiler_packages: clang-17 clang-tidy-17
name: ${{ matrix.name }}
runs-on: ${{ matrix.os }}
env:
CC: ${{ matrix.env_cc }}
CXX: ${{ matrix.env_cxx }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
path: source
submodules: recursive
- name: Checkout clang-tidy-review Repository
uses: actions/checkout@v4
with:
repository: ZedThree/clang-tidy-review
ref: v0.20.1
path: clang-tidy-review
- name: Install Qt
uses: jurplel/install-qt-action@v3
with:
version: ${{ matrix.qt_version }}
arch: ${{ matrix.qt_arch_aqt }}
modules: ${{ matrix.qt_modules }}
tools: ${{ matrix.qt_tools }}
- name: Setup Ubuntu Environment
if: ${{ startsWith(matrix.os, 'ubuntu') }}
shell: bash
run: |
sudo apt-get install doxygen \
libfuse2 \
ninja-build \
${{ matrix.compiler_packages }}
- name: Setup Python Environment
shell: pwsh
run: |
pip install geopandas `
GitPython
pip install --break-system-packages clang-tidy-review/post/clang_tidy_review
- name: Install Conan Packages
shell: pwsh
run: |
pip install "conan<2.0"
conan profile new default --detect
conan install ./source/ `
--remote conancenter `
--build missing `
--settings arch=${{ matrix.conan_arch }} `
--settings build_type=${{ matrix.build_type }} `
--settings compiler="${{ matrix.conan_compiler }}" `
--settings compiler.version=${{ matrix.conan_compiler_version }} `
${{ matrix.conan_compiler_libcxx }} `
${{ matrix.conan_compiler_runtime }} `
${{ matrix.conan_package_manager }}
- name: Autogenerate
shell: pwsh
run: |
mkdir build
cd build
cmake ../source/ `
-G Ninja `
-DCMAKE_BUILD_TYPE="${{ matrix.build_type }}" `
-DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/supercell-wx" `
-DCMAKE_EXPORT_COMPILE_COMMANDS=on
ninja scwx-qt_generate_counties_db `
scwx-qt_generate_versions `
scwx-qt_update_radar_sites `
scwx-qt_autogen
- name: Code Review
id: review
shell: bash
run: |
cd source
review --clang_tidy_binary=clang-tidy-17 \
--token=${{ github.token }} \
--repo='${{ github.repository }}' \
--pr='${{ github.event.pull_request.number }}' \
--build_dir='../build' \
--base_dir='${{ github.workspace }}/source' \
--clang_tidy_checks='' \
--config_file='.clang-tidy' \
--include='*.[ch],*.[ch]xx,*.[ch]pp,*.[ch]++,*.cc,*.hh' \
--exclude='' \
--apt-packages='' \
--cmake-command='' \
--max-comments=25 \
--lgtm-comment-body='' \
--split_workflow=false \
--annotations=false \
--parallel=0
rsync -avzh --ignore-missing-args clang-tidy-review-output.json ../
rsync -avzh --ignore-missing-args clang-tidy-review-metadata.json ../
rsync -avzh --ignore-missing-args clang_fixes.json ../
- name: Upload Review
uses: ZedThree/clang-tidy-review/upload@v0.20.1
- name: Status Check
if: steps.review.outputs.total_comments > 0
run: exit 1

View file

@ -1,7 +1,7 @@
cmake_minimum_required(VERSION 3.24)
set(PROJECT_NAME supercell-wx)
project(${PROJECT_NAME}
VERSION 0.4.6
VERSION 0.4.7
DESCRIPTION "Supercell Wx is a free, open source advanced weather radar viewer."
HOMEPAGE_URL "https://github.com/dpaulat/supercell-wx"
LANGUAGES C CXX)
@ -27,7 +27,7 @@ set_property(DIRECTORY
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DBOOST_ALL_NO_LIB")
set(SCWX_DIR ${PROJECT_SOURCE_DIR})
set(SCWX_VERSION "0.4.6")
set(SCWX_VERSION "0.4.7")
option(SCWX_ADDRESS_SANITIZER "Build with Address Sanitizer" OFF)

View file

@ -21,9 +21,7 @@ find_package(Python COMPONENTS Interpreter)
find_package(SQLite3)
find_package(QT NAMES Qt6
COMPONENTS BuildInternals
Core
Gui
COMPONENTS Gui
LinguistTools
Multimedia
Network
@ -37,9 +35,7 @@ find_package(QT NAMES Qt6
REQUIRED)
find_package(Qt${QT_VERSION_MAJOR}
COMPONENTS BuildInternals
Core
Gui
COMPONENTS Gui
LinguistTools
Multimedia
Network
@ -510,6 +506,7 @@ source_group("I18N Files" FILES ${TS_FILES})
add_library(scwx-qt OBJECT ${PROJECT_SOURCES})
set_property(TARGET scwx-qt PROPERTY AUTOMOC ON)
set_property(TARGET scwx-qt PROPERTY AUTOGEN_ORIGIN_DEPENDS OFF)
add_custom_command(OUTPUT ${COUNTIES_SQLITE_DB}
COMMAND ${Python_EXECUTABLE}

View file

@ -6,7 +6,7 @@
#include <ranges>
#include <unordered_map>
#include <boost/process/environment.hpp>
#include <boost/process/v1/environment.hpp>
#include <fmt/format.h>
#include <spdlog/spdlog.h>
#include <QStandardPaths>

View file

@ -22,6 +22,9 @@ class SetupWizard::Impl
public:
explicit Impl() = default;
~Impl() = default;
bool mapProviderPageIsRequired_ {MapProviderPage::IsRequired()};
bool audioCodecPageIsRequired_ {AudioCodecPage::IsRequired()};
};
SetupWizard::SetupWizard(QWidget* parent) :
@ -66,14 +69,14 @@ int SetupWizard::nextId() const
{
case static_cast<int>(Page::MapProvider):
case static_cast<int>(Page::MapLayout):
if (MapProviderPage::IsRequired())
if (p->mapProviderPageIsRequired_)
{
return nextId;
}
break;
case static_cast<int>(Page::AudioCodec):
if (AudioCodecPage::IsRequired())
if (p->audioCodecPageIsRequired_)
{
return nextId;
}