show() for PostConditions
[hiphop-php.git] / CMake / FindLibDwarf.cmake
blobb0e983aa8c6d440307e6f6cb8c0b6ed617d45987
1 # - Try to find libdwarf
2 # Once done this will define
4 #  LIBDWARF_FOUND - system has libdwarf
5 #  LIBDWARF_INCLUDE_DIRS - the libdwarf include directory
6 #  LIBDWARF_LIBRARIES - Link these to use libdwarf
7 #  LIBDWARF_DEFINITIONS - Compiler switches required for using libdwarf
10 # Locate libelf library at first
11 if (NOT LIBELF_FOUND)
12    find_package (LibElf REQUIRED)
13 endif (NOT LIBELF_FOUND)
15 if (LIBDWARF_LIBRARIES AND LIBDWARF_INCLUDE_DIRS)
16   set (LibDwarf_FIND_QUIETLY TRUE)
17 endif (LIBDWARF_LIBRARIES AND LIBDWARF_INCLUDE_DIRS)
19 find_path (DWARF_INCLUDE_DIR
20   NAMES
21     libdwarf.h dwarf.h
22   PATHS
23     /usr/include
24     /usr/include/libdwarf
25     /usr/local/include
26     /opt/local/include
27     /sw/include
28     ENV CPATH) # PATH and INCLUDE will also work
30 if (DWARF_INCLUDE_DIR)
31   set (LIBDWARF_INCLUDE_DIRS  ${DWARF_INCLUDE_DIR})
32 endif ()
34 find_library (LIBDWARF_LIBRARIES
35   NAMES
36     dwarf
37   PATHS
38     /usr/lib
39     /usr/local/lib
40     /opt/local/lib
41     /sw/lib
42     ENV LIBRARY_PATH   # PATH and LIB will also work
43     ENV LD_LIBRARY_PATH)
44 include (FindPackageHandleStandardArgs)
47 # handle the QUIETLY and REQUIRED arguments and set LIBDWARF_FOUND to TRUE
48 # if all listed variables are TRUE
49 FIND_PACKAGE_HANDLE_STANDARD_ARGS(LibDwarf DEFAULT_MSG
50   LIBDWARF_LIBRARIES
51   LIBDWARF_INCLUDE_DIRS)
53 if (LIBDWARF_LIBRARIES AND LIBDWARF_INCLUDE_DIRS)
54   set(CMAKE_REQUIRED_INCLUDES ${LIBDWARF_INCLUDE_DIRS})
55   set(CMAKE_REQUIRED_LIBRARIES ${LIBDWARF_LIBRARIES})
56   include(CheckSymbolExists)
57   CHECK_SYMBOL_EXISTS(dwarf_encode_leb128 "libdwarf.h" LIBDWARF_HAVE_ENCODE_LEB128)
58 endif()
60 mark_as_advanced(LIBDW_INCLUDE_DIR DWARF_INCLUDE_DIR)
61 mark_as_advanced(LIBDWARF_INCLUDE_DIRS LIBDWARF_LIBRARIES)
62 mark_as_advanced(LIBDWARF_HAVE_ENCODE_LEB128)