From 5f8335c1e49ce108ef3481863833c98efa00411b Mon Sep 17 00:00:00 2001 From: manuel Date: Thu, 2 Jul 2020 23:09:26 +0200 Subject: sync with upstream --- cmake/modules/FindUdfread.cmake | 78 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 cmake/modules/FindUdfread.cmake (limited to 'cmake/modules/FindUdfread.cmake') 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 @@ +#.rst: +# FindUdfread +# -------- +# Finds the udfread library +# +# This will define the following variables:: +# +# UDFREAD_FOUND - system has udfread +# UDFREAD_INCLUDE_DIRS - the udfread include directory +# UDFREAD_LIBRARIES - the udfread libraries +# UDFREAD_DEFINITIONS - the udfread definitions + +if(PKG_CONFIG_FOUND) + pkg_check_modules(PC_UDFREAD udfread>=1.0.0 QUIET) +endif() + +find_path(UDFREAD_INCLUDE_DIR NAMES udfread/udfread.h + PATHS ${PC_UDFREAD_INCLUDEDIR}) + +find_library(UDFREAD_LIBRARY NAMES udfread libudfread + PATHS ${PC_UDFREAD_LIBDIR}) + +set(UDFREAD_VERSION ${PC_UDFREAD_VERSION}) + +if(ENABLE_INTERNAL_UDFREAD) + include(ExternalProject) + + # Extract version + file(STRINGS ${CMAKE_SOURCE_DIR}/tools/depends/target/libudfread/UDFREAD-VERSION VER) + + string(REGEX MATCH "VERSION=[^ ]*$.*" UDFREAD_VER "${VER}") + list(GET UDFREAD_VER 0 UDFREAD_VER) + string(SUBSTRING "${UDFREAD_VER}" 8 -1 UDFREAD_VER) + + # allow user to override the download URL with a local tarball + # needed for offline build envs + if(UDFREAD_URL) + get_filename_component(UDFREAD_URL "${UDFREAD_URL}" ABSOLUTE) + else() + set(UDFREAD_URL http://mirrors.kodi.tv/build-deps/sources/libudfread-${UDFREAD_VER}.tar.gz) + endif() + + if(VERBOSE) + message(STATUS "UDFREAD_URL: ${UDFREAD_URL}") + endif() + + set(UDFREAD_LIBRARY ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/lib/libudfread.a) + set(UDFREAD_INCLUDE_DIR ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/include) + set(UDFREAD_VERSION ${UDFREAD_VER}) + + externalproject_add(udfread + URL ${UDFREAD_URL} + DOWNLOAD_NAME libudfread-${UDFREAD_VER}.tar.gz + DOWNLOAD_DIR ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/download + PREFIX ${CORE_BUILD_DIR}/libudfread + CONFIGURE_COMMAND autoreconf -vif && + ./configure + --enable-static + --disable-shared + --prefix=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR} + BUILD_BYPRODUCTS ${UDFREAD_LIBRARY} + BUILD_IN_SOURCE 1) + + set_target_properties(udfread PROPERTIES FOLDER "External Projects") +endif() + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(Udfread + REQUIRED_VARS UDFREAD_LIBRARY UDFREAD_INCLUDE_DIR + VERSION_VAR UDFREAD_VERSION) + +if(UDFREAD_FOUND) + set(UDFREAD_LIBRARIES ${UDFREAD_LIBRARY}) + set(UDFREAD_INCLUDE_DIRS ${UDFREAD_INCLUDE_DIR}) + set(UDFREAD_DEFINITIONS -DHAS_UDFREAD=1) +endif() + +mark_as_advanced(UDFREAD_INCLUDE_DIR UDFREAD_LIBRARY) -- cgit v1.2.3