Merge pull request #25883 from CrystalP/fix-slowscan
[xbmc.git] / cmake / modules / FindCdio.cmake
blob5f8b33c8d14b006f59591d840ffc1de652d0856d
1 #.rst:
2 # FindCdio
3 # --------
4 # Finds the cdio library
6 # This will define the following target:
8 # ${APP_NAME_LC}::Cdio - The LibCap library
11 if(NOT TARGET ${APP_NAME_LC}::${CMAKE_FIND_PACKAGE_NAME})
12   find_package(PkgConfig)
14   if(PKG_CONFIG_FOUND)
15     pkg_check_modules(PC_CDIO libcdio>=0.80 QUIET)
16     pkg_check_modules(PC_CDIOPP libcdio++>=2.1.0 QUIET)
17   endif()
19   find_path(CDIO_INCLUDE_DIR NAMES cdio/cdio.h
20                              HINTS ${PC_CDIO_INCLUDEDIR})
22   find_library(CDIO_LIBRARY NAMES cdio libcdio
23                             HINTS ${PC_CDIO_LIBDIR})
25   if(DEFINED PC_CDIO_VERSION AND DEFINED PC_CDIOPP_VERSION AND NOT "${PC_CDIO_VERSION}" VERSION_EQUAL "${PC_CDIOPP_VERSION}")
26     message(WARNING "Detected libcdio (${PC_CDIO_VERSION}) and libcdio++ (${PC_CDIOPP_VERSION}) version mismatch. libcdio++ will not be used.")
27   else()
28     find_path(CDIOPP_INCLUDE_DIR NAMES cdio++/cdio.hpp
29                                  HINTS ${PC_CDIOPP_INCLUDEDIR} ${CDIO_INCLUDE_DIR})
31     set(CDIO_VERSION ${PC_CDIO_VERSION})
32   endif()
34   include(FindPackageHandleStandardArgs)
35   find_package_handle_standard_args(Cdio
36                                     REQUIRED_VARS CDIO_LIBRARY CDIO_INCLUDE_DIR
37                                     VERSION_VAR CDIO_VERSION)
39   if(CDIO_FOUND)
41     add_library(${APP_NAME_LC}::${CMAKE_FIND_PACKAGE_NAME} UNKNOWN IMPORTED)
42     set_target_properties(${APP_NAME_LC}::${CMAKE_FIND_PACKAGE_NAME} PROPERTIES
43                                                                      IMPORTED_LOCATION "${CDIO_LIBRARY}"
44                                                                      INTERFACE_INCLUDE_DIRECTORIES "${CDIO_INCLUDE_DIR}")
46     if(CDIOPP_INCLUDE_DIR)
47       add_library(${APP_NAME_LC}::CdioPP INTERFACE IMPORTED)
48       set_target_properties(${APP_NAME_LC}::CdioPP PROPERTIES
49                                                    INTERFACE_INCLUDE_DIRECTORIES "${CDIOPP_INCLUDE_DIR}")
50       set_property(TARGET ${APP_NAME_LC}::${CMAKE_FIND_PACKAGE_NAME} APPEND PROPERTY
51                                                                             INTERFACE_LINK_LIBRARIES "${APP_NAME_LC}::CdioPP")
52     endif()
53   else()
54     if(Cdio_FIND_REQUIRED)
55       message(FATAL_ERROR "cdio library not found.")
56     endif()
57   endif()
58 endif()