summaryrefslogtreecommitdiffstats
path: root/project/cmake/modules/FindLibDvd.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'project/cmake/modules/FindLibDvd.cmake')
-rw-r--r--project/cmake/modules/FindLibDvd.cmake116
1 files changed, 116 insertions, 0 deletions
diff --git a/project/cmake/modules/FindLibDvd.cmake b/project/cmake/modules/FindLibDvd.cmake
new file mode 100644
index 0000000..f281773
--- /dev/null
+++ b/project/cmake/modules/FindLibDvd.cmake
@@ -0,0 +1,116 @@
1set(dvdlibs libdvdread libdvdnav)
2if(ENABLE_DVDCSS)
3 list(APPEND dvdlibs libdvdcss)
4endif()
5
6if(NOT WIN32)
7 foreach(dvdlib ${dvdlibs})
8 file(GLOB VERSION_FILE ${CORE_SOURCE_DIR}/tools/depends/target/${dvdlib}/DVD*-VERSION)
9 file(STRINGS ${VERSION_FILE} VER)
10 string(REGEX MATCH "VERSION=[^ ]*$.*" ${dvdlib}_VER "${VER}")
11 list(GET ${dvdlib}_VER 0 ${dvdlib}_VER)
12 string(SUBSTRING "${${dvdlib}_VER}" 8 -1 ${dvdlib}_VER)
13 string(REGEX MATCH "BASE_URL=([^ ]*)" ${dvdlib}_BASE_URL "${VER}")
14 list(GET ${dvdlib}_BASE_URL 0 ${dvdlib}_BASE_URL)
15 string(SUBSTRING "${${dvdlib}_BASE_URL}" 9 -1 ${dvdlib}_BASE_URL)
16 endforeach()
17
18 set(DVDREAD_CFLAGS "${DVDREAD_CFLAGS} -I${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/include")
19 if(CMAKE_CROSSCOMPILING)
20 set(EXTRA_FLAGS "CC=${CMAKE_C_COMPILER}")
21 endif()
22
23 if(APPLE)
24 set(CMAKE_LD_FLAGS "-framework IOKit -framework CoreFoundation")
25 endif()
26
27 if(ENABLE_DVDCSS)
28 ExternalProject_ADD(dvdcss URL ${libdvdcss_BASE_URL}/archive/${libdvdcss_VER}.tar.gz
29 PREFIX ${CORE_BUILD_DIR}/libdvd
30 UPDATE_COMMAND PATH=${NATIVEPREFIX}/bin:$ENV{PATH} autoreconf -vif
31 CONFIGURE_COMMAND ac_cv_path_GIT= <SOURCE_DIR>/configure
32 --target=${ARCH}
33 --host=${ARCH}
34 --disable-doc
35 --enable-static
36 --disable-shared
37 --with-pic
38 --prefix=<INSTALL_DIR>
39 "${EXTRA_FLAGS}"
40 "CFLAGS=${CMAKE_C_FLAGS} ${DVDREAD_CFLAGS}"
41 "LDFLAGS=${CMAKE_LD_FLAGS}")
42
43 core_link_library(${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib/libdvdcss.a
44 system/players/VideoPlayer/libdvdcss dvdcss)
45 endif()
46
47 set(DVDREAD_CFLAGS "-D_XBMC")
48 if(ENABLE_DVDCSS)
49 set(DVDREAD_CFLAGS "${DVDREAD_CFLAGS} -DHAVE_DVDCSS_DVDCSS_H -I${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/include")
50 endif(ENABLE_DVDCSS)
51
52 ExternalProject_ADD(dvdread URL ${libdvdread_BASE_URL}/archive/${libdvdread_VER}.tar.gz
53 PREFIX ${CORE_BUILD_DIR}/libdvd
54 UPDATE_COMMAND PATH=${NATIVEPREFIX}/bin:$ENV{PATH} autoreconf -vif
55 CONFIGURE_COMMAND ac_cv_path_GIT= <SOURCE_DIR>/configure
56 --target=${ARCH}
57 --host=${ARCH}
58 --enable-static
59 --disable-shared
60 --with-pic
61 --prefix=<INSTALL_DIR>
62 "${EXTRA_FLAGS}"
63 "CFLAGS=${CMAKE_C_FLAGS} ${DVDREAD_CFLAGS}"
64 "LDFLAGS=${CMAKE_LD_FLAGS}")
65 if(ENABLE_DVDCSS)
66 add_dependencies(dvdread dvdcss)
67 endif()
68
69 core_link_library(${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib/libdvdread.a
70 system/players/VideoPlayer/libdvdread dvdread)
71
72 if(ENABLE_DVDCSS)
73 set(DVDNAV_LIBS -ldvdcss)
74 endif(ENABLE_DVDCSS)
75
76 ExternalProject_ADD(dvdnav URL ${libdvdnav_BASE_URL}/archive/${libdvdnav_VER}.tar.gz
77 PREFIX ${CORE_BUILD_DIR}/libdvd
78 UPDATE_COMMAND PATH=${NATIVEPREFIX}/bin:$ENV{PATH} autoreconf -vif
79 CONFIGURE_COMMAND ac_cv_path_GIT= <SOURCE_DIR>/configure
80 --target=${ARCH}
81 --host=${ARCH}
82 --enable-static
83 --disable-shared
84 --with-pic
85 --prefix=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd
86 "${EXTRA_FLAGS}"
87 "LDFLAGS=${CMAKE_LD_FLAGS} -L${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib"
88 "CFLAGS=${CMAKE_C_FLAGS} ${DVDREAD_CFLAGS}"
89 "DVDREAD_CFLAGS=${DVDREAD_CFLAGS}"
90 "DVDREAD_LIBS=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib/libdvdread.la"
91 "LIBS=${DVDNAV_LIBS}")
92 add_dependencies(dvdnav dvdread)
93 core_link_library(${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib/libdvdnav.a
94 system/players/VideoPlayer/libdvdnav dvdnav)
95
96 set(LIBDVD_INCLUDE_DIRS ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/include)
97 set(LIBDVD_LIBRARIES ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib/libdvdnav.a
98 ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib/libdvdread.a)
99 if(ENABLE_DVDCSS)
100 list(APPEND LIBDVD_LIBRARIES ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib/libdvdcss.a)
101 endif()
102 set(LIBDVD_LIBRARIES ${LIBDVD_LIBRARIES} CACHE STRING "libdvd libraries" FORCE)
103 set(LIBDVD_FOUND 1 CACHE BOOL "libdvd found" FORCE)
104else()
105 # Dynamically loaded on Windows
106 find_path(LIBDVD_INCLUDE_DIR dvdcss/dvdcss.h PATHS ${CORE_SOURCE_DIR}/lib/libdvd/include)
107
108 include(FindPackageHandleStandardArgs)
109 find_package_handle_standard_args(LIBDVD REQUIRED_VARS LIBDVD_INCLUDE_DIR)
110
111 if(LIBDVD_FOUND)
112 set(LIBDVD_INCLUDE_DIRS ${LIBDVD_INCLUDE_DIR})
113 endif()
114
115 mark_as_advanced(LIBDVD_INCLUDE_DIR)
116endif()