#!/bin/bash

# Copyright (c) 2008-2025 by Gilles Caulier, <caulier dot gilles at gmail dot com>
#
# Redistribution and use is allowed according to the terms of the GPL3 license.
# For details see the accompanying COPYING file.
#
# Cppcheck static analyzer configuration used by reports/cppcheck.sh

# --- Directories to exclude from Cppcheck static analysis.

IGNORE_DIRS="-i ../translations/ "
IGNORE_DIRS+="-i ../patches/ "
IGNORE_DIRS+="-i ../reports/ "
IGNORE_DIRS+="-i ../../gmicqt/src/ "
IGNORE_DIRS+="-i ../../gmicqt/gmic/src/ "
IGNORE_DIRS+="-i ../../build.clazy/ "
IGNORE_DIRS+="-i ../../build.scan/ "
IGNORE_DIRS+="-i ../../build.qt6/ "
IGNORE_DIRS+="-i ../../build/ "

# --- Defines to use with static analysis.

CPPCHECK_DEFINES="\
-DQ_OS_LINUX \
-DQ_OS_UNIX \
-DQ_PROCESSOR_X86_64 \
"

CPPCHECK_OPTIONS="\
--std=c++17 \
--library=qt.cfg \
--platform=unix64 \
"

CPPCHECK_SUPPRESSIONS="\
--inline-suppr \
--suppress=*:*cimg*.h \
--suppress=*:*gmic*.h \
--suppress=*:*Gmic*.h \
--suppress=missingIncludeSystem \
--suppress=missingInclude \
--suppress=purgedConfiguration \
--suppress=toomanyconfigs \
--suppress=unknownMacro \
--suppress=unusedFunction \
--suppress=unmatchedSuppression \
--suppress=ConfigurationNotChecked \
--suppress=checkersReport \
"
