Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
another try to fix mac OSX (libunwind is not the one we think there)
[simgrid.git] / tools / cmake / Modules / FindLibunwind.cmake
1 if(PROCESSOR_x86_64)
2   find_library(PATH_LIBUNWIND_LIB
3     NAMES unwind-x86_64
4     HINTS
5     $ENV{SIMGRID_LIBUNWIND_LIBRARY_PATH}
6     $ENV{LD_LIBRARY_PATH}
7     $ENV{LIBUNWIND_LIBRARY_PATH}
8     PATH_SUFFIXES lib/ GnuWin32/lib lib/system
9     PATHS
10     /opt
11     /opt/local
12     /opt/csw
13     /sw
14     /usr)
15 endif()
16
17 if(NOT PATH_LIBUNWIND_LIB)
18   # Mac OSX has a libunwind that is not the one we need
19   CHECK_LIBRARY_EXISTS(unwind unw_init_local "Whether libunwind is usable" RIGHT_LIBUNWIND)
20
21   if (RIGHT_LIBUNWIND)
22     find_library(PATH_LIBUNWIND_LIB
23       NAMES unwind
24       HINTS
25       $ENV{SIMGRID_LIBUNWIND_LIBRARY_PATH}
26       $ENV{LD_LIBRARY_PATH}
27       $ENV{LIBUNWIND_LIBRARY_PATH}
28       PATH_SUFFIXES lib/ GnuWin32/lib lib/system
29       PATHS
30       /opt
31       /opt/local
32       /opt/csw
33       /sw
34       /usr
35       /usr/lib/)
36   endif()
37 endif()
38
39 find_path(PATH_LIBUNWIND_H "libunwind.h"
40   HINTS
41   $ENV{SIMGRID_LIBUNWIND_LIBRARY_PATH}
42   $ENV{LD_LIBRARY_PATH}
43   $ENV{LIBUNWIND_LIBRARY_PATH}
44   PATH_SUFFIXES include/ GnuWin32/include
45   PATHS
46   /opt
47   /opt/local
48   /opt/csw
49   /sw
50   /usr)
51
52 message(STATUS "Looking for libunwind.h")
53 if(PATH_LIBUNWIND_H)
54   message(STATUS "Looking for libunwind.h - found")
55 else()
56   message(STATUS "Looking for libunwind.h - not found")
57 endif()
58
59 message(STATUS "Looking for libunwind")
60 if(PATH_LIBUNWIND_LIB)
61   message(STATUS "Looking for libunwind - found")
62 else()
63   message(STATUS "Looking for libunwind - not found")
64 endif()
65
66 if(PATH_LIBUNWIND_LIB AND PATH_LIBUNWIND_H)
67   string(REGEX REPLACE "/libunwind.*[.]${LIB_EXE}$" "" PATH_LIBUNWIND_LIB "${PATH_LIBUNWIND_LIB}")
68   string(REGEX REPLACE "/libunwind.h"               "" PATH_LIBUNWIND_H   "${PATH_LIBUNWIND_H}")
69       
70   include_directories(${PATH_LIBUNWIND_H})
71   link_directories(${PATH_LIBUNWIND_LIB})
72   SET(HAVE_LIBUNWIND 1)
73 else()
74   SET(HAVE_LIBUNWIND 0)
75 endif()
76
77 mark_as_advanced(PATH_LIBDW_H)
78 mark_as_advanced(PATH_LIBDW_LIB)
79 mark_as_advanced(PATH_LIBUNWIND_LIB)
80 mark_as_advanced(PATH_LIBUNWIND_H)