diff options
Diffstat (limited to 'cmake/modules/FindUdfread.cmake')
| -rw-r--r-- | cmake/modules/FindUdfread.cmake | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/cmake/modules/FindUdfread.cmake b/cmake/modules/FindUdfread.cmake new file mode 100644 index 0000000..20fb322 --- /dev/null +++ b/cmake/modules/FindUdfread.cmake | |||
| @@ -0,0 +1,78 @@ | |||
| 1 | #.rst: | ||
| 2 | # FindUdfread | ||
| 3 | # -------- | ||
| 4 | # Finds the udfread library | ||
| 5 | # | ||
| 6 | # This will define the following variables:: | ||
| 7 | # | ||
| 8 | # UDFREAD_FOUND - system has udfread | ||
| 9 | # UDFREAD_INCLUDE_DIRS - the udfread include directory | ||
| 10 | # UDFREAD_LIBRARIES - the udfread libraries | ||
| 11 | # UDFREAD_DEFINITIONS - the udfread definitions | ||
| 12 | |||
| 13 | if(PKG_CONFIG_FOUND) | ||
| 14 | pkg_check_modules(PC_UDFREAD udfread>=1.0.0 QUIET) | ||
| 15 | endif() | ||
| 16 | |||
| 17 | find_path(UDFREAD_INCLUDE_DIR NAMES udfread/udfread.h | ||
| 18 | PATHS ${PC_UDFREAD_INCLUDEDIR}) | ||
| 19 | |||
| 20 | find_library(UDFREAD_LIBRARY NAMES udfread libudfread | ||
| 21 | PATHS ${PC_UDFREAD_LIBDIR}) | ||
| 22 | |||
| 23 | set(UDFREAD_VERSION ${PC_UDFREAD_VERSION}) | ||
| 24 | |||
| 25 | if(ENABLE_INTERNAL_UDFREAD) | ||
| 26 | include(ExternalProject) | ||
| 27 | |||
| 28 | # Extract version | ||
| 29 | file(STRINGS ${CMAKE_SOURCE_DIR}/tools/depends/target/libudfread/UDFREAD-VERSION VER) | ||
| 30 | |||
| 31 | string(REGEX MATCH "VERSION=[^ ]*$.*" UDFREAD_VER "${VER}") | ||
| 32 | list(GET UDFREAD_VER 0 UDFREAD_VER) | ||
| 33 | string(SUBSTRING "${UDFREAD_VER}" 8 -1 UDFREAD_VER) | ||
| 34 | |||
| 35 | # allow user to override the download URL with a local tarball | ||
| 36 | # needed for offline build envs | ||
| 37 | if(UDFREAD_URL) | ||
| 38 | get_filename_component(UDFREAD_URL "${UDFREAD_URL}" ABSOLUTE) | ||
| 39 | else() | ||
| 40 | set(UDFREAD_URL http://mirrors.kodi.tv/build-deps/sources/libudfread-${UDFREAD_VER}.tar.gz) | ||
| 41 | endif() | ||
| 42 | |||
| 43 | if(VERBOSE) | ||
| 44 | message(STATUS "UDFREAD_URL: ${UDFREAD_URL}") | ||
| 45 | endif() | ||
| 46 | |||
| 47 | set(UDFREAD_LIBRARY ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/lib/libudfread.a) | ||
| 48 | set(UDFREAD_INCLUDE_DIR ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/include) | ||
| 49 | set(UDFREAD_VERSION ${UDFREAD_VER}) | ||
| 50 | |||
| 51 | externalproject_add(udfread | ||
| 52 | URL ${UDFREAD_URL} | ||
| 53 | DOWNLOAD_NAME libudfread-${UDFREAD_VER}.tar.gz | ||
| 54 | DOWNLOAD_DIR ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/download | ||
| 55 | PREFIX ${CORE_BUILD_DIR}/libudfread | ||
| 56 | CONFIGURE_COMMAND autoreconf -vif && | ||
| 57 | ./configure | ||
| 58 | --enable-static | ||
| 59 | --disable-shared | ||
| 60 | --prefix=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR} | ||
| 61 | BUILD_BYPRODUCTS ${UDFREAD_LIBRARY} | ||
| 62 | BUILD_IN_SOURCE 1) | ||
| 63 | |||
| 64 | set_target_properties(udfread PROPERTIES FOLDER "External Projects") | ||
| 65 | endif() | ||
| 66 | |||
| 67 | include(FindPackageHandleStandardArgs) | ||
| 68 | find_package_handle_standard_args(Udfread | ||
| 69 | REQUIRED_VARS UDFREAD_LIBRARY UDFREAD_INCLUDE_DIR | ||
| 70 | VERSION_VAR UDFREAD_VERSION) | ||
| 71 | |||
| 72 | if(UDFREAD_FOUND) | ||
| 73 | set(UDFREAD_LIBRARIES ${UDFREAD_LIBRARY}) | ||
| 74 | set(UDFREAD_INCLUDE_DIRS ${UDFREAD_INCLUDE_DIR}) | ||
| 75 | set(UDFREAD_DEFINITIONS -DHAS_UDFREAD=1) | ||
| 76 | endif() | ||
| 77 | |||
| 78 | mark_as_advanced(UDFREAD_INCLUDE_DIR UDFREAD_LIBRARY) | ||
