Update LibIberty to new build system (#601)
[dyninst.git] / cmake / Modules / FindLibIberty.cmake
1 #========================================================================================
2 # FindLibIberty.cmake
3 #
4 # Find LibIberty include dirs and libraries
5 #
6 #               ----------------------------------------
7 #
8 # Use this module by invoking find_package with the form::
9 #
10 #  find_package(LibIberty
11 #    [REQUIRED]             # Fail with error if LibIberty is not found
12 #  )
13 #
14 # This module reads hints about search locations from variables::
15 #
16 #       LibIberty_ROOT_DIR              - Base directory the of LibIberty installation
17 #       LibIberty_LIBRARYDIR    - Hint directory that contains the LibIberty library files
18 #
19 # and saves search results persistently in CMake cache entries::
20 #
21 #       LibIberty_FOUND                 - True if headers and requested libraries were found
22 #   IBERTY_FOUND            - Alias for LibIberty_FOUND (backwards compatibility only)
23 #       LibIberty_LIBRARY_DIRS  - Link directories for LibIberty libraries
24 #       LibIberty_LIBRARIES     - LibIberty library files
25 #   IBERTY_LIBRARIES        - Alias for LibIberty_LIBRARIES (backwards compatibility only)
26 #
27 #========================================================================================
28
29 if(LibIberty_FOUND)
30   return()
31 endif()
32
33 # Keep the semantics of IBERTY_LIBRARIES for backward compatibility
34 # NB: If both are specified, LibIberty_LIBRARIES is ignored
35 if(NOT "${IBERTY_LIBRARIES}" STREQUAL "")
36   set(LibIberty_LIBRARIES ${IBERTY_LIBRARIES})
37 endif()
38
39 include(DyninstSystemPaths)
40
41 # Non-standard subdirectories to search
42 set(_path_suffixes libiberty iberty)
43
44 # iberty_pic is for Debian <= wheezy
45 find_library(LibIberty_LIBRARIES
46              NAMES iberty_pic iberty
47              HINTS ${LibIberty_ROOT_DIR}
48                    ${LibIberty_LIBRARYDIR}
49                    ${IBERTY_LIBRARIES}
50              PATHS ${DYNINST_SYSTEM_LIBRARY_PATHS}
51              PATH_SUFFIXES ${_path_suffixes})
52
53 include(FindPackageHandleStandardArgs)
54 find_package_handle_standard_args(LibIberty
55                                   FOUND_VAR
56                                   LibIberty_FOUND
57                                   REQUIRED_VARS
58                                   LibIberty_LIBRARIES)
59
60 # For backwards compatibility only
61 set(IBERTY_FOUND ${LibIberty_FOUND})
62
63 if(LibIberty_FOUND)
64   foreach(l in ${LibIberty_LIBRARIES})
65     get_filename_component(_dir ${l} DIRECTORY)
66     list(APPEND LibIberty_LIBRARY_DIRS ${_dir})
67   endforeach()
68   
69   # For backwards compatibility only
70   set(IBERTY_LIBRARIES ${LibIberty_LIBRARIES})
71 endif()