Makefile
2.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
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