Makefile 2.18 KB

all:
	cmake --build build
	make -C build install

create:
	cmake -E make_directory build
	cmake -E chdir build cmake -DCMAKE_C_COMPILER=/opt/tools/gcc/4.7.2/rtf/bin/gcc -D CMAKE_CXX_COMPILER=/opt/tools/gcc/4.7.2/rtf/bin/g++ -DCMAKE_BUILD_TYPE=Debug ..

create-gcov:
	cmake -E make_directory build
	cmake -E chdir build cmake -DCMAKE_C_COMPILER=/opt/tools/gcc/4.7.2/rtf/bin/gcc -D CMAKE_CXX_COMPILER=/opt/tools/gcc/4.7.2/rtf/bin/g++ -DCMAKE_BUILD_TYPE=Debug -DOPTION_SUP="--coverage" ..
#-fprofile-arcs -ftest -coverage

clean:
	rm -rf build
	
# ---- Sonar ----
#Liste des cibles à exécuter pour récolter les métriques
sonar: sonar_cleanup sonar_cppcheck sonar_vera sonar_rats sonar_run_tu sonar_get_overall_cover sonar_sonar

CPPCHECK_INCLUDES = -Isrc
SOURCES_TO_ANALYSE = src

sonar_cleanup:
	rm -f reports/*.xml

# Analyse statique du code source
sonar_cppcheck:
	cppcheck -v --enable=all --xml $(CPPCHECK_INCLUDES) $(SOURCES_TO_ANALYSE) 2> reports/cppcheck-report.xml

# Analyse statique du code orientée standards de codages 
sonar_vera:
	bash -c 'find src -regex ".*\.cpp\|.*\.h" | vera++ - -showrules -nodup |& /opt/sonar-cxx-master/sonar-cxx-plugin/src/tools/vera++Report2checkstyleReport.perl > reports/vera++-report.xml'

# Analyse statique orientée vers la détection des problèmes potentiels de sécurité
sonar_rats:
	rats -w 3 --xml $(SOURCES_TO_ANALYSE) > reports/rats-report.xml

# Exécution des tests unitaires et production des rapports:
# 1) rapport d'exécution
# 2) rapports valgrind/memcheck
# 3) rapport de couverture de code
sonar_run_tu:
	-./run-unit-tests
	/opt/sonar-cxx-master/sonar-cxx-plugin/src/tools/gcovr -d -x -r . > reports/gcovr-tu-report.xml
#	xsltproc --stringparam suitename helloworld-cpp-sonar /opt/sonar-tools/cppunit-to-junit/xslt//cppunit-to-junit.xslt reports/cppunit-report-tu.xml > reports/xunit-report-tu.xml

# Récupération du rapport de couverture global
sonar_get_overall_cover:
	java -jar /opt/sonar-tools/cobertura-report-merge/bin/cobertura-report-merge.jar reports/gcovr-it-report.xml reports/gcovr-tu-report.xml reports/gcovr-overall-report.xml

# Envoi des rapports dans sonar, la configuration est fournie par sonar-project.properties
sonar_sonar:
	sonar-runner -X