Merge pull request #25883 from CrystalP/fix-slowscan
[xbmc.git] / cmake / modules / FindIso9660pp.cmake
blobb8fcd420f18402f641d2d82dc08b40b0de56cbe7
1 #.rst:
2 # FindIso9660pp
3 # --------
4 # Finds the iso9660++ library
6 # This will define the following target:
8 #   ${APP_NAME_LC}::Iso9660pp - The Iso9660pp library
10 if(NOT TARGET ${APP_NAME_LC}::${CMAKE_FIND_PACKAGE_NAME})
11   find_package(Cdio)
13   if(Cdio_FOUND)
14     find_package(PkgConfig)
15     if(PKG_CONFIG_FOUND AND NOT (WIN32 OR WINDOWS_STORE))
16       if(Iso9660pp_FIND_VERSION)
17         if(Iso9660pp_FIND_VERSION_EXACT)
18           set(Iso9660pp_FIND_SPEC "=${Iso9660pp_FIND_VERSION_COMPLETE}")
19         else()
20           set(Iso9660pp_FIND_SPEC ">=${Iso9660pp_FIND_VERSION_COMPLETE}")
21         endif()
22       endif()
24       pkg_check_modules(PC_ISO9660PP libiso9660++${Iso9660pp_FIND_SPEC} QUIET)
25       pkg_check_modules(PC_ISO9660 libiso9660${Iso9660pp_FIND_SPEC} QUIET)
26     endif()
28     find_path(ISO9660PP_INCLUDE_DIR NAMES cdio++/iso9660.hpp
29                                     HINTS ${DEPENDS_PATH}/include ${PC_ISO9660PP_INCLUDEDIR}
30                                     ${${CORE_PLATFORM_LC}_SEARCH_CONFIG})
32     find_library(ISO9660PP_LIBRARY NAMES libiso9660++ iso9660++
33                                    HINTS ${DEPENDS_PATH}/lib ${PC_ISO9660PP_LIBDIR}
34                                    ${${CORE_PLATFORM_LC}_SEARCH_CONFIG})
36     find_path(ISO9660_INCLUDE_DIR NAMES cdio/iso9660.h
37                                   HINTS ${DEPENDS_PATH}/include ${PC_ISO9660_INCLUDEDIR}
38                                   ${${CORE_PLATFORM_LC}_SEARCH_CONFIG})
40     find_library(ISO9660_LIBRARY NAMES libiso9660 iso9660
41                                  HINTS ${DEPENDS_PATH}/lib ${PC_ISO9660_LIBDIR}
42                                  ${${CORE_PLATFORM_LC}_SEARCH_CONFIG})
44     set(ISO9660PP_VERSION ${PC_ISO9660PP_VERSION})
46     include(FindPackageHandleStandardArgs)
47     find_package_handle_standard_args(Iso9660pp
48                                       REQUIRED_VARS ISO9660PP_LIBRARY ISO9660PP_INCLUDE_DIR ISO9660_LIBRARY ISO9660_INCLUDE_DIR
49                                       VERSION_VAR ISO9660PP_VERSION)
51     if(ISO9660PP_FOUND)
52       add_library(${APP_NAME_LC}::Iso9660 UNKNOWN IMPORTED)
53       set_target_properties(${APP_NAME_LC}::Iso9660 PROPERTIES
54                                                     IMPORTED_LOCATION "${ISO9660_LIBRARY}"
55                                                     INTERFACE_INCLUDE_DIRECTORIES "${ISO9660_INCLUDE_DIR}")
57       add_library(${APP_NAME_LC}::${CMAKE_FIND_PACKAGE_NAME} UNKNOWN IMPORTED)
58       set_target_properties(${APP_NAME_LC}::${CMAKE_FIND_PACKAGE_NAME} PROPERTIES
59                                                                        IMPORTED_LOCATION "${ISO9660PP_LIBRARY}"
60                                                                        INTERFACE_INCLUDE_DIRECTORIES "${ISO9660PP_INCLUDE_DIR}"
61                                                                        INTERFACE_LINK_LIBRARIES "${APP_NAME_LC}::Iso9660;${APP_NAME_LC}::Cdio"
62                                                                        INTERFACE_COMPILE_DEFINITIONS HAS_ISO9660PP)
63     endif()
64   else()
65     include(FindPackageMessage)
66     find_package_message(Iso9660pp "Iso9660pp: Can not find libcdio (REQUIRED)" "")
67   endif()
68 endif()