From 1e5bdca69f7676b2dbcd64f0f44f31b12b337b7c Mon Sep 17 00:00:00 2001 From: manuel Date: Tue, 13 Dec 2016 13:45:04 +0100 Subject: sync with upstream --- project/cmake/modules/FindBluetooth.cmake | 6 +- project/cmake/modules/FindCAP.cmake | 44 +++++ project/cmake/modules/FindCpluff.cmake | 8 + project/cmake/modules/FindCrossGUID.cmake | 5 + project/cmake/modules/FindFFMPEG.cmake | 258 ++++++++++++++++++++++---- project/cmake/modules/FindFribidi.cmake | 6 +- project/cmake/modules/FindMir.cmake | 33 ++++ project/cmake/modules/FindTexturePacker.cmake | 22 ++- project/cmake/modules/FindVAAPI.cmake | 15 +- project/cmake/modules/FindXSLT.cmake | 2 +- 10 files changed, 348 insertions(+), 51 deletions(-) create mode 100644 project/cmake/modules/FindCAP.cmake create mode 100644 project/cmake/modules/FindMir.cmake (limited to 'project/cmake/modules') diff --git a/project/cmake/modules/FindBluetooth.cmake b/project/cmake/modules/FindBluetooth.cmake index 538e89c..a69980d 100644 --- a/project/cmake/modules/FindBluetooth.cmake +++ b/project/cmake/modules/FindBluetooth.cmake @@ -14,12 +14,12 @@ # Bluetooth::Bluetooth - The Bluetooth library if(PKG_CONFIG_FOUND) - pkg_check_modules(PC_BLUETOOTH bluetooth QUIET) + pkg_check_modules(PC_BLUETOOTH bluez bluetooth QUIET) endif() find_path(BLUETOOTH_INCLUDE_DIR NAMES bluetooth/bluetooth.h PATHS ${PC_BLUETOOTH_INCLUDEDIR}) -find_library(BLUETOOTH_LIBRARY NAMES bluetooth +find_library(BLUETOOTH_LIBRARY NAMES bluetooth libbluetooth PATHS ${PC_BLUETOOTH_LIBDIR}) set(BLUETOOTH_VERSION ${PC_BLUETOOTH_VERSION}) @@ -27,7 +27,7 @@ set(BLUETOOTH_VERSION ${PC_BLUETOOTH_VERSION}) include(FindPackageHandleStandardArgs) find_package_handle_standard_args(Bluetooth REQUIRED_VARS BLUETOOTH_LIBRARY BLUETOOTH_INCLUDE_DIR - VERSION_VAR ${BLUETOOTH_VERSION}) + VERSION_VAR BLUETOOTH_VERSION) if(BLUETOOTH_FOUND) set(BLUETOOTH_INCLUDE_DIRS ${BLUETOOTH_INCLUDE_DIR}) diff --git a/project/cmake/modules/FindCAP.cmake b/project/cmake/modules/FindCAP.cmake new file mode 100644 index 0000000..04e8378 --- /dev/null +++ b/project/cmake/modules/FindCAP.cmake @@ -0,0 +1,44 @@ +#.rst: +# FindCAP +# ----------- +# Finds the POSIX 1003.1e capabilities library +# +# This will define the following variables:: +# +# CAP_FOUND - system has LibCap +# CAP_INCLUDE_DIRS - the LibCap include directory +# CAP_LIBRARIES - the LibCap libraries +# +# and the following imported targets:: +# +# CAP::CAP - The LibCap library + +if(PKG_CONFIG_FOUND) + pkg_check_modules(PC_CAP libcap QUIET) +endif() + +find_path(CAP_INCLUDE_DIR NAMES sys/capability.h + PATHS ${PC_CAP_INCLUDEDIR}) +find_library(CAP_LIBRARY NAMES cap libcap + PATHS ${PC_CAP_LIBDIR}) + +set(CAP_VERSION ${PC_CAP_VERSION}) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(CAP + REQUIRED_VARS CAP_LIBRARY CAP_INCLUDE_DIR + VERSION_VAR CAP_VERSION) + +if(CAP_FOUND) + set(CAP_LIBRARIES ${CAP_LIBRARY}) + set(CAP_INCLUDE_DIRS ${CAP_INCLUDE_DIR}) + + if(NOT TARGET CAP::CAP) + add_library(CAP::CAP UNKNOWN IMPORTED) + set_target_properties(CAP::CAP PROPERTIES + IMPORTED_LOCATION "${CAP_LIBRARY}" + INTERFACE_INCLUDE_DIRECTORIES "${CAP_INCLUDE_DIR}") + endif() +endif() + +mark_as_advanced(CAP_INCLUDE_DIR CAP_LIBRARY) diff --git a/project/cmake/modules/FindCpluff.cmake b/project/cmake/modules/FindCpluff.cmake index fb2bb25..ce6c127 100644 --- a/project/cmake/modules/FindCpluff.cmake +++ b/project/cmake/modules/FindCpluff.cmake @@ -10,6 +10,13 @@ if(NOT WIN32) string(REPLACE ";" " " defines "${CMAKE_C_FLAGS} ${SYSTEM_DEFINES} -I${EXPAT_INCLUDE_DIR}") get_filename_component(expat_dir ${EXPAT_LIBRARY} DIRECTORY) set(ldflags "-L${expat_dir}") + + # iOS: Without specifying -arch, configure tries to use /bin/cpp as C-preprocessor + # http://stackoverflow.com/questions/38836754/cant-cross-compile-c-library-for-arm-ios + if(CORE_SYSTEM_NAME STREQUAL ios) + set(cppflags "-arch ${CPU}") + endif() + ExternalProject_Add(libcpluff SOURCE_DIR ${CORE_SOURCE_DIR}/lib/cpluff BUILD_IN_SOURCE 1 PREFIX ${CORE_BUILD_DIR}/cpluff @@ -22,6 +29,7 @@ if(NOT WIN32) --libdir=/lib --host=${ARCH} CFLAGS=${defines} + CPPFLAGS=${cppflags} LDFLAGS=${ldflags}) ExternalProject_Add_Step(libcpluff autoreconf DEPENDEES download update patch diff --git a/project/cmake/modules/FindCrossGUID.cmake b/project/cmake/modules/FindCrossGUID.cmake index bcae3d3..ba2823a 100644 --- a/project/cmake/modules/FindCrossGUID.cmake +++ b/project/cmake/modules/FindCrossGUID.cmake @@ -16,6 +16,10 @@ if(ENABLE_INTERNAL_CROSSGUID) message(STATUS "CROSSGUID_URL: ${CROSSGUID_URL}") endif() + if(APPLE) + set(EXTRA_ARGS "-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES}") + endif() + set(CROSSGUID_LIBRARY ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/lib/libcrossguid.a) set(CROSSGUID_INCLUDE_DIR ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/include) externalproject_add(crossguid @@ -24,6 +28,7 @@ if(ENABLE_INTERNAL_CROSSGUID) PREFIX ${CORE_BUILD_DIR}/crossguid CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR} -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} + "${EXTRA_ARGS}" PATCH_COMMAND ${CMAKE_COMMAND} -E copy ${CORE_SOURCE_DIR}/tools/depends/target/crossguid/CMakeLists.txt && diff --git a/project/cmake/modules/FindFFMPEG.cmake b/project/cmake/modules/FindFFMPEG.cmake index a9f88fb..2b3f47b 100644 --- a/project/cmake/modules/FindFFMPEG.cmake +++ b/project/cmake/modules/FindFFMPEG.cmake @@ -1,18 +1,224 @@ -include(ExternalProject) -file(STRINGS ${CORE_SOURCE_DIR}/tools/depends/target/ffmpeg/FFMPEG-VERSION VER) -string(REGEX MATCH "VERSION=[^ ]*$.*" FFMPEG_VER "${VER}") -list(GET FFMPEG_VER 0 FFMPEG_VER) -string(SUBSTRING "${FFMPEG_VER}" 8 -1 FFMPEG_VER) -string(REGEX MATCH "BASE_URL=([^ ]*)" FFMPEG_BASE_URL "${VER}") -list(GET FFMPEG_BASE_URL 0 FFMPEG_BASE_URL) -string(SUBSTRING "${FFMPEG_BASE_URL}" 9 -1 FFMPEG_BASE_URL) +# FindFFMPEG +# -------- +# Finds FFmpeg libraries +# +# This module will first look for the required library versions on the system. +# If they are not found, it will fall back to downloading and building kodi's own version +# +# -------- +# the following variables influence behaviour: +# ENABLE_INTERNAL_FFMPEG - if enabled, kodi's own version will always be built +# +# FFMPEG_PATH - use external ffmpeg not found in system paths +# usage: -DFFMPEG_PATH=/path/to/ffmpeg_install_prefix +# +# WITH_FFMPEG - use external ffmpeg not found in system paths +# WARNING: this option is for developers as it will _disable ffmpeg version checks_! +# Consider using FFMPEG_PATH instead, which _does_ check library versions +# usage: -DWITH_FFMPEG=/path/to/ffmpeg_install_prefix +# +# -------- +# This module will will define the following variables: +# +# FFMPEG_FOUND - system has FFmpeg +# FFMPEG_INCLUDE_DIRS - FFmpeg include directory +# FFMPEG_LIBRARIES - FFmpeg libraries +# FFMPEG_DEFINITIONS - pre-processor definitions +# FFMPEG_LDFLAGS - linker flags +# +# and the following imported targets:: +# +# ffmpeg - The FFmpeg libraries +# -------- +# +# required ffmpeg library versions +set(REQUIRED_FFMPEG_VERSION 3.1) +set(_avcodec_ver ">=57.48.101") +set(_avfilter_ver ">=6.47.100") +set(_avformat_ver ">=57.41.100") +set(_avutil_ver ">=55.28.100") +set(_swscale_ver ">=4.1.100") +set(_swresample_ver ">=2.1.100") +set(_postproc_ver ">=54.0.100") -if(ENABLE_INTERNAL_FFMPEG) + +# Allows building with external ffmpeg not found in system paths, +# without library version checks +if(WITH_FFMPEG) + set(FFMPEG_PATH ${WITH_FFMPEG}) + message(STATUS "Warning: FFmpeg version checking disabled") + set(REQUIRED_FFMPEG_VERSION undef) + unset(_avcodec_ver) + unset(_avfilter_ver) + unset(_avformat_ver) + unset(_avutil_ver) + unset(_swscale_ver) + unset(_swresample_ver) + unset(_postproc_ver) +endif() + +# Allows building with external ffmpeg not found in system paths, +# with library version checks +if(FFMPEG_PATH) + set(ENABLE_INTERNAL_FFMPEG OFF) +endif() + +# external FFMPEG +if(NOT ENABLE_INTERNAL_FFMPEG OR CMAKE_CROSSCOMPILING) if(FFMPEG_PATH) - message(WARNING "Internal FFmpeg enabled, but FFMPEG_PATH given, ignoring") + set(ENV{PKG_CONFIG_PATH} "${FFMPEG_PATH}/lib/pkgconfig") + list(APPEND CMAKE_PREFIX_PATH ${FFMPEG_PATH}) endif() + set(FFMPEG_PKGS libavcodec${_avcodec_ver} + libavfilter${_avfilter_ver} + libavformat${_avformat_ver} + libavutil${_avutil_ver} + libswscale${_swscale_ver} + libswresample${_swresample_ver} + libpostproc${_postproc_ver}) + + if(PKG_CONFIG_FOUND) + pkg_check_modules(PC_FFMPEG ${FFMPEG_PKGS} QUIET) + string(REGEX REPLACE "framework;" "framework " PC_FFMPEG_LDFLAGS "${PC_FFMPEG_LDFLAGS}") + endif() + + find_path(FFMPEG_INCLUDE_DIRS libavcodec/avcodec.h libavfilter/avfilter.h libavformat/avformat.h + libavutil/avutil.h libswscale/swscale.h libpostproc/postprocess.h + PATH_SUFFIXES ffmpeg + PATHS ${PC_FFMPEG_INCLUDE_DIRS} + NO_DEFAULT_PATH) + find_path(FFMPEG_INCLUDE_DIRS libavcodec/avcodec.h libavfilter/avfilter.h libavformat/avformat.h + libavutil/avutil.h libswscale/swscale.h libpostproc/postprocess.h) + + find_library(FFMPEG_LIBAVCODEC + NAMES avcodec libavcodec + PATH_SUFFIXES ffmpeg/libavcodec + PATHS ${PC_FFMPEG_libavcodec_LIBDIR} + NO_DEFAULT_PATH) + find_library(FFMPEG_LIBAVCODEC NAMES avcodec libavcodec PATH_SUFFIXES ffmpeg/libavcodec) + + find_library(FFMPEG_LIBAVFILTER + NAMES avfilter libavfilter + PATH_SUFFIXES ffmpeg/libavfilter + PATHS ${PC_FFMPEG_libavfilter_LIBDIR} + NO_DEFAULT_PATH) + find_library(FFMPEG_LIBAVFILTER NAMES avfilter libavfilter PATH_SUFFIXES ffmpeg/libavfilter) + + find_library(FFMPEG_LIBAVFORMAT + NAMES avformat libavformat + PATH_SUFFIXES ffmpeg/libavformat + PATHS ${PC_FFMPEG_libavformat_LIBDIR} + NO_DEFAULT_PATH) + find_library(FFMPEG_LIBAVFORMAT NAMES avformat libavformat PATH_SUFFIXES ffmpeg/libavformat) + + find_library(FFMPEG_LIBAVUTIL + NAMES avutil libavutil + PATH_SUFFIXES ffmpeg/libavutil + PATHS ${PC_FFMPEG_libavutil_LIBDIR} + NO_DEFAULT_PATH) + find_library(FFMPEG_LIBAVUTIL NAMES avutil libavutil PATH_SUFFIXES ffmpeg/libavutil) + + find_library(FFMPEG_LIBSWSCALE + NAMES swscale libswscale + PATH_SUFFIXES ffmpeg/libswscale + PATHS ${PC_FFMPEG_libswscale_LIBDIR} + NO_DEFAULT_PATH) + find_library(FFMPEG_LIBSWSCALE NAMES swscale libswscale PATH_SUFFIXES ffmpeg/libswscale) + + find_library(FFMPEG_LIBSWRESAMPLE + NAMES swresample libswresample + PATH_SUFFIXES ffmpeg/libswresample + PATHS ${PC_FFMPEG_libswresample_LIBDIR} + NO_DEFAULT_PATH) + find_library(FFMPEG_LIBSWRESAMPLE NAMES NAMES swresample libswresample PATH_SUFFIXES ffmpeg/libswresample) + + find_library(FFMPEG_LIBPOSTPROC + NAMES postproc libpostproc + PATH_SUFFIXES ffmpeg/libpostproc + PATHS ${PC_FFMPEG_libpostproc_LIBDIR} + NO_DEFAULT_PATH) + find_library(FFMPEG_LIBPOSTPROC NAMES postproc libpostproc PATH_SUFFIXES ffmpeg/libpostproc) + + if((PC_FFMPEG_FOUND + AND PC_FFMPEG_libavcodec_VERSION + AND PC_FFMPEG_libavfilter_VERSION + AND PC_FFMPEG_libavformat_VERSION + AND PC_FFMPEG_libavutil_VERSION + AND PC_FFMPEG_libswscale_VERSION + AND PC_FFMPEG_libswresample_VERSION + AND PC_FFMPEG_libpostproc_VERSION) + OR WIN32) + set(FFMPEG_VERSION ${REQUIRED_FFMPEG_VERSION}) + + + include(FindPackageHandleStandardArgs) + find_package_handle_standard_args(FFMPEG + VERSION_VAR FFMPEG_VERSION + REQUIRED_VARS FFMPEG_INCLUDE_DIRS + FFMPEG_LIBAVCODEC + FFMPEG_LIBAVFILTER + FFMPEG_LIBAVFORMAT + FFMPEG_LIBAVUTIL + FFMPEG_LIBSWSCALE + FFMPEG_LIBSWRESAMPLE + FFMPEG_LIBPOSTPROC + FFMPEG_VERSION + FAIL_MESSAGE "FFmpeg ${REQUIRED_FFMPEG_VERSION} not found, please consider using -DENABLE_INTERNAL_FFMPEG=ON") + + else() + message(STATUS "FFmpeg ${REQUIRED_FFMPEG_VERSION} not found, falling back to internal build") + unset(FFMPEG_INCLUDE_DIRS) + unset(FFMPEG_INCLUDE_DIRS CACHE) + unset(FFMPEG_LIBRARIES) + unset(FFMPEG_LIBRARIES CACHE) + unset(FFMPEG_DEFINITIONS) + unset(FFMPEG_DEFINITIONS CACHE) + endif() + + if(FFMPEG_FOUND) + set(FFMPEG_LDFLAGS ${PC_FFMPEG_LDFLAGS} CACHE STRING "ffmpeg linker flags") + + # check if ffmpeg libs are statically linked + set(FFMPEG_LIB_TYPE SHARED) + foreach(_fflib IN LISTS FFMPEG_LIBRARIES) + if(${_fflib} MATCHES ".+\.a$" AND PC_FFMPEG_STATIC_LDFLAGS) + set(FFMPEG_LDFLAGS ${PC_FFMPEG_STATIC_LDFLAGS} CACHE STRING "ffmpeg linker flags" FORCE) + set(FFMPEG_LIB_TYPE STATIC) + break() + endif() + endforeach() + + set(FFMPEG_LIBRARIES ${FFMPEG_LIBAVCODEC} ${FFMPEG_LIBAVFILTER} + ${FFMPEG_LIBAVFORMAT} ${FFMPEG_LIBAVUTIL} + ${FFMPEG_LIBSWSCALE} ${FFMPEG_LIBSWRESAMPLE} + ${FFMPEG_LIBPOSTPROC} ${FFMPEG_LDFLAGS}) + list(APPEND FFMPEG_DEFINITIONS -DFFMPEG_VER_SHA=\"${FFMPEG_VERSION}\") + + if(NOT TARGET ffmpeg) + add_library(ffmpeg ${FFMPEG_LIB_TYPE} IMPORTED) + set_target_properties(ffmpeg PROPERTIES + FOLDER "External Projects" + IMPORTED_LOCATION "${FFMPEG_LIBRARIES}" + INTERFACE_INCLUDE_DIRECTORIES "${FFMPEG_INCLUDE_DIRS}" + INTERFACE_LINK_LIBRARIES "${FFMPEG_LDFLAGS}" + INTERFACE_COMPILE_DEFINITIONS "${FFMPEG_DEFINITIONS}") + endif() + endif() +endif() + +# Internal FFMPEG +if(NOT FFMPEG_FOUND) + include(ExternalProject) + file(STRINGS ${CORE_SOURCE_DIR}/tools/depends/target/ffmpeg/FFMPEG-VERSION VER) + string(REGEX MATCH "VERSION=[^ ]*$.*" FFMPEG_VER "${VER}") + list(GET FFMPEG_VER 0 FFMPEG_VER) + string(SUBSTRING "${FFMPEG_VER}" 8 -1 FFMPEG_VER) + string(REGEX MATCH "BASE_URL=([^ ]*)" FFMPEG_BASE_URL "${VER}") + list(GET FFMPEG_BASE_URL 0 FFMPEG_BASE_URL) + string(SUBSTRING "${FFMPEG_BASE_URL}" 9 -1 FFMPEG_BASE_URL) + # allow user to override the download URL with a local tarball # needed for offline build envs if(FFMPEG_URL) @@ -80,35 +286,7 @@ fi") list(APPEND FFMPEG_DEFINITIONS -DFFMPEG_VER_SHA=\"${FFMPEG_VER}\" -DUSE_STATIC_FFMPEG=1) set(FFMPEG_FOUND 1) -else() - if(FFMPEG_PATH) - set(ENV{PKG_CONFIG_PATH} "${FFMPEG_PATH}/lib/pkgconfig") - endif() - set(FFMPEG_PKGS libavcodec>=56.26.100 libavfilter>=5.11.100 libavformat>=56.25.101 - libavutil>=54.20.100 libswscale>=3.1.101 libswresample>=1.1.100 libpostproc>=53.3.100) - if(PKG_CONFIG_FOUND AND NOT WIN32) - pkg_check_modules (FFMPEG ${FFMPEG_PKGS}) - string(REGEX REPLACE "framework;" "framework " FFMPEG_LDFLAGS "${FFMPEG_LDFLAGS}") - set(FFMPEG_LIBRARIES ${FFMPEG_LDFLAGS}) - add_custom_target(ffmpeg) - else() - find_path(FFMPEG_INCLUDE_DIRS libavcodec/avcodec.h PATH_SUFFIXES ffmpeg) - find_library(FFMPEG_LIBAVCODEC NAMES avcodec libavcodec PATH_SUFFIXES ffmpeg/libavcodec) - find_library(FFMPEG_LIBAVFILTER NAMES avfilter libavfilter PATH_SUFFIXES ffmpeg/libavfilter) - find_library(FFMPEG_LIBAVFORMAT NAMES avformat libavformat PATH_SUFFIXES ffmpeg/libavformat) - find_library(FFMPEG_LIBAVUTIL NAMES avutil libavutil PATH_SUFFIXES ffmpeg/libavutil) - find_library(FFMPEG_LIBSWSCALE NAMES swscale libswscale PATH_SUFFIXES ffmpeg/libswscale) - find_library(FFMPEG_LIBPOSTPROC NAMES postproc libpostproc PATH_SUFFIXES ffmpeg/libpostproc) - set(FFMPEG_LIBRARIES ${FFMPEG_LIBAVCODEC} ${FFMPEG_LIBAVFILTER} ${FFMPEG_LIBAVFORMAT} - ${FFMPEG_LIBAVUTIL} ${FFMPEG_LIBSWSCALE} ${FFMPEG_LIBPOSTPROC}) - add_custom_target(ffmpeg DEPENDS ${FFMPEG_LIBRARIES}) - endif() - - include(FindPackageHandleStandardArgs) - find_package_handle_standard_args(FFMPEG DEFAULT_MSG FFMPEG_INCLUDE_DIRS FFMPEG_LIBRARIES) - set(FFMPEG_FOUND 1) - list(APPEND FFMPEG_DEFINITIONS -DFFMPEG_VER_SHA=\"${FFMPEG_VER}\") + set_target_properties(ffmpeg PROPERTIES FOLDER "External Projects") endif() -set_target_properties(ffmpeg PROPERTIES FOLDER "External Projects") -mark_as_advanced(FFMPEG_INCLUDE_DIRS FFMPEG_LIBRARIES FFMPEG_DEFINITIONS FFMPEG_FOUND) +mark_as_advanced(FFMPEG_INCLUDE_DIRS FFMPEG_LIBRARIES FFMPEG_LDFLAGS FFMPEG_DEFINITIONS FFMPEG_FOUND) diff --git a/project/cmake/modules/FindFribidi.cmake b/project/cmake/modules/FindFribidi.cmake index 03c2f53..dcaeb48 100644 --- a/project/cmake/modules/FindFribidi.cmake +++ b/project/cmake/modules/FindFribidi.cmake @@ -32,12 +32,16 @@ find_package_handle_standard_args(FriBidi if(FRIBIDI_FOUND) set(FRIBIDI_LIBRARIES ${FRIBIDI_LIBRARY}) set(FRIBIDI_INCLUDE_DIRS ${FRIBIDI_INCLUDE_DIR}) + if(PC_FRIBIDI_CFLAGS) + set(FRIBIDI_DEFINITIONS ${PC_FRIBIDI_CFLAGS}) + endif() if(NOT TARGET FriBidi::FriBidi) add_library(FriBidi::FriBidi UNKNOWN IMPORTED) set_target_properties(FriBidi::FriBidi PROPERTIES IMPORTED_LOCATION "${FRIBIDI_LIBRARY}" - INTERFACE_INCLUDE_DIRECTORIES "${FRIBIDI_INCLUDE_DIR}") + INTERFACE_INCLUDE_DIRECTORIES "${FRIBIDI_INCLUDE_DIR}" + INTERFACE_COMPILE_OPTIONS "${FRIBIDI_DEFINITIONS}") endif() endif() diff --git a/project/cmake/modules/FindMir.cmake b/project/cmake/modules/FindMir.cmake new file mode 100644 index 0000000..8847a61 --- /dev/null +++ b/project/cmake/modules/FindMir.cmake @@ -0,0 +1,33 @@ +# FindMir +# ------- +# Finds the Mir library +# +# This will will define the following variables:: +# +# MIR_FOUND - the system has Mir +# MIR_INCLUDE_DIRS - the Mir include directory +# MIR_LIBRARIES - the Mir libraries +# MIR_DEFINITIONS - the Mir definitions + + +if(PKG_CONFIG_FOUND) + pkg_check_modules (PC_MIR mirclient QUIET) +endif() + +find_path(MIR_INCLUDE_DIR NAMES mir_toolkit/mir_client_library.h + PATHS ${PC_MIR_INCLUDE_DIRS}) + +find_library(MIR_LIBRARY NAMES mirclient + PATHS ${PC_MIR_LIBRARIES} ${PC_MIR_LIBRARY_DIRS}) + +include (FindPackageHandleStandardArgs) +find_package_handle_standard_args (MIR + REQUIRED_VARS MIR_LIBRARY MIR_INCLUDE_DIR) + +if (MIR_FOUND) + set(MIR_LIBRARIES ${MIR_LIBRARY}) + set(MIR_INCLUDE_DIRS ${PC_MIR_INCLUDE_DIRS}) + set(MIR_DEFINITIONS -DHAVE_MIR=1) +endif() + +mark_as_advanced (MIR_LIBRARY MIR_INCLUDE_DIR) diff --git a/project/cmake/modules/FindTexturePacker.cmake b/project/cmake/modules/FindTexturePacker.cmake index 2229ff7..f9e4c75 100644 --- a/project/cmake/modules/FindTexturePacker.cmake +++ b/project/cmake/modules/FindTexturePacker.cmake @@ -3,6 +3,10 @@ # ----------------- # Finds the TexturePacker # +# If WITH_TEXTUREPACKER is defined and points to a directory, +# this path will be used to search for the Texturepacker binary +# +# # This will define the following (imported) targets:: # # TexturePacker::TexturePacker - The TexturePacker executable @@ -17,7 +21,21 @@ if(NOT TARGET TexturePacker::TexturePacker) set_target_properties(TexturePacker::TexturePacker PROPERTIES IMPORTED_LOCATION "${CORE_SOURCE_DIR}/tools/TexturePacker/TexturePacker.exe") else() - add_subdirectory(${CORE_SOURCE_DIR}/tools/depends/native/TexturePacker build/texturepacker) - add_executable(TexturePacker::TexturePacker ALIAS TexturePacker) + if(WITH_TEXTUREPACKER) + get_filename_component(_tppath ${WITH_TEXTUREPACKER} ABSOLUTE) + find_program(TEXTUREPACKER_EXECUTABLE TexturePacker PATHS ${_tppath}) + + include(FindPackageHandleStandardArgs) + find_package_handle_standard_args(TexturePacker DEFAULT_MSG TEXTUREPACKER_EXECUTABLE) + if(TEXTUREPACKER_FOUND) + add_executable(TexturePacker::TexturePacker IMPORTED GLOBAL) + set_target_properties(TexturePacker::TexturePacker PROPERTIES + IMPORTED_LOCATION "${TEXTUREPACKER_EXECUTABLE}") + endif() + mark_as_advanced(TEXTUREPACKER) + else() + add_subdirectory(${CORE_SOURCE_DIR}/tools/depends/native/TexturePacker build/texturepacker) + add_executable(TexturePacker::TexturePacker ALIAS TexturePacker) + endif() endif() endif() diff --git a/project/cmake/modules/FindVAAPI.cmake b/project/cmake/modules/FindVAAPI.cmake index ce3fe1a..ea9a3c9 100644 --- a/project/cmake/modules/FindVAAPI.cmake +++ b/project/cmake/modules/FindVAAPI.cmake @@ -24,6 +24,8 @@ find_library(VAAPI_libva_LIBRARY NAMES va PATHS ${PC_VAAPI_libva_LIBDIR}) find_library(VAAPI_libva-x11_LIBRARY NAMES va-x11 PATHS ${PC_VAAPI_libva_LIBDIR}) +find_library(VAAPI_libva-drm_LIBRARY NAMES va-drm + PATHS ${PC_VAAPI_libva_LIBDIR}) if(PC_VAAPI_libva_VERSION) set(VAAPI_VERSION_STRING ${PC_VAAPI_libva_VERSION}) @@ -39,12 +41,12 @@ endif() include(FindPackageHandleStandardArgs) find_package_handle_standard_args(VAAPI - REQUIRED_VARS VAAPI_libva_LIBRARY VAAPI_libva-x11_LIBRARY VAAPI_INCLUDE_DIR + REQUIRED_VARS VAAPI_libva_LIBRARY VAAPI_libva-x11_LIBRARY VAAPI_libva-drm_LIBRARY VAAPI_INCLUDE_DIR VERSION_VAR VAAPI_VERSION_STRING) if(VAAPI_FOUND) set(VAAPI_INCLUDE_DIRS ${VAAPI_INCLUDE_DIR}) - set(VAAPI_LIBRARIES ${VAAPI_libva_LIBRARY} ${VAAPI_libva-x11_LIBRARY}) + set(VAAPI_LIBRARIES ${VAAPI_libva_LIBRARY} ${VAAPI_libva-x11_LIBRARY} ${VAAPI_libva-drm_LIBRARY}) set(VAAPI_DEFINITIONS -DHAVE_LIBVA=1) if(NOT TARGET VAAPI::VAAPI_X11) @@ -52,14 +54,19 @@ if(VAAPI_FOUND) set_target_properties(VAAPI::VAAPI_X11 PROPERTIES IMPORTED_LOCATION "${VAAPI_libva-x11_LIBRARY}") endif() + if (NOT TARGET VAAPI::VAAPI_DRM) + add_library(VAAPI::VAAPI_DRM UNKNOWN IMPORTED) + set_target_properties(VAAPI::VAAPI_DRM PROPERTIES + IMPORTED_LOCATION "${VAAPI_libva-drm_LIBRARY}") + endif() if(NOT TARGET VAAPI::VAAPI) add_library(VAAPI::VAAPI UNKNOWN IMPORTED) set_target_properties(VAAPI::VAAPI PROPERTIES IMPORTED_LOCATION "${VAAPI_libva_LIBRARY}" INTERFACE_INCLUDE_DIRECTORIES "${VAAPI_INCLUDE_DIR}" INTERFACE_COMPILE_DEFINITIONS HAVE_LIBVA=1 - INTERFACE_LINK_LIBRARIES VAAPI::VAAPI_X11) + INTERFACE_LINK_LIBRARIES "VAAPI::VAAPI_X11 VAAPI::VAAPI_DRM") endif() endif() -mark_as_advanced(VAAPI_INCLUDE_DIR VAAPI_libva_LIBRARY VAAPI_libva-x11_LIBRARY) +mark_as_advanced(VAAPI_INCLUDE_DIR VAAPI_libva_LIBRARY VAAPI_libva-x11_LIBRARY VAAPI_libva-drm_LIBRARY) diff --git a/project/cmake/modules/FindXSLT.cmake b/project/cmake/modules/FindXSLT.cmake index 9be51d3..f7fea9e 100644 --- a/project/cmake/modules/FindXSLT.cmake +++ b/project/cmake/modules/FindXSLT.cmake @@ -43,7 +43,7 @@ if(XSLT_FOUND) IMPORTED_LOCATION "${XSLT_LIBRARY}" INTERFACE_INCLUDE_DIRECTORIES "${XSLT_INCLUDE_DIR} ${LIBXML2_INCLUDE_DIR}" INTERFACE_COMPILE_DEFINITIONS HAVE_LIBXSLT=1 - ITERFACE_LINK_LIBRARIES "${LIBXML2_LIBRARIES}") + INTERFACE_LINK_LIBRARIES "${LIBXML2_LIBRARIES}") endif() endif() -- cgit v1.2.3