Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
run clazy with appropriate options
  • Loading branch information
troopa81 authored and nyalldawson committed May 9, 2022
1 parent e4f2250 commit 8ac62c7
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 10 deletions.
14 changes: 13 additions & 1 deletion .docker/docker-qgis-build.sh
Expand Up @@ -38,6 +38,17 @@ else
export CXX=/usr/lib/ccache/clang++
fi

BUILD_TYPE=Release

if [[ "${WITH_CLAZY}" = "ON" ]]; then
# In release mode, all variables in QgsDebugMsg would be considered unused
BUILD_TYPE=Debug
export CXX=clazy

# ignore sip and external libraries
export CLAZY_IGNORE_DIRS="(.*/external/.*)|(.*sip_.*part.*)"
fi

if [[ ${WITH_QT6} = "ON" ]]; then
CLANG_WARNINGS="-Wrange-loop-construct"
fi
Expand All @@ -54,6 +65,7 @@ fi

cmake \
-GNinja \
-DCMAKE_BUILD_TYPE=${BUILD_TYPE} \
-DUSE_CCACHE=OFF \
-DWITH_QT6=${WITH_QT6} \
-DWITH_DESKTOP=${WITH_QT5} \
Expand Down Expand Up @@ -92,7 +104,7 @@ cmake \
-DPYTHON_TEST_WRAPPER="timeout -sSIGSEGV 55s" \
-DCXX_EXTRA_FLAGS="${CLANG_WARNINGS}" \
-DWERROR=TRUE \
-DADD_CLAZY_CHECKS=ON \
-DWITH_CLAZY=${WITH_CLAZY} \
${CMAKE_EXTRA_ARGS[*]} ..
echo "::endgroup::"

Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/run-tests.yml
Expand Up @@ -44,6 +44,7 @@ jobs:
with-qt5: ON
with-3d: ON
with-quick: ON
with-clazy: OFF
patch-qt-3d: true
LD_PRELOAD: /lib/x86_64-linux-gnu/libSegFault.so

Expand All @@ -55,6 +56,7 @@ jobs:
with-qt5: ON
with-3d: OFF
with-quick: ON
with-clazy: ON
patch-qt-3d: false
LD_PRELOAD: /lib/x86_64-linux-gnu/libSegFault.so

Expand All @@ -66,6 +68,7 @@ jobs:
with-qt5: OFF
with-3d: OFF
with-quick: OFF
with-clazy: OFF
patch-qt-3d: false
LD_PRELOAD: ''

Expand Down Expand Up @@ -167,6 +170,7 @@ jobs:
--env WITH_3D=${{ matrix.with-3d }} \
--env PATCH_QT_3D=${{ matrix.patch-qt-3d }} \
--env LD_PRELOAD=${{ matrix.LD_PRELOAD }} \
--env WITH_CLAZY=${{ matrix.with-clazy }} \
qgis3-build-deps \
/root/QGIS/.docker/docker-qgis-build.sh
Expand Down
18 changes: 13 additions & 5 deletions CMakeLists.txt
Expand Up @@ -869,13 +869,21 @@ if (WITH_CORE)
set(CMAKE_CXX_VISIBILITY_PRESET hidden)
include(GenerateExportHeader)

set (ADD_CLAZY_CHECKS ${DEFAULT_MANUAL_SUBDIR} CACHE STRING "Add default set of clazy checks which should not raise any warnings")
mark_as_advanced (ADD_CLAZY_CHECKS)
if (ADD_CLAZY_CHECKS)
set (WITH_CLAZY FALSE CACHE BOOL "Determines whether Clazy checks should be enabled")
mark_as_advanced (WITH_CLAZY)
if (WITH_CLAZY)
set(CMAKE_CXX_BASE_FLAGS "${CMAKE_CXX_FLAGS}")
# qcolor-from-literal crashes clang with clazy 1.11
set(CLAZY_BASE_CHECKS "connect-3arg-lambda,lambda-unique-connection,empty-qstringliteral,fully-qualified-moc-types,lowercase-qml-type-name,qfileinfo-exists,qmap-with-pointer-key,unused-non-trivial-variable,overridden-signal,qdeleteall,qstring-left,skipped-base-method,isempty-vs-count")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_BASE_FLAGS} -Xclang -plugin-arg-clazy -Xclang ${CLAZY_BASE_CHECKS}")
set(CLAZY_BASE_CHECKS "connect-3arg-lambda,lambda-unique-connection,empty-qstringliteral,fully-qualified-moc-types,lowercase-qml-type-name,qfileinfo-exists,qmap-with-pointer-key,unused-non-trivial-variable,overridden-signal,qdeleteall,qstring-left,skipped-base-method,isempty-vs-count,non-pod-global-static")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_BASE_FLAGS} -Xclang -plugin-arg-clazy -Xclang ${CLAZY_BASE_CHECKS}")

if (WERROR AND NOT ${QGISDEBUG})
message(FATAL_ERROR "Don't activate both WERROR and ADD_CLAZY_CHECKS in Release mode, you will get many false positive errors")
endif()

if (WERROR AND ("$ENV{CLAZY_IGNORE_DIRS}" STREQUAL ""))
message(WARNING "WERROR and ADD_CLAZY_CHECKS are activated. To avoid unwanted Clazy error, please set the CLAZY_IGNORE_DIRS environment variable like this : \nexport CLAZY_IGNORE_DIRS=\"(.*/external/.*)|(.*sip_.*part.*)\"")
endif()
endif()
endif()

Expand Down
4 changes: 0 additions & 4 deletions src/core/CMakeLists.txt
Expand Up @@ -2242,10 +2242,6 @@ if (APPLE AND NOT IOS)
target_link_libraries(qgis_core qgis_native)
endif()

if (ADD_CLAZY_CHECKS)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_BASE_FLAGS} -Xclang -plugin-arg-clazy -Xclang ${CLAZY_BASE_CHECKS},non-pod-global-static")
endif()

target_link_libraries(qgis_core
${QT_VERSION_BASE}::Core
${QT_VERSION_BASE}::Gui
Expand Down

0 comments on commit 8ac62c7

Please sign in to comment.