diff options
Diffstat (limited to 'cmake/modules/FindLibDvd.cmake')
| -rw-r--r-- | cmake/modules/FindLibDvd.cmake | 357 |
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 @@ | |||
| 1 | if(NOT WIN32) | 1 | if(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) | 45 | else() |
| 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() |
| 204 | else() | 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) |
| 219 | endif() | 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) | ||
| 248 | endif() \ No newline at end of file | ||
