Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
5de26cca1ee5d677c3bc48091cb8d985cbfb8b22
[simgrid.git] / buildtools / 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
9     PATHS
10     /opt
11     /opt/local
12     /opt/csw
13     /sw
14     /usr)
15 end()
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
25     PATHS
26     /opt
27     /opt/local
28     /opt/csw
29     /sw
30     /usr)
31 endif()
32
33 find_path(PATH_LIBUNWIND_H "libunwind.h"
34   HINTS
35   $ENV{SIMGRID_LIBUNWIND_LIBRARY_PATH}
36   $ENV{LD_LIBRARY_PATH}
37   $ENV{LIBUNWIND_LIBRARY_PATH}
38   PATH_SUFFIXES include/ GnuWin32/include
39   PATHS
40   /opt
41   /opt/local
42   /opt/csw
43   /sw
44   /usr)
45
46 message(STATUS "Looking for libunwind.h")
47 if(PATH_LIBUNWIND_H)
48   message(STATUS "Looking for libunwind.h - found")
49 else()
50   message(STATUS "Looking for libunwind.h - not found")
51 endif()
52
53 message(STATUS "Looking for libunwind")
54 if(PATH_LIBUNWIND_LIB)
55   message(STATUS "Looking for libunwind - found")
56 else()
57   message(STATUS "Looking for libunwind - not found")
58 endif()
59
60 if(PATH_LIBUNWIND_LIB AND PATH_LIBUNWIND_H)
61   string(REGEX REPLACE "/libunwind.*[.]${LIB_EXE}$" "" PATH_LIBUNWIND_LIB "${PATH_LIBUNWIND_LIB}")
62   string(REGEX REPLACE "/libunwind.h"               "" PATH_LIBUNWIND_H   "${PATH_LIBUNWIND_H}")
63       
64   include_directories(${PATH_LIBUNWIND_H})
65   link_directories(${PATH_LIBUNWIND_LIB})
66   
67 else()
68   message(FATAL_ERROR "Please either install the libunwind7-dev package (or equivalent) or turn off the model-checking option of SimGrid.")
69 endif()
70
71 mark_as_advanced(PATH_LIBDW_H)
72 mark_as_advanced(PATH_LIBDW_LIB)