summaryrefslogtreecommitdiffstats
path: root/cmake/modules/FindUdfread.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/modules/FindUdfread.cmake')
-rw-r--r--cmake/modules/FindUdfread.cmake78
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
13if(PKG_CONFIG_FOUND)
14 pkg_check_modules(PC_UDFREAD udfread>=1.0.0 QUIET)
15endif()
16
17find_path(UDFREAD_INCLUDE_DIR NAMES udfread/udfread.h
18 PATHS ${PC_UDFREAD_INCLUDEDIR})
19
20find_library(UDFREAD_LIBRARY NAMES udfread libudfread
21 PATHS ${PC_UDFREAD_LIBDIR})
22
23set(UDFREAD_VERSION ${PC_UDFREAD_VERSION})
24
25if(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")
65endif()
66
67include(FindPackageHandleStandardArgs)
68find_package_handle_standard_args(Udfread
69 REQUIRED_VARS UDFREAD_LIBRARY UDFREAD_INCLUDE_DIR
70 VERSION_VAR UDFREAD_VERSION)
71
72if(UDFREAD_FOUND)
73 set(UDFREAD_LIBRARIES ${UDFREAD_LIBRARY})
74 set(UDFREAD_INCLUDE_DIRS ${UDFREAD_INCLUDE_DIR})
75 set(UDFREAD_DEFINITIONS -DHAS_UDFREAD=1)
76endif()
77
78mark_as_advanced(UDFREAD_INCLUDE_DIR UDFREAD_LIBRARY)