﻿# Apache Thrift © The Apache Software Foundation
# http://www.apache.org/licenses/LICENSE-2.0
# SPDX-License-Identifier: Apache-2.0

# File: sonar-project.properties
# Apache Thrift configuration file for Sonar https://analysis.apache.org/
# Sonar is an open platform to manage code quality http://www.sonarsource.org/


# required metadata
sonar.projectKey=org.apache.thrift
sonar.projectName=Apache Thrift
sonar.projectDescription=
The Apache Thrift software framework, for scalable cross-language services
development, combines a software stack with a code generation engine to build
services that work efficiently and seamlessly between all major languages.

# Apache Thrift Version
sonar.projectVersion=1.0.0
# use this to set another version string
# $ sonar-runner -D sonar.projectVersion=`git rev-parse HEAD`
# set projectDate in combination with projectVersion for imports of old releases
#sonar.projectDate=yyyy-MM-dd

# TODO add website (sonar.projectUrl does not work)
#sonar.XXXX=http//thrift.apache.org

# Some properties that will be inherited by the modules
sonar.sources=src
sonar.language=java,js,c++,py,c
sonar.sourceEncoding=UTF-8

# scm
sonar.scm.url=scm:git:https://github.com/apache/thrift.git

# cppcheck -q --error-exitcode=0 --xml . 2> cppcheck-result.xml
sonar.cxx.cppcheck.reportPath=cppcheck-result.xml

# List of the module identifiers
sonar.modules=module1,module3,module4,module5,module6,module7,module8,module9,module10,module11,module12,module14



# we need sonar-runner 2.1 for this, see http://jira.codehaus.org/browse/SONARPLUGINS-2421
#sonar.modules=module2

# delph plugin is broken
#sonar.modules=module13

# phpunit plugin is broken
#sonar.modules=module15

module1.sonar.projectName=Apache Thrift - Java Library
module1.sonar.projectBaseDir=lib/java
module1.sonar.sources=src
module1.sonar.tests=test
module1.sonar.binaries=build/libs/libthrift-1.0.0.jar
module1.sonar.libraries=build/deps/*.jar
module1.sonar.language=java

module2.sonar.projectName=Apache Thrift - Java Tutorial
module2.sonar.projectBaseDir=.
module2.sonar.sources=tutorial/java/src, tutorial/java/gen-java
module2.sonar.binaries=tutorial/java/tutorial.jar
module2.sonar.libraries=lib/java/build/deps/*.jar,lib/java/build/libs/libthrift-1.0.0.jar
module2.sonar.language=java

module3.sonar.projectName=Apache Thrift - JavaScript Library
module3.sonar.projectBaseDir=lib/js
module3.sonar.sources=.
module3.sonar.exclusions=test/**/*
module3.sonar.language=js

module4.sonar.projectName=Apache Thrift - JavaScript Tutorial
module4.sonar.projectBaseDir=tutorial/js
module4.sonar.sources=.
module4.sonar.language=web

module5.sonar.projectName=Apache Thrift - C++ Library
module5.sonar.projectBaseDir=lib/cpp
module5.sonar.sources=src
module5.sonar.tests=test
module5.sonar.language=c++

module6.sonar.projectName=Apache Thrift - C++ Tutorial
module6.sonar.projectBaseDir=tutorial/cpp
module6.sonar.sources=.
module6.sonar.exclusions=gen-cpp/**/*
module6.sonar.language=c++

module7.sonar.projectName=Apache Thrift - C++ Cross Language Test
module7.sonar.projectBaseDir=test/cpp
module7.sonar.sources=src
module7.sonar.language=c++

module8.sonar.projectName=Apache Thrift - Compiler
module8.sonar.projectBaseDir=compiler/cpp
module8.sonar.sources=src
module8.sonar.language=c++

module9.sonar.projectName=Apache Thrift - Python Library
module9.sonar.projectBaseDir=lib/py
module9.sonar.sources=src
module9.sonar.language=py

module10.sonar.projectName=Apache Thrift - Python Tutorial
module10.sonar.projectBaseDir=tutorial/py
module10.sonar.sources=.
module10.sonar.exclusions=gen-py/**/*
module10.sonar.language=py

module11.sonar.projectName=Apache Thrift - Python Cross Language Test
module11.sonar.projectBaseDir=test/py
module11.sonar.sources=.
module11.sonar.exclusions=gen-*/**/*
module11.sonar.language=py

module12.sonar.projectName=Apache Thrift - c_glib Library
module12.sonar.projectBaseDir=lib/c_glib
module12.sonar.sources=src
module12.sonar.language=c

module13.sonar.projectName=Apache Thrift - Delphi Library
module13.sonar.projectBaseDir=lib/delphi
module13.sonar.sources=src
module13.sonar.tests=test
module13.sonar.language=delph

module14.sonar.projectName=Apache Thrift - Flex (as3) Library
module14.sonar.projectBaseDir=lib/as3
module14.sonar.sources=src
module14.sonar.language=flex

module15.sonar.projectName=Apache Thrift - PHP Library
module15.sonar.projectBaseDir=lib/php
module15.sonar.sources=src
module15.sonar.language=php

# TODO add some more languages here

