#
#  sonar-project.properties
#  Lilu
#
#  Copyright © 2018 vit9696. All rights reserved.
#

# Reference: https://docs.sonarqube.org/latest/analysis/analysis-parameters/

sonar.projectKey=acidanthera_Lilu
sonar.projectName=Lilu
sonar.projectVersion=1.0

sonar.links.homepage=https://github.com/acidanthera/Lilu
sonar.links.ci=https://github.com/acidanthera/Lilu
sonar.links.scm=https://github.com/acidanthera/Lilu
sonar.links.issue=https://github.com/acidanthera/Lilu/issues

sonar.sourceEncoding=UTF-8
sonar.sources=Lilu

# Source exclusions

sonar.exclusions=Lilu/Library/bsd/**,Lilu/Library/corecrypto/**,Lilu/Library/libkern/**,\
  Lilu/Library/osfmk/**,Lilu/Library/security/**,Lilu/Library/LegacyIOService.h

# Rule exclusions

sonar.issue.ignore.multicriteria=e1,e2,e3,e4,e5,e6,e7,e8,e9,e10,e11,e12

# Allow undef in special cases as we use them carefully
sonar.issue.ignore.multicriteria.e1.ruleKey=cpp:PPUndefUsage
sonar.issue.ignore.multicriteria.e1.resourceKey=**

# Allow union
sonar.issue.ignore.multicriteria.e2.ruleKey=cpp:Union
sonar.issue.ignore.multicriteria.e2.resourceKey=**

# Allow structs with (public only) methods
sonar.issue.ignore.multicriteria.e3.ruleKey=cpp:S1771
sonar.issue.ignore.multicriteria.e3.resourceKey=**

# Remove structure complexity limits, fixing will be costly
sonar.issue.ignore.multicriteria.e4.ruleKey=cpp:S1820
sonar.issue.ignore.multicriteria.e4.resourceKey=**

# Remove argument complexity limits, fixing will be costly
sonar.issue.ignore.multicriteria.e5.ruleKey=cpp:S107
sonar.issue.ignore.multicriteria.e5.resourceKey=**

# Remove function complexity limits, fixing will be costly
sonar.issue.ignore.multicriteria.e6.ruleKey=cpp:S3776
sonar.issue.ignore.multicriteria.e6.resourceKey=**

# Remove break/continue complexity limits, fixing will be costly
sonar.issue.ignore.multicriteria.e7.ruleKey=cpp:SingleGotoOrBreakPerIteration
sonar.issue.ignore.multicriteria.e7.resourceKey=**

# The use of ## is intentional
sonar.issue.ignore.multicriteria.e8.ruleKey=cpp:PPStringifyAndPastingUsage
sonar.issue.ignore.multicriteria.e8.resourceKey=**

# The use of const_cast is intentional to hide the internals
sonar.issue.ignore.multicriteria.e9.ruleKey=cpp:S859
sonar.issue.ignore.multicriteria.e9.resourceKey=**

# Adding & prior to function name is not a bug and was removed from MISRA-C 2012
sonar.issue.ignore.multicriteria.e10.ruleKey=cpp:S936
sonar.issue.ignore.multicriteria.e10.resourceKey=**

# We need variable argument functions
sonar.issue.ignore.multicriteria.e11.ruleKey=cpp:FunctionEllipsis
sonar.issue.ignore.multicriteria.e11.resourceKey=**

# Allow multiple declarations on one line
sonar.issue.ignore.multicriteria.e12.ruleKey=cpp:SingleDeclarationPerStatement
sonar.issue.ignore.multicriteria.e12.resourceKey=**

# sonar.language directive is deprecated and breaks multilanguage analysis.
# One has to manually disable every analyser to ensure no random files are analysed.
# Enabled languages are commented out.

sonar.abap.file.suffixes=-
sonar.apex.file.suffixes=-
#sonar.c.file.suffixes=-
sonar.cobol.file.suffixes=-
#sonar.cpp.file.suffixes=-
sonar.cs.file.suffixes=-
sonar.css.file.suffixes=-
sonar.flex.file.suffixes=-
sonar.go.file.suffixes=-
sonar.groovy.file.suffixes
sonar.html.file.suffixes=-
sonar.java.file.suffixes=-
sonar.javascript.file.suffixes=-
sonar.kotlin.file.suffixes=-
#sonar.objc.file.suffixes=-
sonar.pli.file.suffixes=-
sonar.plsql.file.suffixes=-
sonar.php.file.suffixes=-
sonar.python.file.suffixes=-
sonar.ruby.file.suffixes=-
sonar.scala.file.suffixes=-
sonar.swift.file.suffixes=-
sonar.tsql.file.suffixes=-
sonar.typescript.file.suffixes=-
sonar.vb.file.suffixes=-
sonar.vbnet.file.suffixes=-
sonar.web.file.suffixes=-
sonar.xml.file.suffixes=-

# Specified --out-dir for the build-wrapper
sonar.cfamily.build-wrapper-output=DerivedData/compilation-database

# Disable coverage
sonar.coverage.exclusions=**
