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.cmake357
1 files changed, 193 insertions, 164 deletions
diff --git a/cmake/modules/FindLibDvd.cmake b/cmake/modules/FindLibDvd.cmake
index 86af89c..5c72826 100644
--- a/cmake/modules/FindLibDvd.cmake
+++ b/cmake/modules/FindLibDvd.cmake
@@ -1,133 +1,146 @@
1if(NOT WIN32) 1if(KODI_DEPENDSBUILD)
2 if(KODI_DEPENDSBUILD) 2 set(_dvdlibs dvdread dvdnav)
3 set(_dvdlibs dvdread dvdnav) 3 set(_handlevars LIBDVD_INCLUDE_DIRS DVDREAD_LIBRARY DVDNAV_LIBRARY)
4 set(_handlevars LIBDVD_INCLUDE_DIRS DVDREAD_LIBRARY DVDNAV_LIBRARY) 4 if(ENABLE_DVDCSS)
5 if(ENABLE_DVDCSS) 5 list(APPEND _dvdlibs libdvdcss)
6 list(APPEND _dvdlibs libdvdcss) 6 list(APPEND _handlevars DVDCSS_LIBRARY)
7 list(APPEND _handlevars DVDCSS_LIBRARY) 7 endif()
8 endif()
9 8
10 if(PKG_CONFIG_FOUND) 9 if(PKG_CONFIG_FOUND)
11 pkg_check_modules(PC_DVD ${_dvdlibs} QUIET) 10 pkg_check_modules(PC_DVD ${_dvdlibs} QUIET)
12 endif() 11 endif()
13 12
14 find_path(LIBDVD_INCLUDE_DIRS dvdnav/dvdnav.h PATHS ${PC_DVD_INCLUDE_DIRS}) 13 find_path(LIBDVD_INCLUDE_DIRS dvdnav/dvdnav.h PATHS ${PC_DVD_INCLUDE_DIRS})
15 find_library(DVDREAD_LIBRARY NAMES dvdread libdvdread PATHS ${PC_DVD_dvdread_LIBDIR}) 14 find_library(DVDREAD_LIBRARY NAMES dvdread libdvdread PATHS ${PC_DVD_dvdread_LIBDIR})
16 find_library(DVDNAV_LIBRARY NAMES dvdnav libdvdnav PATHS ${PC_DVD_dvdnav_LIBDIR}) 15 find_library(DVDNAV_LIBRARY NAMES dvdnav libdvdnav PATHS ${PC_DVD_dvdnav_LIBDIR})
16 if(ENABLE_DVDCSS)
17 find_library(DVDCSS_LIBRARY NAMES dvdcss libdvdcss PATHS ${PC_DVD_libdvdcss_LIBDIR})
18 endif()
19
20 include(FindPackageHandleStandardArgs)
21 find_package_handle_standard_args(LibDvd REQUIRED_VARS ${_handlevars})
22 if(LIBDVD_FOUND)
23 add_library(dvdnav UNKNOWN IMPORTED)
24 set_target_properties(dvdnav PROPERTIES
25 FOLDER "External Projects"
26 IMPORTED_LOCATION "${DVDNAV_LIBRARY}")
27
28 add_library(dvdread UNKNOWN IMPORTED)
29 set_target_properties(dvdread PROPERTIES
30 FOLDER "External Projects"
31 IMPORTED_LOCATION "${DVDREAD_LIBRARY}")
32 add_library(dvdcss UNKNOWN IMPORTED)
33 set_target_properties(dvdcss PROPERTIES
34 FOLDER "External Projects"
35 IMPORTED_LOCATION "${DVDCSS_LIBRARY}")
36
37 set(_linklibs ${DVDREAD_LIBRARY})
17 if(ENABLE_DVDCSS) 38 if(ENABLE_DVDCSS)
18 find_library(DVDCSS_LIBRARY NAMES dvdcss libdvdcss PATHS ${PC_DVD_libdvdcss_LIBDIR}) 39 list(APPEND _linklibs ${DVDCSS_LIBRARY})
19 endif() 40 endif()
20 41 core_link_library(${DVDNAV_LIBRARY} system/players/VideoPlayer/libdvdnav dvdnav archives "${_linklibs}")
21 include(FindPackageHandleStandardArgs) 42 set(LIBDVD_LIBRARIES ${DVDNAV_LIBRARY})
22 find_package_handle_standard_args(LibDvd REQUIRED_VARS ${_handlevars}) 43 mark_as_advanced(LIBDVD_INCLUDE_DIRS LIBDVD_LIBRARIES)
23 if(LIBDVD_FOUND) 44 endif()
24 add_library(dvdnav UNKNOWN IMPORTED) 45else()
25 set_target_properties(dvdnav PROPERTIES 46 set(dvdlibs libdvdread libdvdnav)
26 FOLDER "External Projects" 47 if(ENABLE_DVDCSS)
27 IMPORTED_LOCATION "${DVDNAV_LIBRARY}") 48 list(APPEND dvdlibs libdvdcss)
28 49 endif()
29 add_library(dvdread UNKNOWN IMPORTED) 50 set(DEPENDS_TARGETS_DIR ${CMAKE_SOURCE_DIR}/tools/depends/target)
30 set_target_properties(dvdread PROPERTIES 51 foreach(dvdlib ${dvdlibs})
31 FOLDER "External Projects" 52 file(GLOB VERSION_FILE ${DEPENDS_TARGETS_DIR}/${dvdlib}/DVD*-VERSION)
32 IMPORTED_LOCATION "${DVDREAD_LIBRARY}") 53 file(STRINGS ${VERSION_FILE} VER)
33 add_library(dvdcss UNKNOWN IMPORTED) 54 string(REGEX MATCH "VERSION=[^ ]*$.*" ${dvdlib}_VER "${VER}")
34 set_target_properties(dvdcss PROPERTIES 55 list(GET ${dvdlib}_VER 0 ${dvdlib}_VER)
35 FOLDER "External Projects" 56 string(SUBSTRING "${${dvdlib}_VER}" 8 -1 ${dvdlib}_VER)
36 IMPORTED_LOCATION "${DVDCSS_LIBRARY}") 57 string(REGEX MATCH "BASE_URL=([^ ]*)" ${dvdlib}_BASE_URL "${VER}")
37 58 list(GET ${dvdlib}_BASE_URL 0 ${dvdlib}_BASE_URL)
38 set(_linklibs ${DVDREAD_LIBRARY}) 59 string(SUBSTRING "${${dvdlib}_BASE_URL}" 9 -1 ${dvdlib}_BASE_URL)
39 if(ENABLE_DVDCSS) 60 string(TOUPPER ${dvdlib} DVDLIB)
40 list(APPEND _linklibs ${DVDCSS_LIBRARY}) 61
41 endif() 62 # allow user to override the download URL with a local tarball
42 core_link_library(${DVDNAV_LIBRARY} system/players/VideoPlayer/libdvdnav dvdnav archives "${_linklibs}") 63 # needed for offline build envs
43 set(LIBDVD_LIBRARIES ${DVDNAV_LIBRARY}) 64 # allow upper and lowercase var name
44 mark_as_advanced(LIBDVD_INCLUDE_DIRS LIBDVD_LIBRARIES) 65 if(${dvdlib}_URL)
66 set(${DVDLIB}_URL ${${dvdlib}_URL})
45 endif() 67 endif()
46 else() 68 if(${DVDLIB}_URL)
47 set(dvdlibs libdvdread libdvdnav) 69 get_filename_component(${DVDLIB}_URL "${${DVDLIB}_URL}" ABSOLUTE)
48 if(ENABLE_DVDCSS) 70 else()
49 list(APPEND dvdlibs libdvdcss) 71 set(${DVDLIB}_URL ${${dvdlib}_BASE_URL}/archive/${${dvdlib}_VER}.tar.gz)
50 endif() 72 endif()
51 foreach(dvdlib ${dvdlibs}) 73 if(VERBOSE)
52 file(GLOB VERSION_FILE ${CMAKE_SOURCE_DIR}/tools/depends/target/${dvdlib}/DVD*-VERSION) 74 message(STATUS "${DVDLIB}_URL: ${${DVDLIB}_URL}")
53 file(STRINGS ${VERSION_FILE} VER)
54 string(REGEX MATCH "VERSION=[^ ]*$.*" ${dvdlib}_VER "${VER}")
55 list(GET ${dvdlib}_VER 0 ${dvdlib}_VER)
56 string(SUBSTRING "${${dvdlib}_VER}" 8 -1 ${dvdlib}_VER)
57 string(REGEX MATCH "BASE_URL=([^ ]*)" ${dvdlib}_BASE_URL "${VER}")
58 list(GET ${dvdlib}_BASE_URL 0 ${dvdlib}_BASE_URL)
59 string(SUBSTRING "${${dvdlib}_BASE_URL}" 9 -1 ${dvdlib}_BASE_URL)
60 string(TOUPPER ${dvdlib} DVDLIB)
61
62 # allow user to override the download URL with a local tarball
63 # needed for offline build envs
64 # allow upper and lowercase var name
65 if(${dvdlib}_URL)
66 set(${DVDLIB}_URL ${${dvdlib}_URL})
67 endif()
68 if(${DVDLIB}_URL)
69 get_filename_component(${DVDLIB}_URL "${${DVDLIB}_URL}" ABSOLUTE)
70 else()
71 set(${DVDLIB}_URL ${${dvdlib}_BASE_URL}/archive/${${dvdlib}_VER}.tar.gz)
72 endif()
73 if(VERBOSE)
74 message(STATUS "${DVDLIB}_URL: ${${DVDLIB}_URL}")
75 endif()
76 endforeach()
77
78 set(DVDREAD_CFLAGS "${DVDREAD_CFLAGS} -I${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/include")
79 if(CMAKE_CROSSCOMPILING)
80 set(EXTRA_FLAGS "CC=${CMAKE_C_COMPILER}")
81 endif() 75 endif()
76 endforeach()
82 77
83 if(APPLE) 78 set(DVDREAD_CFLAGS "${DVDREAD_CFLAGS} -I${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/include")
84 set(CMAKE_LD_FLAGS "-framework IOKit -framework CoreFoundation") 79 if(CMAKE_CROSSCOMPILING)
85 endif() 80 set(EXTRA_FLAGS "CC=${CMAKE_C_COMPILER}")
81 endif()
82
83 if(APPLE)
84 set(CMAKE_LD_FLAGS "-framework IOKit -framework CoreFoundation")
85 endif()
86 86
87 set(HOST_ARCH ${ARCH}) 87 set(HOST_ARCH ${ARCH})
88 if(CORE_SYSTEM_NAME STREQUAL android) 88 if(CORE_SYSTEM_NAME STREQUAL android)
89 if(ARCH STREQUAL arm) 89 if(ARCH STREQUAL arm)
90 set(HOST_ARCH arm-linux-androideabi) 90 set(HOST_ARCH arm-linux-androideabi)
91 elseif(ARCH STREQUAL aarch64) 91 elseif(ARCH STREQUAL aarch64)
92 set(HOST_ARCH aarch64-linux-android) 92 set(HOST_ARCH aarch64-linux-android)
93 elseif(ARCH STREQUAL i486-linux) 93 elseif(ARCH STREQUAL i486-linux)
94 set(HOST_ARCH i686-linux-android) 94 set(HOST_ARCH i686-linux-android)
95 endif()
96 endif() 95 endif()
96 elseif(CORE_SYSTEM_NAME STREQUAL windowsstore)
97 set(LIBDVD_ADDITIONAL_ARGS "-DCMAKE_SYSTEM_NAME=${CMAKE_SYSTEM_NAME}" "-DCMAKE_SYSTEM_VERSION=${CMAKE_SYSTEM_VERSION}")
98 endif()
97 99
98 if(ENABLE_DVDCSS) 100 if(ENABLE_DVDCSS)
101 if(NOT CORE_SYSTEM_NAME MATCHES windows)
99 set(DVDCSS_LIBRARY ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib/libdvdcss.a) 102 set(DVDCSS_LIBRARY ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib/libdvdcss.a)
100 ExternalProject_Add(dvdcss URL ${LIBDVDCSS_URL} 103 ExternalProject_Add(dvdcss URL ${LIBDVDCSS_URL}
101 DOWNLOAD_NAME libdvdcss-${libdvdcss_VER}.tar.gz 104 DOWNLOAD_NAME libdvdcss-${libdvdcss_VER}.tar.gz
102 DOWNLOAD_DIR ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/download 105 DOWNLOAD_DIR ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/download
103 PREFIX ${CORE_BUILD_DIR}/libdvd 106 PREFIX ${CORE_BUILD_DIR}/libdvd
104 CONFIGURE_COMMAND ac_cv_path_GIT= <SOURCE_DIR>/configure 107 CONFIGURE_COMMAND ac_cv_path_GIT= <SOURCE_DIR>/configure
105 --target=${HOST_ARCH} 108 --target=${HOST_ARCH}
106 --host=${HOST_ARCH} 109 --host=${HOST_ARCH}
107 --disable-doc 110 --disable-doc
108 --enable-static 111 --enable-static
109 --disable-shared 112 --disable-shared
110 --with-pic 113 --with-pic
111 --prefix=<INSTALL_DIR> 114 --prefix=<INSTALL_DIR>
112 --libdir=<INSTALL_DIR>/lib 115 --libdir=<INSTALL_DIR>/lib
113 "${EXTRA_FLAGS}" 116 "${EXTRA_FLAGS}"
114 "CFLAGS=${CMAKE_C_FLAGS} ${DVDREAD_CFLAGS}" 117 "CFLAGS=${CMAKE_C_FLAGS} ${DVDREAD_CFLAGS}"
115 "LDFLAGS=${CMAKE_LD_FLAGS}" 118 "LDFLAGS=${CMAKE_LD_FLAGS}"
116 BUILD_BYPRODUCTS ${DVDCSS_LIBRARY}) 119 BUILD_BYPRODUCTS ${DVDCSS_LIBRARY})
117 ExternalProject_Add_Step(dvdcss autoreconf 120 ExternalProject_Add_Step(dvdcss autoreconf
118 DEPENDEES download update patch 121 DEPENDEES download update patch
119 DEPENDERS configure 122 DEPENDERS configure
120 COMMAND PATH=${NATIVEPREFIX}/bin:$ENV{PATH} autoreconf -vif 123 COMMAND PATH=${NATIVEPREFIX}/bin:$ENV{PATH} autoreconf -vif
121 WORKING_DIRECTORY <SOURCE_DIR>) 124 WORKING_DIRECTORY <SOURCE_DIR>)
122 125 else()
123 set_target_properties(dvdcss PROPERTIES FOLDER "External Projects") 126 ExternalProject_Add(dvdcss
127 URL ${LIBDVDCSS_URL}
128 DOWNLOAD_DIR ${CMAKE_SOURCE_DIR}/project/BuildDependencies/downloads
129 DOWNLOAD_NAME libdvdcss-${libdvdcss_VER}.tar.gz
130 CMAKE_ARGS
131 ${LIBDVD_ADDITIONAL_ARGS}
132 -DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd
133 )
124 endif() 134 endif()
135 set_target_properties(dvdcss PROPERTIES FOLDER "External Projects")
136 endif()
125 137
126 set(DVDREAD_CFLAGS "-D_XBMC -I${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/include") 138 set(DVDREAD_CFLAGS "-D_XBMC -I${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/include")
127 if(ENABLE_DVDCSS) 139 if(ENABLE_DVDCSS)
128 set(DVDREAD_CFLAGS "${DVDREAD_CFLAGS} -DHAVE_DVDCSS_DVDCSS_H") 140 set(DVDREAD_CFLAGS "${DVDREAD_CFLAGS} -DHAVE_DVDCSS_DVDCSS_H")
129 endif() 141 endif()
130 142
143 if(NOT CORE_SYSTEM_NAME MATCHES windows)
131 set(DVDREAD_LIBRARY ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib/libdvdread.a) 144 set(DVDREAD_LIBRARY ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib/libdvdread.a)
132 ExternalProject_Add(dvdread URL ${LIBDVDREAD_URL} 145 ExternalProject_Add(dvdread URL ${LIBDVDREAD_URL}
133 DOWNLOAD_NAME libdvdread-${libdvdread_VER}.tar.gz 146 DOWNLOAD_NAME libdvdread-${libdvdread_VER}.tar.gz
@@ -146,74 +159,90 @@ if(NOT WIN32)
146 "LDFLAGS=${CMAKE_LD_FLAGS}" 159 "LDFLAGS=${CMAKE_LD_FLAGS}"
147 BUILD_BYPRODUCTS ${DVDREAD_LIBRARY}) 160 BUILD_BYPRODUCTS ${DVDREAD_LIBRARY})
148 ExternalProject_Add_Step(dvdread autoreconf 161 ExternalProject_Add_Step(dvdread autoreconf
149 DEPENDEES download update patch 162 DEPENDEES download update patch
150 DEPENDERS configure 163 DEPENDERS configure
151 COMMAND PATH=${NATIVEPREFIX}/bin:$ENV{PATH} autoreconf -vif 164 COMMAND PATH=${NATIVEPREFIX}/bin:$ENV{PATH} autoreconf -vif
152 WORKING_DIRECTORY <SOURCE_DIR>) 165 WORKING_DIRECTORY <SOURCE_DIR>)
153 if(ENABLE_DVDCSS) 166 else()
154 add_dependencies(dvdread dvdcss) 167 ExternalProject_Add(dvdread
155 endif() 168 URL ${LIBDVDREAD_URL}
169 DOWNLOAD_DIR ${CMAKE_SOURCE_DIR}/project/BuildDependencies/downloads
170 DOWNLOAD_NAME libdvdread-${libdvdread_VER}.tar.gz
171 CMAKE_ARGS
172 ${LIBDVD_ADDITIONAL_ARGS}
173 -DCMAKE_PREFIX_PATH:PATH=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd
174 -DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd
175 )
176 endif()
177 if(ENABLE_DVDCSS)
178 add_dependencies(dvdread dvdcss)
179 endif()
156 180
157 set_target_properties(dvdread PROPERTIES FOLDER "External Projects") 181 set_target_properties(dvdread PROPERTIES FOLDER "External Projects")
158 182
159 if(ENABLE_DVDCSS) 183 if(ENABLE_DVDCSS)
160 set(DVDNAV_LIBS -ldvdcss) 184 set(DVDNAV_LIBS -ldvdcss)
161 endif() 185 endif()
162 186
187 if(NOT CORE_SYSTEM_NAME MATCHES windows)
163 set(DVDNAV_LIBRARY ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib/libdvdnav.a) 188 set(DVDNAV_LIBRARY ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib/libdvdnav.a)
164 ExternalProject_Add(dvdnav URL ${LIBDVDNAV_URL} 189 ExternalProject_Add(dvdnav URL ${LIBDVDNAV_URL}
165 DOWNLOAD_NAME libdvdnav-${libdvdnav_VER}.tar.gz 190 DOWNLOAD_NAME libdvdnav-${libdvdnav_VER}.tar.gz
166 DOWNLOAD_DIR ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/download 191 DOWNLOAD_DIR ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/download
167 PREFIX ${CORE_BUILD_DIR}/libdvd 192 PREFIX ${CORE_BUILD_DIR}/libdvd
168 CONFIGURE_COMMAND ac_cv_path_GIT= <SOURCE_DIR>/configure 193 CONFIGURE_COMMAND ac_cv_path_GIT= <SOURCE_DIR>/configure
169 --target=${HOST_ARCH} 194 --target=${HOST_ARCH}
170 --host=${HOST_ARCH} 195 --host=${HOST_ARCH}
171 --enable-static 196 --enable-static
172 --disable-shared 197 --disable-shared
173 --with-pic 198 --with-pic
174 --prefix=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd 199 --prefix=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd
175 --libdir=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib 200 --libdir=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib
176 "${EXTRA_FLAGS}" 201 "${EXTRA_FLAGS}"
177 "LDFLAGS=${CMAKE_LD_FLAGS} -L${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib" 202 "LDFLAGS=${CMAKE_LD_FLAGS} -L${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib"
178 "CFLAGS=${CMAKE_C_FLAGS} ${DVDREAD_CFLAGS}" 203 "CFLAGS=${CMAKE_C_FLAGS} ${DVDREAD_CFLAGS}"
179 "DVDREAD_CFLAGS=${DVDREAD_CFLAGS}" 204 "DVDREAD_CFLAGS=${DVDREAD_CFLAGS}"
180 "DVDREAD_LIBS=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib/libdvdread.la" 205 "DVDREAD_LIBS=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib/libdvdread.la"
181 "LIBS=${DVDNAV_LIBS}" 206 "LIBS=${DVDNAV_LIBS}"
182 BUILD_BYPRODUCTS ${DVDNAV_LIBRARY}) 207 BUILD_BYPRODUCTS ${DVDNAV_LIBRARY})
183 ExternalProject_Add_Step(dvdnav autoreconf 208 ExternalProject_Add_Step(dvdnav autoreconf
184 DEPENDEES download update patch 209 DEPENDEES download update patch
185 DEPENDERS configure 210 DEPENDERS configure
186 COMMAND PATH=${NATIVEPREFIX}/bin:$ENV{PATH} autoreconf -vif 211 COMMAND PATH=${NATIVEPREFIX}/bin:$ENV{PATH} autoreconf -vif
187 WORKING_DIRECTORY <SOURCE_DIR>) 212 WORKING_DIRECTORY <SOURCE_DIR>)
188 add_dependencies(dvdnav dvdread) 213 else()
189 set_target_properties(dvdnav PROPERTIES FOLDER "External Projects") 214 set(DVDNAV_LIBRARY ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib/libdvdnav.lib)
215 ExternalProject_Add(dvdnav
216 URL ${LIBDVDNAV_URL}
217 DOWNLOAD_DIR ${CMAKE_SOURCE_DIR}/project/BuildDependencies/downloads
218 DOWNLOAD_NAME libdvdnav-${libdvdnav_VER}.tar.gz
219 CMAKE_ARGS
220 ${LIBDVD_ADDITIONAL_ARGS}
221 -DCMAKE_PREFIX_PATH:PATH=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd
222 -DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd
223 )
224 endif()
225 add_dependencies(dvdnav dvdread)
226 set_target_properties(dvdnav PROPERTIES FOLDER "External Projects")
190 227
191 set(_dvdlibs ${DVDREAD_LIBRARY} ${DVDCSS_LIBRARY}) 228 set(_dvdlibs ${DVDREAD_LIBRARY} ${DVDCSS_LIBRARY})
229 if(NOT CORE_SYSTEM_NAME MATCHES windows)
192 # link a shared dvdnav library that includes the whole archives of dvdread and dvdcss as well 230 # link a shared dvdnav library that includes the whole archives of dvdread and dvdcss as well
193 # the quotes around _dvdlibs are on purpose, since we want to pass a list to the function that will be unpacked automatically 231 # the quotes around _dvdlibs are on purpose, since we want to pass a list to the function that will be unpacked automatically
194 core_link_library(${DVDNAV_LIBRARY} system/players/VideoPlayer/libdvdnav dvdnav archives "${_dvdlibs}") 232 core_link_library(${DVDNAV_LIBRARY} system/players/VideoPlayer/libdvdnav dvdnav archives "${_dvdlibs}")
195 233 else()
196 set(LIBDVD_INCLUDE_DIRS ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/include) 234 set(LIBDVD_TARGET_DIR .)
197 set(LIBDVD_LIBRARIES ${DVDNAV_LIBRARY} ${DVDREAD_LIBRARY}) 235 if(CORE_SYSTEM_NAME STREQUAL windowsstore)
198 if(ENABLE_DVDCSS) 236 set(LIBDVD_TARGET_DIR dlls)
199 list(APPEND LIBDVD_LIBRARIES ${DVDCSS_LIBRARY})
200 endif()
201 set(LIBDVD_LIBRARIES ${LIBDVD_LIBRARIES} CACHE STRING "libdvd libraries" FORCE)
202 set(LIBDVD_FOUND 1 CACHE BOOL "libdvd found" FORCE)
203 endif() 237 endif()
204else() 238 copy_file_to_buildtree(${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/bin/libdvdnav.dll DIRECTORY ${LIBDVD_TARGET_DIR})
205 # Dynamically loaded on Windows
206 find_path(LIBDVD_INCLUDE_DIR dvdcss/dvdcss.h)
207
208 include(FindPackageHandleStandardArgs)
209 find_package_handle_standard_args(LibDvd REQUIRED_VARS LIBDVD_INCLUDE_DIR)
210
211 if(LIBDVD_FOUND)
212 set(LIBDVD_INCLUDE_DIRS ${LIBDVD_INCLUDE_DIR})
213
214 add_custom_target(dvdnav)
215 set_target_properties(dvdnav PROPERTIES FOLDER "External Projects")
216 endif() 239 endif()
217 240
218 mark_as_advanced(LIBDVD_INCLUDE_DIR) 241 set(LIBDVD_INCLUDE_DIRS ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/include)
219endif() 242 set(LIBDVD_LIBRARIES ${DVDNAV_LIBRARY} ${DVDREAD_LIBRARY})
243 if(ENABLE_DVDCSS)
244 list(APPEND LIBDVD_LIBRARIES ${DVDCSS_LIBRARY})
245 endif()
246 set(LIBDVD_LIBRARIES ${LIBDVD_LIBRARIES} CACHE STRING "libdvd libraries" FORCE)
247 set(LIBDVD_FOUND 1 CACHE BOOL "libdvd found" FORCE)
248endif() \ No newline at end of file