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