summaryrefslogtreecommitdiffstats
path: root/cmake/modules/FindLibDvd.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/modules/FindLibDvd.cmake')
-rw-r--r--cmake/modules/FindLibDvd.cmake32
1 files changed, 32 insertions, 0 deletions
diff --git a/cmake/modules/FindLibDvd.cmake b/cmake/modules/FindLibDvd.cmake
new file mode 100644
index 0000000..6853e84
--- /dev/null
+++ b/cmake/modules/FindLibDvd.cmake
@@ -0,0 +1,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)