find_program(FIND_CPPCHECK NAMES cppcheck)
if (FIND_CPPCHECK)
	find_program(CMAKE_CXX_CPPCHECK NAMES cppcheck)
	list(
		APPEND CMAKE_CXX_CPPCHECK
		"-v"
		"--force"
		"--quiet"
		"--error-exitcode=1"
		"--enable=warning,performance,portability"
		"--suppress=assertWithSideEffect:${CMAKE_SOURCE_DIR}/external/cereal/external/rapidjson/document.h:1567"
		"--suppress=assertWithSideEffect:${CMAKE_SOURCE_DIR}/external/cereal/external/rapidjson/document.h:1597"
		"--suppress=assertWithSideEffect:${CMAKE_SOURCE_DIR}/external/cereal/external/rapidjson/document.h:1599"
		"--suppress=assertWithSideEffect:${CMAKE_SOURCE_DIR}/external/cereal/external/rapidjson/document.h:1798"
		"--suppress=assertWithSideEffect:${CMAKE_SOURCE_DIR}/external/cereal/external/rapidjson/document.h:1800"
		"--suppress=stlFindInsert:${CMAKE_SOURCE_DIR}/external/cereal/cereal.hpp:404"
		"--suppress=stlFindInsert:${CMAKE_SOURCE_DIR}/external/cereal/cereal.hpp:817"
		"--suppress=syntaxError:${CMAKE_SOURCE_DIR}/core/include/general/maybe_res.h:60"
		"--suppress=passedByValue:${CMAKE_SOURCE_DIR}/core/include/services_sdk/resources/report/base_field.h:168"
		"--suppress=passedByValue:${CMAKE_SOURCE_DIR}/core/include/services_sdk/resources/report/base_field.h:231"
		"--suppress=passedByValue:${CMAKE_SOURCE_DIR}/core/include/services_sdk/resources/report/base_field.h:238"
		"--suppress=uninitMemberVar:${CMAKE_SOURCE_DIR}/core/include/services_sdk/resources/report/report.h:41"
		"--suppress=passedByValue:${CMAKE_SOURCE_DIR}/core/environment/trace.cc:26"
		"--suppress=passedByValue:${CMAKE_SOURCE_DIR}/core/environment/trace.cc:52"
		"--suppress=passedByValue:${CMAKE_SOURCE_DIR}/core/include/services_sdk/interfaces/intelligence_is_v2/query_filter_v2.h:34"
		"--suppress=passedByValue:${CMAKE_SOURCE_DIR}/core/include/services_sdk/interfaces/intelligence_is_v2/requested_attributes_v2.h:29"
		"--suppress=passedByValue:${CMAKE_SOURCE_DIR}/core/include/services_sdk/interfaces/intelligence_is_v2/query_types_v2.h:46"
		"--suppress=passedByValue:${CMAKE_SOURCE_DIR}/core/include/services_sdk/interfaces/intelligence_is_v2/query_request_v2.h:63"
		"--suppress=passedByValue:${CMAKE_SOURCE_DIR}/core/include/services_sdk/interfaces/i_intelligence_is_v2.h:173"
		"--suppress=passedByValue:${CMAKE_SOURCE_DIR}/core/environment/span.cc:26"
		"--suppress=passedByValue:${CMAKE_SOURCE_DIR}/core/environment/span.cc:104"
		"--suppress=stlIfStrFind:${CMAKE_SOURCE_DIR}/core/debug_is/debug.cc:684"
		"--suppress=stlFindInsert:${CMAKE_SOURCE_DIR}/core/debug_is/debug.cc:512"
		"--suppress=stlFindInsert:${CMAKE_SOURCE_DIR}/core/config/config.cc:787"
		"--suppress=postfixOperator:${CMAKE_SOURCE_DIR}/core/include/services_sdk/resources/config/generic_config.h:91"
		"--suppress=useInitializationList:${CMAKE_SOURCE_DIR}/core/intelligence_is_v2/query_request_v2.cc:32"
		"--suppress=passedByValue:${CMAKE_SOURCE_DIR}/core/intelligence_is_v2/query_request_v2.cc:92"
		"--suppress=passedByValue:${CMAKE_SOURCE_DIR}/core/intelligence_is_v2/query_types_v2.cc:34"
		"--suppress=syntaxError:${CMAKE_SOURCE_DIR}/components/include/generic_rulebase/match_query.h:37"
		"--suppress=passedByValue:${CMAKE_SOURCE_DIR}/components/generic_rulebase/triggers_config.cc:77"
		"--suppress=useInitializationList:${CMAKE_SOURCE_DIR}/components/messaging_downloader/messaging_downloader_client.cc:30"
		"--suppress=useInitializationList:${CMAKE_SOURCE_DIR}/components/messaging_downloader/messaging_downloader_client.cc:31"
		"--suppress=useInitializationList:${CMAKE_SOURCE_DIR}/components/messaging_downloader/messaging_downloader_client.cc:32"
		"--suppress=useInitializationList:${CMAKE_SOURCE_DIR}/components/messaging_downloader/messaging_downloader_client.cc:33"
		"--suppress=useInitializationList:${CMAKE_SOURCE_DIR}/components/messaging_downloader/messaging_downloader_client.cc:34"
		"--suppress=uninitMemberVar:${CMAKE_SOURCE_DIR}/components/security_apps/orchestration/orchestration_comp.cc:132"
		"--suppress=useInitializationList:${CMAKE_SOURCE_DIR}/components/include/orchestrator/rest_api/orchestration_check_update.h:32"
		"--suppress=useInitializationList:${CMAKE_SOURCE_DIR}/components/include/orchestrator/rest_api/orchestration_check_update.h:33"
		"--suppress=useInitializationList:${CMAKE_SOURCE_DIR}/components/include/orchestrator/rest_api/orchestration_check_update.h:34"
		"--suppress=passedByValue:${CMAKE_SOURCE_DIR}/components/include/service_details.h:32"
		"--suppress=passedByValue:${CMAKE_SOURCE_DIR}/core/include/services_sdk/resources/health_check_status/health_check_status.h:48"
		"--suppress=passedByValue:${CMAKE_SOURCE_DIR}/components/security_apps/orchestration/modules/orchestration_status.cc:39"
		"--suppress=passedByValue:${CMAKE_SOURCE_DIR}/components/security_apps/orchestration/modules/orchestration_status.cc:40"
		"--suppress=passedByValue:${CMAKE_SOURCE_DIR}/components/security_apps/orchestration/modules/orchestration_status.cc:41"
		"--suppress=passedByValue:${CMAKE_SOURCE_DIR}/components/security_apps/orchestration/modules/orchestration_status.cc:42"
		"--suppress=ignoredReturnValue:${CMAKE_SOURCE_DIR}/components/security_apps/orchestration/update_communication/hybrid_communication.cc:120"
		"--suppress=uselessCallsEmpty:${CMAKE_SOURCE_DIR}/components/security_apps/orchestration/update_communication/hybrid_communication.cc:120"
		"--suppress=incorrectStringBooleanError:${CMAKE_SOURCE_DIR}/external/picojson/picojson.h:381"
		"--suppress=incorrectStringBooleanError:${CMAKE_SOURCE_DIR}/external/picojson/picojson.h:382"
		"--suppress=incorrectStringBooleanError:${CMAKE_SOURCE_DIR}/external/picojson/picojson.h:383"
		"--suppress=incorrectStringBooleanError:${CMAKE_SOURCE_DIR}/external/picojson/picojson.h:384"
		"--suppress=incorrectStringBooleanError:${CMAKE_SOURCE_DIR}/external/picojson/picojson.h:386"
		"--suppress=incorrectStringBooleanError:${CMAKE_SOURCE_DIR}/external/picojson/picojson.h:389"
		"--suppress=incorrectStringBooleanError:${CMAKE_SOURCE_DIR}/external/picojson/picojson.h:391"
		"--suppress=useInitializationList:${CMAKE_SOURCE_DIR}/components/health_check_manager/health_check_manager.cc:118"
		"--suppress=uninitvar:${CMAKE_SOURCE_DIR}/components/utils/pm/kiss_hash.cc:1330"
		"--suppress=uninitStructMember:${CMAKE_SOURCE_DIR}/components/utils/pm/kiss_pm_stats.cc:302"
		"--suppress=uninitStructMember:${CMAKE_SOURCE_DIR}/components/utils/pm/kiss_pm_stats.cc:338"
		"--suppress=passedByValue:${CMAKE_SOURCE_DIR}/components/security_apps/orchestration/k8s_policy_gen/include/triggers_section.h:255"
		"--suppress=passedByValue:${CMAKE_SOURCE_DIR}/components/security_apps/orchestration/k8s_policy_gen/include/triggers_section.h:256"
		"--suppress=passedByValue:${CMAKE_SOURCE_DIR}/components/security_apps/orchestration/k8s_policy_gen/include/appsec_practice_section.h:623"
		"--suppress=passedByValue:${CMAKE_SOURCE_DIR}/components/security_apps/orchestration/k8s_policy_gen/include/appsec_practice_section.h:624"
		"--suppress=passedByValue:${CMAKE_SOURCE_DIR}/components/security_apps/orchestration/k8s_policy_gen/include/settings_section.h:66"
		"--suppress=passedByValue:${CMAKE_SOURCE_DIR}/components/security_apps/orchestration/k8s_policy_gen/include/settings_section.h:90"
		"--suppress=passedByValue:${CMAKE_SOURCE_DIR}/components/security_apps/orchestration/k8s_policy_gen/include/exceptions_section.h:222"
		"--suppress=passedByValue:${CMAKE_SOURCE_DIR}/components/security_apps/orchestration/k8s_policy_gen/include/exceptions_section.h:223"
		"--suppress=passedByValue:${CMAKE_SOURCE_DIR}/components/security_apps/orchestration/k8s_policy_gen/include/exceptions_section.h:254"
		"--suppress=passedByValue:${CMAKE_SOURCE_DIR}/components/security_apps/orchestration/k8s_policy_gen/include/rules_config_section.h:220"
		"--suppress=passedByValue:${CMAKE_SOURCE_DIR}/components/security_apps/orchestration/k8s_policy_gen/include/rules_config_section.h:221"
		"--suppress=passedByValue:${CMAKE_SOURCE_DIR}/components/security_apps/orchestration/k8s_policy_gen/include/rules_config_section.h:222"
		"--suppress=postfixOperator:${CMAKE_SOURCE_DIR}/components/security_apps/orchestration/k8s_policy_gen/include/rules_config_section.h:84"
		"--suppress=passedByValue:${CMAKE_SOURCE_DIR}/components/security_apps/waap/first_request_object.cc:18"
		"--suppress=passedByValue:${CMAKE_SOURCE_DIR}/components/security_apps/waap/first_request_object.cc:19"
		"--suppress=uninitMemberVar:${CMAKE_SOURCE_DIR}/external/cereal/details/traits.hpp:1126"
		"--suppress=nullPointer:${CMAKE_SOURCE_DIR}/components/security_apps/waap/waap_clib/ParserBinary.cc:54"
		"--suppress=nullPointerArithmetic:${CMAKE_SOURCE_DIR}/components/security_apps/waap/waap_clib/ParserBinary.cc:92"
		"--suppress=nullPointer:${CMAKE_SOURCE_DIR}/components/security_apps/waap/waap_clib/ParserHdrValue.cc:84"
		"--suppress=nullPointerArithmetic:${CMAKE_SOURCE_DIR}/components/security_apps/waap/waap_clib/ParserHdrValue.cc:125"
		"--suppress=nullPointer:${CMAKE_SOURCE_DIR}/components/security_apps/waap/waap_clib/ParserJson.cc:276"
		"--suppress=nullPointer:${CMAKE_SOURCE_DIR}/components/security_apps/waap/waap_clib/ParserJson.cc:287"
		"--suppress=nullPointerArithmetic:${CMAKE_SOURCE_DIR}/components/security_apps/waap/waap_clib/ParserJson.cc:304"
		"--suppress=nullPointerArithmetic:${CMAKE_SOURCE_DIR}/components/security_apps/waap/waap_clib/ParserJson.cc:313"
		"--suppress=nullPointer:${CMAKE_SOURCE_DIR}/components/security_apps/waap/waap_clib/ParserMultipartForm.cc:110"
		"--suppress=nullPointerArithmetic:${CMAKE_SOURCE_DIR}/components/security_apps/waap/waap_clib/ParserMultipartForm.cc:172"
		"--suppress=nullPointer:${CMAKE_SOURCE_DIR}/components/security_apps/waap/waap_clib/ParserUrlEncode.cc:67"
		"--suppress=nullPointerArithmetic:${CMAKE_SOURCE_DIR}/components/security_apps/waap/waap_clib/ParserUrlEncode.cc:107"
		"--suppress=nullPointer:${CMAKE_SOURCE_DIR}/components/security_apps/waap/waap_clib/ParserXML.cc:256"
		"--suppress=nullPointer:${CMAKE_SOURCE_DIR}/components/security_apps/waap/waap_clib/ParserXML.cc:266"
		"--suppress=nullPointerArithmetic:${CMAKE_SOURCE_DIR}/components/security_apps/waap/waap_clib/ParserXML.cc:295"
		"--suppress=nullPointerArithmetic:${CMAKE_SOURCE_DIR}/components/security_apps/waap/waap_clib/ParserXML.cc:297"
		"--suppress=nullPointer:${CMAKE_SOURCE_DIR}/components/security_apps/waap/waap_clib/ParserDelimiter.cc:59"
		"--suppress=nullPointerArithmetic:${CMAKE_SOURCE_DIR}/components/security_apps/waap/waap_clib/ParserDelimiter.cc:87"
		"--suppress=nullPointerArithmetic:${CMAKE_SOURCE_DIR}/components/security_apps/waap/waap_clib/ParserDelimiter.cc:88"
		"--suppress=nullPointer:${CMAKE_SOURCE_DIR}/components/security_apps/waap/waap_clib/ParserConfluence.cc:44"
		"--suppress=nullPointerArithmetic:${CMAKE_SOURCE_DIR}/components/security_apps/waap/waap_clib/ParserConfluence.cc:67"
		"--suppress=nullPointer:${CMAKE_SOURCE_DIR}/components/security_apps/waap/waap_clib/ParserHTML.cc:225"
		"--suppress=nullPointer:${CMAKE_SOURCE_DIR}/components/security_apps/waap/waap_clib/ParserHTML.cc:235"
		"--suppress=nullPointerArithmetic:${CMAKE_SOURCE_DIR}/components/security_apps/waap/waap_clib/ParserHTML.cc:265"
		"--suppress=nullPointerArithmetic:${CMAKE_SOURCE_DIR}/components/security_apps/waap/waap_clib/ParserHTML.cc:267"
		"--suppress=nullPointer:${CMAKE_SOURCE_DIR}/components/security_apps/waap/waap_clib/PHPSerializedDataParser.cc:71"
		"--suppress=stlIfStrFind:${CMAKE_SOURCE_DIR}/components/security_apps/waap/waap_clib/WaapScanner.cc:218"
		"--suppress=virtualCallInConstructor:${CMAKE_SOURCE_DIR}/components/security_apps/waap/waap_clib/WaapAssetState.h:81"
		"--suppress=postfixOperator:${CMAKE_SOURCE_DIR}/components/security_apps/waap/waap_clib/Waf2Util.cc:886"
		"--suppress=postfixOperator:${CMAKE_SOURCE_DIR}/components/security_apps/waap/waap_clib/Waf2Util.cc:907"
		"--suppress=postfixOperator:${CMAKE_SOURCE_DIR}/components/security_apps/waap/waap_clib/Waf2Util.cc:1007"
		"--suppress=postfixOperator:${CMAKE_SOURCE_DIR}/components/security_apps/waap/waap_clib/Waf2Util.cc:1031"
		"--suppress=postfixOperator:${CMAKE_SOURCE_DIR}/components/security_apps/waap/waap_clib/Waf2Util.cc:1058"
		"--suppress=postfixOperator:${CMAKE_SOURCE_DIR}/components/security_apps/waap/waap_clib/Waf2Util.cc:1260"
		"--suppress=postfixOperator:${CMAKE_SOURCE_DIR}/components/security_apps/waap/waap_clib/OpenApiParser.cc:260"
		"--suppress=passedByValue:${CMAKE_SOURCE_DIR}/components/security_apps/waap/waap_clib/UrlTemplate.cc:73"
		"--suppress=stlFindInsert:${CMAKE_SOURCE_DIR}/components/security_apps/waap/waap_clib/BehaviorAnalysis.cc:152"
		"--suppress=stlFindInsert:${CMAKE_SOURCE_DIR}/components/security_apps/waap/waap_clib/BehaviorAnalysis.cc:169"
		"--suppress=stlFindInsert:${CMAKE_SOURCE_DIR}/components/security_apps/waap/waap_clib/BehaviorAnalysis.cc:194"
		"--suppress=stlFindInsert:${CMAKE_SOURCE_DIR}/components/security_apps/waap/waap_clib/BehaviorAnalysis.cc:265"
		"--suppress=stlFindInsert:${CMAKE_SOURCE_DIR}/components/security_apps/waap/waap_clib/BehaviorAnalysis.cc:340"
		"--suppress=stlFindInsert:${CMAKE_SOURCE_DIR}/components/security_apps/waap/waap_clib/FpMitigation.cc:131"
		"--suppress=stlFindInsert:${CMAKE_SOURCE_DIR}/components/security_apps/waap/waap_clib/FpMitigation.cc:135"
		"--suppress=stlFindInsert:${CMAKE_SOURCE_DIR}/components/security_apps/waap/waap_clib/ScoreBuilder.cc:95"
		"--suppress=funcArgOrderDifferent:${CMAKE_SOURCE_DIR}/components/security_apps/waap/waap_clib/TypeIndicatorsFilter.cc:59"
		"--suppress=passedByValue:${CMAKE_SOURCE_DIR}/components/security_apps/waap/waap_clib/KeywordIndicatorFilter.cc:27"
		"--suppress=stlIfStrFind:${CMAKE_SOURCE_DIR}/components/security_apps/waap/waap_clib/IndicatorsFiltersManager.cc:280"
		"--suppress=passedByValue:${CMAKE_SOURCE_DIR}/components/security_apps/waap/waap_clib/TuningDecision.cc:73"
		"--suppress=passedByValue:${CMAKE_SOURCE_DIR}/components/security_apps/waap/waap_clib/TuningDecision.cc:90"
		"--suppress=ignoredReturnValue:${CMAKE_SOURCE_DIR}/nodes/orchestration/package/cpnano_debug/cpnano_debug.cc:123"
		"--suppress=stlIfStrFind:${CMAKE_SOURCE_DIR}/nodes/orchestration/package/cpnano_debug/cpnano_debug.cc:1273"
	)
endif()
