summaryrefslogtreecommitdiffstats
path: root/cmake/modules/FindLibDvd.cmake
blob: 6853e8461895907c71c67e26aa580e075099d262 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# Check for existing LIBDVDREAD.
# Suppress mismatch warning, see https://cmake.org/cmake/help/latest/module/FindPackageHandleStandardArgs.html
set(FPHSA_NAME_MISMATCHED 1)
find_package(LibDvdNav MODULE REQUIRED)
unset(FPHSA_NAME_MISMATCHED)

set(_dvdlibs ${LIBDVDREAD_LIBRARY} ${LIBDVDCSS_LIBRARY})

if(NOT CORE_SYSTEM_NAME MATCHES windows)
  # link a shared dvdnav library that includes the whole archives of dvdread and dvdcss as well
  # the quotes around _dvdlibs are on purpose, since we want to pass a list to the function that will be unpacked automatically
  core_link_library(${LIBDVDNAV_LIBRARY} system/players/VideoPlayer/libdvdnav libdvdnav archives "${_dvdlibs}")
else()
  set(LIBDVD_TARGET_DIR .)
  if(CORE_SYSTEM_NAME STREQUAL windowsstore)
    set(LIBDVD_TARGET_DIR dlls)
  endif()
  copy_file_to_buildtree(${DEPENDS_PATH}/bin/libdvdnav.dll DIRECTORY ${LIBDVD_TARGET_DIR})
  add_dependencies(export-files LibDvdNav::LibDvdNav)
endif()

set(LIBDVD_INCLUDE_DIRS ${LIBDVDREAD_INCLUDE_DIR} ${LIBDVDNAV_INCLUDE_DIR})
set(LIBDVD_LIBRARIES ${LIBDVDNAV_LIBRARY} ${LIBDVDREAD_LIBRARY})
if(TARGET LibDvdCSS::LibDvdCSS)
  list(APPEND LIBDVD_LIBRARIES ${LIBDVDCSS_LIBRARY})
  list(APPEND LIBDVD_INCLUDE_DIRS ${LIBDVDCSS_INCLUDE_DIR})
endif()
set(LIBDVD_LIBRARIES ${LIBDVD_LIBRARIES} CACHE STRING "libdvd libraries" FORCE)
set(LIBDVD_FOUND 1 CACHE BOOL "libdvd found" FORCE)

mark_as_advanced(LIBDVD_INCLUDE_DIRS LIBDVD_LIBRARIES)