X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/ba5e8b528ff29715f5a9008137e117a9fbcc24b0..b1369e636e06e5ea1547c38b554fcb17ad7ca81a:/tools/cmake/Modules/FindLibunwind.cmake diff --git a/tools/cmake/Modules/FindLibunwind.cmake b/tools/cmake/Modules/FindLibunwind.cmake index aadb69224c..1a2dd8308e 100644 --- a/tools/cmake/Modules/FindLibunwind.cmake +++ b/tools/cmake/Modules/FindLibunwind.cmake @@ -1,3 +1,5 @@ +message(STATUS "Looking for libunwind") + if(PROCESSOR_x86_64) find_library(PATH_LIBUNWIND_LIB NAMES unwind-x86_64 @@ -12,23 +14,38 @@ if(PROCESSOR_x86_64) /opt/csw /sw /usr) + message(STATUS "Looking for libunwind-x86_64 - found") endif() if(NOT PATH_LIBUNWIND_LIB) find_library(PATH_LIBUNWIND_LIB NAMES unwind HINTS - $ENV{SIMGRID_LIBUNWIND_LIBRARY_PATH} - $ENV{LD_LIBRARY_PATH} - $ENV{LIBUNWIND_LIBRARY_PATH} - PATH_SUFFIXES lib/ GnuWin32/lib lib/system - PATHS - /opt - /opt/local - /opt/csw - /sw - /usr - /usr/lib/) + $ENV{SIMGRID_LIBUNWIND_LIBRARY_PATH} + $ENV{LD_LIBRARY_PATH} + $ENV{LIBUNWIND_LIBRARY_PATH} + PATH_SUFFIXES lib/ GnuWin32/lib lib/system + PATHS + /opt + /opt/local + /opt/csw + /sw + /usr + /usr/lib/) + + # Mac OSX has a libunwind that is not the one we need, so double check + if (PATH_LIBUNWIND_LIB) + message(STATUS "Looking for libunwind - found") + CHECK_LIBRARY_EXISTS(unwind unw_init_local "${PATH_LIBUNWIND_LIB}" RIGHT_LIBUNWIND) + if (NOT RIGHT_LIBUNWIND) + message(STATUS "libunwind in ${PATH_LIBUNWIND_LIB} is unusable. Disable it.") + set(PATH_LIBUNWIND_LIB 0) + endif() + + else() + message(STATUS "Looking for libunwind - not found") + endif() + endif() find_path(PATH_LIBUNWIND_H "libunwind.h" @@ -51,23 +68,18 @@ else() message(STATUS "Looking for libunwind.h - not found") endif() -message(STATUS "Looking for libunwind") -if(PATH_LIBUNWIND_LIB) - message(STATUS "Looking for libunwind - found") -else() - message(STATUS "Looking for libunwind - not found") -endif() - if(PATH_LIBUNWIND_LIB AND PATH_LIBUNWIND_H) string(REGEX REPLACE "/libunwind.*[.]${LIB_EXE}$" "" PATH_LIBUNWIND_LIB "${PATH_LIBUNWIND_LIB}") string(REGEX REPLACE "/libunwind.h" "" PATH_LIBUNWIND_H "${PATH_LIBUNWIND_H}") include_directories(${PATH_LIBUNWIND_H}) link_directories(${PATH_LIBUNWIND_LIB}) - + SET(HAVE_LIBUNWIND 1) else() - message(FATAL_ERROR "Please either install the libunwind7-dev package (or equivalent) or turn off the model-checking option of SimGrid.") + SET(HAVE_LIBUNWIND 0) endif() mark_as_advanced(PATH_LIBDW_H) mark_as_advanced(PATH_LIBDW_LIB) +mark_as_advanced(PATH_LIBUNWIND_LIB) +mark_as_advanced(PATH_LIBUNWIND_H)