X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/4716eb134de74f09bda227c6f3bdea71924acc8c..c7d7c63df056ba7baedcd29ee5e9d6dace72f296:/tools/cmake/Modules/FindValgrind.cmake diff --git a/tools/cmake/Modules/FindValgrind.cmake b/tools/cmake/Modules/FindValgrind.cmake index f4aee7adda..4afd05bf88 100644 --- a/tools/cmake/Modules/FindValgrind.cmake +++ b/tools/cmake/Modules/FindValgrind.cmake @@ -8,31 +8,24 @@ find_program(VALGRIND_EXE /sw /usr ) +mark_as_advanced(VALGRIND_EXE) -if(VALGRIND_EXE) - message(STATUS "Found valgrind: ${VALGRIND_EXE}") - set (TESH_OPTION ${TESH_OPTION} --setenv VALGRIND_COMMAND=${CMAKE_HOME_DIRECTORY}/tools/cmake/scripts/my_valgrind.pl) -endif() +if(enable_memcheck) + if (NOT VALGRIND_EXE MATCHES "NOTFOUND") + execute_process(COMMAND ${VALGRIND_EXE} --version OUTPUT_VARIABLE "VALGRIND_VERSION") + message(STATUS "Valgrind version: ${VALGRIND_VERSION}") -if(enable_memcheck_xml) - SET(VALGRIND_EXTRA_COMMAND_OPTIONS "--xml=yes --xml-file=memcheck_test_%p.memcheck --child-silent-after-fork=yes") -endif() + set(TESH_WRAPPER ${CMAKE_HOME_DIRECTORY}/tools/cmake/scripts/my_valgrind.pl) + set(TESH_WRAPPER ${TESH_WRAPPER}\ --trace-children=yes\ --trace-children-skip=/usr/bin/*,/bin/*\ --leak-check=full\ --show-reachable=yes\ --track-origins=no\ --read-var-info=no\ --num-callers=20\ --suppressions=${CMAKE_HOME_DIRECTORY}/tools/simgrid.supp\ ) + if(enable_memcheck_xml) + SET(TESH_WRAPPER ${TESH_WRAPPER}\ --xml=yes\ --xml-file=memcheck_test_%p.memcheck\ --child-silent-after-fork=yes\ ) + endif() -if(VALGRIND_EXE) - execute_process(COMMAND ${VALGRIND_EXE} --version OUTPUT_VARIABLE "VALGRIND_VERSION") - string(REGEX MATCH "[0-9]+.[0-9]+.[0-9]+" NEW_VALGRIND_VERSION "${VALGRIND_VERSION}") - if(NEW_VALGRIND_VERSION) - message(STATUS "Valgrind version: ${NEW_VALGRIND_VERSION}") -# execute_process(COMMAND ${CMAKE_HOME_DIRECTORY}/tools/cmake/scripts/generate_memcheck_tests.pl ${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/tools/cmake/Tests.cmake OUTPUT_FILE ${CMAKE_BINARY_DIR}/memcheck_tests.cmake) - set (TESH_OPTION ${TESH_OPTION} --setenv VALGRIND_OPTIONS="--trace-children=yes --trace-children-skip=/usr/bin/*,/bin/* --leak-check=full --show-reachable=yes --track-origins=no --read-var-info=no --num-callers=20 --suppressions=${CMAKE_HOME_DIRECTORY}/tools/simgrid.supp ${VALGRIND_EXTRA_COMMAND_OPTIONS}" ) - message(STATUS "Tesh options: ${TESH_OPTION}") +# message(STATUS "tesh wrapper: ${TESH_WRAPPER}") + + mark_as_advanced(TESH_WRAPPER) else() set(enable_memcheck false) message(STATUS "Error: Command valgrind not found --> enable_memcheck autoset to false.") endif() -else() - set(enable_memcheck false) - message(FATAL_ERROR "Command valgrind not found --> enable_memcheck autoset to false.") endif() - -mark_as_advanced(VALGRIND_EXE)