X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/dda91eacaae468bcab4a7e4d28c9a1c1afc34951..10060b29239752f70a1a5a3a514d3f491b7acc57:/tools/cmake/Modules/FindValgrind.cmake diff --git a/tools/cmake/Modules/FindValgrind.cmake b/tools/cmake/Modules/FindValgrind.cmake index 09439dc2a5..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(ENV{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(ENV{VALGRIND_COMMAND_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 "Valgrind options: $ENV{VALGRIND_COMMAND_OPTIONS}") +# 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)