Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Fix MC builds after my fix for Mac OSX around libunwind :-(
[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   find_library(PATH_LIBUNWIND_LIB
19     NAMES unwind
20     HINTS
21       $ENV{SIMGRID_LIBUNWIND_LIBRARY_PATH}
22       $ENV{LD_LIBRARY_PATH}
23       $ENV{LIBUNWIND_LIBRARY_PATH}
24       PATH_SUFFIXES lib/ GnuWin32/lib lib/system
25       PATHS
26       /opt
27       /opt/local
28       /opt/csw
29       /sw
30       /usr
31       /usr/lib/)
32       
33   # Mac OSX has a libunwind that is not the one we need, so double check
34   if (PATH_LIBUNWIND_LIB)
35     CHECK_LIBRARY_EXISTS(unwind unw_init_local PATH_LIBUNWIND_LIB RIGHT_LIBUNWIND)
36     if (NOT RIGHT_LIBUNWIND)
37       unset(PATH_LIBUNWIND_LIB)
38     endif()
39   endif()
40 endif()
41
42 find_path(PATH_LIBUNWIND_H "libunwind.h"
43   HINTS
44   $ENV{SIMGRID_LIBUNWIND_LIBRARY_PATH}
45   $ENV{LD_LIBRARY_PATH}
46   $ENV{LIBUNWIND_LIBRARY_PATH}
47   PATH_SUFFIXES include/ GnuWin32/include
48   PATHS
49   /opt
50   /opt/local
51   /opt/csw
52   /sw
53   /usr)
54
55 message(STATUS "Looking for libunwind.h")
56 if(PATH_LIBUNWIND_H)
57   message(STATUS "Looking for libunwind.h - found")
58 else()
59   message(STATUS "Looking for libunwind.h - not found")
60 endif()
61
62 message(STATUS "Looking for libunwind")
63 if(PATH_LIBUNWIND_LIB)
64   message(STATUS "Looking for libunwind - found")
65 else()
66   message(STATUS "Looking for libunwind - not found")
67 endif()
68
69 if(PATH_LIBUNWIND_LIB AND PATH_LIBUNWIND_H)
70   string(REGEX REPLACE "/libunwind.*[.]${LIB_EXE}$" "" PATH_LIBUNWIND_LIB "${PATH_LIBUNWIND_LIB}")
71   string(REGEX REPLACE "/libunwind.h"               "" PATH_LIBUNWIND_H   "${PATH_LIBUNWIND_H}")
72       
73   include_directories(${PATH_LIBUNWIND_H})
74   link_directories(${PATH_LIBUNWIND_LIB})
75   SET(HAVE_LIBUNWIND 1)
76 else()
77   SET(HAVE_LIBUNWIND 0)
78 endif()
79
80 mark_as_advanced(PATH_LIBDW_H)
81 mark_as_advanced(PATH_LIBDW_LIB)
82 mark_as_advanced(PATH_LIBUNWIND_LIB)
83 mark_as_advanced(PATH_LIBUNWIND_H)