1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128
|
#.rst:
# FindLibDvdCSS
# ----------
# Finds the libdvdcss library
#
# This will define the following target:
#
# LibDvdCSS::LibDvdCSS - The LibDvdCSS library
if(ENABLE_DVDCSS)
include(cmake/scripts/common/ModuleHelpers.cmake)
set(MODULE_LC libdvdcss)
if(ENABLE_INTERNAL_LIBDVD)
# We require this due to the odd nature of github URL's compared to our other tarball
# mirror system. If User sets LIBDVDCSS_URL or libdvdcss_URL, allow get_filename_component in SETUP_BUILD_VARS
if(LIBDVDCSS_URL OR ${MODULE_LC}_URL)
set(LIBDVDCSS_URL_PROVIDED TRUE)
endif()
SETUP_BUILD_VARS()
if(NOT LIBDVDCSS_URL_PROVIDED)
# override LIBDVDCSS_URL_PROVIDED due to tar naming when retrieved from github release
set(LIBDVDCSS_URL ${LIBDVDCSS_BASE_URL}/archive/${LIBDVDCSS_VER}.tar.gz)
endif()
set(LIBDVDCSS_VERSION ${${MODULE}_VER})
set(HOST_ARCH ${ARCH})
if(CORE_SYSTEM_NAME STREQUAL android)
if(ARCH STREQUAL arm)
set(HOST_ARCH arm-linux-androideabi)
elseif(ARCH STREQUAL aarch64)
set(HOST_ARCH aarch64-linux-android)
elseif(ARCH STREQUAL i486-linux)
set(HOST_ARCH i686-linux-android)
elseif(ARCH STREQUAL x86_64)
set(HOST_ARCH x86_64-linux-android)
endif()
elseif(CORE_SYSTEM_NAME STREQUAL windowsstore)
set(LIBDVD_ADDITIONAL_ARGS "-DCMAKE_SYSTEM_NAME=${CMAKE_SYSTEM_NAME}" "-DCMAKE_SYSTEM_VERSION=${CMAKE_SYSTEM_VERSION}")
set(${MODULE}_CXX_FLAGS "/Zc:twoPhase-")
endif()
if(APPLE)
set(LIBDVDCSS_FLAGS " -framework CoreFoundation")
if(NOT CORE_SYSTEM_NAME STREQUAL darwin_embedded)
string(APPEND LIBDVDCSS_FLAGS " -framework IOKit")
endif()
endif()
if(CORE_SYSTEM_NAME MATCHES windows)
set(CMAKE_ARGS -DDUMMY_DEFINE=ON
${LIBDVD_ADDITIONAL_ARGS})
else()
find_program(AUTORECONF autoreconf REQUIRED)
if (CMAKE_HOST_SYSTEM_NAME MATCHES "(Free|Net|Open)BSD")
find_program(MAKE_EXECUTABLE gmake)
endif()
find_program(MAKE_EXECUTABLE make REQUIRED)
set(CONFIGURE_COMMAND ${AUTORECONF} -vif
COMMAND ac_cv_path_GIT= ./configure
--target=${HOST_ARCH}
--host=${HOST_ARCH}
--disable-doc
--enable-static
--disable-shared
--with-pic
--prefix=${DEPENDS_PATH}
--libdir=${DEPENDS_PATH}/lib
"CC=${CMAKE_C_COMPILER}"
"CFLAGS=${CMAKE_C_FLAGS}"
"LDFLAGS=${CMAKE_EXE_LINKER_FLAGS} ${LIBDVDCSS_FLAGS}")
set(BUILD_COMMAND ${MAKE_EXECUTABLE})
set(INSTALL_COMMAND ${MAKE_EXECUTABLE} install)
set(BUILD_IN_SOURCE 1)
endif()
BUILD_DEP_TARGET()
else()
if(PKG_CONFIG_FOUND)
pkg_check_modules(PC_DVDCSS libdvdcss QUIET)
endif()
find_path(LIBDVDCSS_INCLUDE_DIR NAMES dvdcss.h
PATH_SUFFIXES dvdcss
PATHS ${PC_DVDCSS_INCLUDEDIR})
find_library(LIBDVDCSS_LIBRARY NAMES dvdcss libdvdcss
PATHS ${PC_DVDCSS_LIBDIR})
set(LIBDVDCSS_VERSION ${PC_DVDCSS_VERSION})
endif()
endif()
include(SelectLibraryConfigurations)
select_library_configurations(LibDvdCSS)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(LibDvdCSS
REQUIRED_VARS LIBDVDCSS_LIBRARY LIBDVDCSS_INCLUDE_DIR
VERSION_VAR LIBDVDCSS_VERSION)
if(LIBDVDCSS_FOUND)
if(NOT TARGET LibDvdCSS::LibDvdCSS)
add_library(LibDvdCSS::LibDvdCSS UNKNOWN IMPORTED)
set_target_properties(LibDvdCSS::LibDvdCSS PROPERTIES
IMPORTED_LOCATION "${LIBDVDCSS_LIBRARY}"
INTERFACE_COMPILE_DEFINITIONS "HAVE_DVDCSS_DVDCSS_H"
INTERFACE_INCLUDE_DIRECTORIES "${LIBDVDCSS_INCLUDE_DIR}")
if(TARGET libdvdcss)
add_dependencies(LibDvdCSS::LibDvdCSS libdvdcss)
endif()
endif()
else()
if(LIBDVDCSS_FIND_REQUIRED)
message(FATAL_ERROR "Libdvdcss not found. Possibly remove ENABLE_DVDCSS.")
endif()
endif()
mark_as_advanced(LIBDVDCSS_INCLUDE_DIR LIBDVDCSS_LIBRARY)
|