Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Switch the event handling in the MC to libevent.
[simgrid.git] / tools / cmake / Modules / FindLibdw.cmake
index 77ffc47..9574bda 100644 (file)
@@ -1,53 +1,34 @@
-find_library(PATH_LIBDW_LIB
-  NAMES dw
+find_path(LIBDW_INCLUDE_DIR "elfutils/libdw.h"
   HINTS
   $ENV{SIMGRID_LIBDW_LIBRARY_PATH}
   $ENV{LD_LIBRARY_PATH}
   $ENV{LIBDW_LIBRARY_PATH}
-  PATH_SUFFIXES lib/ GnuWin32/lib
+  PATH_SUFFIXES include/ GnuWin32/include
   PATHS
   /opt
   /opt/local
   /opt/csw
   /sw
   /usr)
-
-find_path(PATH_LIBDW_H "elfutils/libdw.h"
+find_library(LIBDW_LIBRARY
+  NAMES dw
   HINTS
   $ENV{SIMGRID_LIBDW_LIBRARY_PATH}
   $ENV{LD_LIBRARY_PATH}
   $ENV{LIBDW_LIBRARY_PATH}
-  PATH_SUFFIXES include/ GnuWin32/include
+  PATH_SUFFIXES lib/ GnuWin32/lib
   PATHS
   /opt
   /opt/local
   /opt/csw
   /sw
   /usr)
+set(LIBDW_LIBRARIES "${LIBDW_LIBRARY}")
 
-message(STATUS "Looking for libdw.h")
-if(PATH_LIBDW_H)
-  message(STATUS "Looking for libdw.h - found")
-else()
-  message(STATUS "Looking for libdw.h - not found")
-endif()
-
-message(STATUS "Looking for libdw")
-if(PATH_LIBDW_LIB)
-  message(STATUS "Looking for libdw - found")
-else()
-  message(STATUS "Looking for libdw - not found")
-endif()
-
-if(PATH_LIBDW_LIB AND PATH_LIBDW_H)
-  string(REGEX REPLACE "/libdw.*[.]${LIB_EXE}$" "" PATH_LIBDW_LIB "${PATH_LIBDW_LIB}")
-  string(REGEX REPLACE "/libdw.h"               "" PATH_LIBDW_H   "${PATH_LIBDW_H}")
-
-  include_directories(${PATH_LIBDW_H})
-  link_directories(${PATH_LIBDW_LIB})
-else()
-  message(FATAL_ERROR "Please either install the libdw-dev package (or equivalent) or turn off the model-checking option of SimGrid.")
-endif()
-
-mark_as_advanced(PATH_LIBDW_H)
-mark_as_advanced(PATH_LIBDW_LIB)
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(
+  Libdw
+  DEFAULT_MSG
+  LIBDW_LIBRARIES
+  LIBDW_INCLUDE_DIR)
+mark_as_advanced(LIBDW_INCLUDE_DIR LIBDW_LIBRARIES)