4 # Finds the libdvdcss library
6 # This will define the following target:
8 # LibDvdCSS::LibDvdCSS - The LibDvdCSS library
10 if(NOT TARGET LibDvdCSS::LibDvdCSS)
11 include(cmake/scripts/common/ModuleHelpers.cmake)
13 set(MODULE_LC libdvdcss)
15 # We require this due to the odd nature of github URL's compared to our other tarball
16 # mirror system. If User sets LIBDVDCSS_URL or libdvdcss_URL, allow get_filename_component in SETUP_BUILD_VARS
17 if(LIBDVDCSS_URL OR ${MODULE_LC}_URL)
19 set(LIBDVDCSS_URL ${${MODULE_LC}_URL})
21 set(LIBDVDCSS_URL_PROVIDED TRUE)
26 if(NOT LIBDVDCSS_URL_PROVIDED)
27 # override LIBDVDCSS_URL_PROVIDED due to tar naming when retrieved from github release
28 set(LIBDVDCSS_URL ${LIBDVDCSS_BASE_URL}/archive/${LIBDVDCSS_VER}.tar.gz)
31 set(LIBDVDCSS_VERSION ${${MODULE}_VER})
33 set(HOST_ARCH ${ARCH})
34 if(CORE_SYSTEM_NAME STREQUAL android)
36 set(HOST_ARCH arm-linux-androideabi)
37 elseif(ARCH STREQUAL i486-linux)
38 set(HOST_ARCH i686-linux-android)
40 set(HOST_ARCH ${ARCH}-linux-android)
42 elseif(CORE_SYSTEM_NAME STREQUAL windowsstore)
43 set(LIBDVD_ADDITIONAL_ARGS "-DCMAKE_SYSTEM_NAME=${CMAKE_SYSTEM_NAME}" "-DCMAKE_SYSTEM_VERSION=${CMAKE_SYSTEM_VERSION}")
44 set(${MODULE}_CXX_FLAGS "/Zc:twoPhase-")
48 set(LIBDVDCSS_FLAGS " -framework CoreFoundation")
49 if(NOT CORE_SYSTEM_NAME STREQUAL darwin_embedded)
50 string(APPEND LIBDVDCSS_FLAGS " -framework IOKit")
54 if(CORE_SYSTEM_NAME MATCHES windows)
55 set(CMAKE_ARGS -DDUMMY_DEFINE=ON
56 ${LIBDVD_ADDITIONAL_ARGS})
58 find_program(AUTORECONF autoreconf REQUIRED)
59 if (CMAKE_HOST_SYSTEM_NAME MATCHES "(Free|Net|Open)BSD")
60 find_program(MAKE_EXECUTABLE gmake)
62 find_program(MAKE_EXECUTABLE make REQUIRED)
64 set(CONFIGURE_COMMAND ${AUTORECONF} -vif
65 COMMAND ac_cv_path_GIT= ./configure
72 --prefix=${DEPENDS_PATH}
73 --libdir=${DEPENDS_PATH}/lib
74 "CC=${CMAKE_C_COMPILER}"
75 "CFLAGS=${CMAKE_C_FLAGS}"
76 "LDFLAGS=${CMAKE_EXE_LINKER_FLAGS} ${LIBDVDCSS_FLAGS}")
77 set(BUILD_COMMAND ${MAKE_EXECUTABLE})
78 set(INSTALL_COMMAND ${MAKE_EXECUTABLE} install)
79 set(BUILD_IN_SOURCE 1)
84 include(FindPackageHandleStandardArgs)
85 find_package_handle_standard_args(LibDvdCSS
86 REQUIRED_VARS LIBDVDCSS_LIBRARY LIBDVDCSS_INCLUDE_DIR
87 VERSION_VAR LIBDVDCSS_VERSION)
90 add_library(LibDvdCSS::LibDvdCSS STATIC IMPORTED)
91 set_target_properties(LibDvdCSS::LibDvdCSS PROPERTIES
92 IMPORTED_LOCATION "${LIBDVDCSS_LIBRARY}"
93 INTERFACE_COMPILE_DEFINITIONS "HAVE_DVDCSS_DVDCSS_H"
94 INTERFACE_INCLUDE_DIRECTORIES "${LIBDVDCSS_INCLUDE_DIR}")
95 add_dependencies(LibDvdCSS::LibDvdCSS libdvdcss)
97 if(LibDvdCSS_FIND_REQUIRED)
98 message(FATAL_ERROR "Libdvdcss not found. Possibly remove ENABLE_DVDCSS.")