diff options
Diffstat (limited to 'project/cmake/modules/FindLibDvd.cmake')
| -rw-r--r-- | project/cmake/modules/FindLibDvd.cmake | 116 |
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 @@ | |||
| 1 | set(dvdlibs libdvdread libdvdnav) | ||
| 2 | if(ENABLE_DVDCSS) | ||
| 3 | list(APPEND dvdlibs libdvdcss) | ||
| 4 | endif() | ||
| 5 | |||
| 6 | if(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) | ||
| 104 | else() | ||
| 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) | ||
| 116 | endif() | ||
