From 0afb1d4d51973cf52973617c92236d851a039d31 Mon Sep 17 00:00:00 2001 From: manuel Date: Sat, 2 Sep 2017 15:02:54 +0200 Subject: sync with upstream --- cmake/modules/FindCdio.cmake | 17 +++++++--- cmake/modules/FindFFMPEG.cmake | 1 + cmake/modules/FindMySqlClient.cmake | 2 +- cmake/modules/FindRapidJSON.cmake | 42 ++++++++++++++++++++++++ cmake/modules/FindVAAPI.cmake | 18 +++++++---- cmake/modules/FindWaylandpp.cmake | 64 +++++++++++++++++++++++++++++++++++++ cmake/modules/FindXkbcommon.cmake | 35 ++++++++++++++++++++ 7 files changed, 168 insertions(+), 11 deletions(-) create mode 100644 cmake/modules/FindWaylandpp.cmake create mode 100644 cmake/modules/FindXkbcommon.cmake (limited to 'cmake/modules') diff --git a/cmake/modules/FindCdio.cmake b/cmake/modules/FindCdio.cmake index 3f0a867..64f4bb8 100644 --- a/cmake/modules/FindCdio.cmake +++ b/cmake/modules/FindCdio.cmake @@ -23,16 +23,25 @@ find_path(CDIO_INCLUDE_DIR NAMES cdio/cdio.h find_library(CDIO_LIBRARY NAMES cdio libcdio PATHS ${CDIO_libcdio_LIBDIR} ${CDIO_libiso9660_LIBDIR}) +if(NOT WIN32) + find_path(ISO9660_INCLUDE_DIR NAMES cdio/iso9660.h + PATHS ${PC_CDIO_libcdio_INCLUDEDIR} + ${PC_CDIO_libiso9660_INCLUDEDIR}) + find_library(ISO9660_LIBRARY NAMES iso9660 + PATHS ${CDIO_libcdio_LIBDIR} ${CDIO_libiso9660_LIBDIR}) + list(APPEND ISO9660_VARS ISO9660_INCLUDE_DIR ISO9660_LIBRARY) +endif() + set(CDIO_VERSION ${PC_CDIO_libcdio_VERSION}) include(FindPackageHandleStandardArgs) find_package_handle_standard_args(Cdio - REQUIRED_VARS CDIO_LIBRARY CDIO_INCLUDE_DIR + REQUIRED_VARS CDIO_LIBRARY CDIO_INCLUDE_DIR ${ISO9660_VARS} VERSION_VAR CDIO_VERSION) if(CDIO_FOUND) - set(CDIO_LIBRARIES ${CDIO_LIBRARY}) - set(CDIO_INCLUDE_DIRS ${CDIO_INCLUDE_DIR}) + set(CDIO_LIBRARIES ${CDIO_LIBRARY} ${ISO9660_LIBRARY}) + set(CDIO_INCLUDE_DIRS ${CDIO_INCLUDE_DIR} ${ISO9660_INCLUDE_DIR}) if(NOT TARGET CDIO::CDIO) add_library(CDIO::CDIO UNKNOWN IMPORTED) @@ -42,4 +51,4 @@ if(CDIO_FOUND) endif() endif() -mark_as_advanced(CDIO_INCLUDE_DIR CDIO_LIBRARY) +mark_as_advanced(CDIO_INCLUDE_DIR CDIO_LIBRARY ISO9660_INCLUDE_DIR ISO9660_LIBRARY) diff --git a/cmake/modules/FindFFMPEG.cmake b/cmake/modules/FindFFMPEG.cmake index dbeb444..02c8d28 100644 --- a/cmake/modules/FindFFMPEG.cmake +++ b/cmake/modules/FindFFMPEG.cmake @@ -250,6 +250,7 @@ if(NOT FFMPEG_FOUND) -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DFFMPEG_VER=${FFMPEG_VER} -DCORE_SYSTEM_NAME=${CORE_SYSTEM_NAME} + -DCORE_PLATFORM_NAME=${CORE_PLATFORM_NAME_LC} -DCPU=${CPU} -DENABLE_NEON=${ENABLE_NEON} -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} diff --git a/cmake/modules/FindMySqlClient.cmake b/cmake/modules/FindMySqlClient.cmake index ceccea3..7b48577 100644 --- a/cmake/modules/FindMySqlClient.cmake +++ b/cmake/modules/FindMySqlClient.cmake @@ -21,7 +21,7 @@ else() set(EXTRA_FIND_ARGS) endif() -find_path(MYSQLCLIENT_INCLUDE_DIR mysql/mysql_time.h) +find_path(MYSQLCLIENT_INCLUDE_DIR NAMES mysql/mysql.h mysql/server/mysql.h) find_library(MYSQLCLIENT_LIBRARY_RELEASE NAMES mysqlclient libmysql PATH_SUFFIXES mysql ${EXTRA_FIND_ARGS}) diff --git a/cmake/modules/FindRapidJSON.cmake b/cmake/modules/FindRapidJSON.cmake index d41985b..3c3dc3f 100644 --- a/cmake/modules/FindRapidJSON.cmake +++ b/cmake/modules/FindRapidJSON.cmake @@ -8,6 +8,47 @@ # RapidJSON_FOUND - system has RapidJSON parser # RapidJSON_INCLUDE_DIRS - the RapidJSON parser include directory # +if(ENABLE_INTERNAL_RapidJSON) + include(ExternalProject) + file(STRINGS ${CMAKE_SOURCE_DIR}/tools/depends/target/rapidjson/Makefile VER REGEX MATCH "^[ ]*VERSION[ ]*=.+$") + string(REGEX REPLACE "^[ ]*VERSION[ ]*=[ ]*" "" RJSON_VER "${VER}") + + # allow user to override the download URL with a local tarball + # needed for offline build envs + if(RapidJSON_URL) + get_filename_component(RapidJSON_URL "${RapidJSON_URL}" ABSOLUTE) + else() + set(RapidJSON_URL http://mirrors.kodi.tv/build-deps/sources/rapidjson-${RJSON_VER}.tar.gz) + endif() + if(VERBOSE) + message(STATUS "RapidJSON_URL: ${RapidJSON_URL}") + endif() + + if(APPLE) + set(EXTRA_ARGS "-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES}") + endif() + + set(RapidJSON_LIBRARY ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/lib/librapidjson.a) + set(RapidJSON_INCLUDE_DIR ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/include) + externalproject_add(rapidjson + URL ${RapidJSON_URL} + DOWNLOAD_DIR ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/download + PREFIX ${CORE_BUILD_DIR}/rapidjson + CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR} + -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} + "${EXTRA_ARGS}" + PATCH_COMMAND patch -p1 < ${CORE_SOURCE_DIR}/tools/depends/target/rapidjson/0001-remove_custom_cxx_flags.patch + BUILD_BYPRODUCTS ${RapidJSON_LIBRARY}) + set_target_properties(rapidjson PROPERTIES FOLDER "External Projects") + + include(FindPackageHandleStandardArgs) + find_package_handle_standard_args(rapidjson + REQUIRED_VARS RapidJSON_LIBRARY RapidJSON_INCLUDE_DIR + VERSION_VAR RJSON_VER) + + set(RapidJSON_LIBRARIES ${RapidJSON_LIBRARY}) + set(RapidJSON_INCLUDE_DIRS ${RapidJSON_INCLUDE_DIR}) +else() if(PKG_CONFIG_FOUND) pkg_check_modules(PC_RapidJSON RapidJSON>=1.0.2 QUIET) @@ -38,3 +79,4 @@ endif() mark_as_advanced(RapidJSON_INCLUDE_DIR) +endif() diff --git a/cmake/modules/FindVAAPI.cmake b/cmake/modules/FindVAAPI.cmake index 5b57d23..157cec4 100644 --- a/cmake/modules/FindVAAPI.cmake +++ b/cmake/modules/FindVAAPI.cmake @@ -11,7 +11,7 @@ # VAAPI_DEFINITIONS - the VAAPI definitions if(PKG_CONFIG_FOUND) - pkg_check_modules(PC_VAAPI libva libva-drm libva-x11 QUIET) + pkg_check_modules(PC_VAAPI libva libva-drm libva-wayland libva-x11 QUIET) endif() set(REQUIRED_VARS "VAAPI_libva_LIBRARY" "VAAPI_libva-drm_LIBRARY" "VAAPI_libva_INCLUDE_DIR" "VAAPI_libva-drm_INCLUDE_DIR") @@ -24,7 +24,13 @@ find_path(VAAPI_libva-drm_INCLUDE_DIR va/va_drm.h PATHS ${PC_VAAPI_libva-drm_INCLUDEDIR}) find_library(VAAPI_libva-drm_LIBRARY NAMES va-drm PATHS ${PC_VAAPI_libva-drm_LIBDIR}) - +if(CORE_PLATFORM_NAME_LC STREQUAL "wayland") + find_path(VAAPI_libva-wayland_INCLUDE_DIR va/va_wayland.h + PATHS ${PC_VAAPI_libva-wayland_INCLUDEDIR}) + find_library(VAAPI_libva-wayland_LIBRARY NAMES va-wayland + PATHS ${PC_VAAPI_libva-wayland_LIBDIR}) + list(APPEND REQUIRED_VARS "VAAPI_libva-wayland_INCLUDE_DIR" "VAAPI_libva-wayland_LIBRARY") +endif() if(CORE_PLATFORM_NAME_LC STREQUAL "x11") find_path(VAAPI_libva-x11_INCLUDE_DIR va/va_x11.h PATHS ${PC_VAAPI_libva-x11_INCLUDEDIR}) @@ -51,10 +57,10 @@ find_package_handle_standard_args(VAAPI VERSION_VAR VAAPI_VERSION_STRING) if(VAAPI_FOUND) - set(VAAPI_INCLUDE_DIRS ${VAAPI_INCLUDE_DIR} ${VAAPI_DRM_INCLUDE_DIR} ${VAAPI_X11_INCLUDE_DIR}) - set(VAAPI_LIBRARIES ${VAAPI_libva_LIBRARY} ${VAAPI_libva-drm_LIBRARY} ${VAAPI_libva-x11_LIBRARY}) + set(VAAPI_INCLUDE_DIRS ${VAAPI_INCLUDE_DIR} ${VAAPI_DRM_INCLUDE_DIR} ${VAAPI_WAYLAND_INCLUDE_DIR} ${VAAPI_X11_INCLUDE_DIR}) + set(VAAPI_LIBRARIES ${VAAPI_libva_LIBRARY} ${VAAPI_libva-drm_LIBRARY} ${VAAPI_libva-wayland_LIBRARY} ${VAAPI_libva-x11_LIBRARY}) set(VAAPI_DEFINITIONS -DHAVE_LIBVA=1) endif() -mark_as_advanced(VAAPI_libva_INCLUDE_DIR VAAPI_libva-drm_INCLUDE_DIR VAAPI_libva-x11_INCLUDE_DIR - VAAPI_libva_LIBRARY VAAPI_libva-drm_LIBRARY VAAPI_libva-x11_LIBRARY) +mark_as_advanced(VAAPI_libva_INCLUDE_DIR VAAPI_libva-drm_INCLUDE_DIR VAAPI_libva-wayland_INCLUDE_DIR VAAPI_libva-x11_INCLUDE_DIR + VAAPI_libva_LIBRARY VAAPI_libva-drm_LIBRARY VAAPI_libva-wayland_LIBRARY VAAPI_libva-x11_LIBRARY) diff --git a/cmake/modules/FindWaylandpp.cmake b/cmake/modules/FindWaylandpp.cmake new file mode 100644 index 0000000..8a1cd74 --- /dev/null +++ b/cmake/modules/FindWaylandpp.cmake @@ -0,0 +1,64 @@ +# FindWaylandpp +# ----------- +# Finds the waylandpp library +# +# This will will define the following variables:: +# +# WAYLANDPP_FOUND - the system has Wayland +# WAYLANDPP_INCLUDE_DIRS - the Wayland include directory +# WAYLANDPP_LIBRARIES - the Wayland libraries +# WAYLANDPP_DEFINITIONS - the Wayland definitions + + +if(PKG_CONFIG_FOUND) + pkg_check_modules(PC_WAYLANDPP wayland-client++>=0.1 wayland-egl++ wayland-cursor++ wayland-scanner++ QUIET) + pkg_check_modules(PC_WAYLAND_PROTOCOLS wayland-protocols>=1.7 QUIET) + # TODO: Remove check when CMake minimum version is bumped globally + if(CMAKE_VERSION VERSION_EQUAL 3.4.0 OR CMAKE_VERSION VERSION_GREATER 3.4.0) + if(PC_WAYLANDPP_FOUND) + pkg_get_variable(PC_WAYLANDPP_SCANNER wayland-scanner++ wayland_scannerpp) + endif() + if(PC_WAYLAND_PROTOCOLS_FOUND) + pkg_get_variable(PC_WAYLAND_PROTOCOLS_DIR wayland-protocols pkgdatadir) + endif() + endif() +endif() + +find_path(WAYLANDPP_INCLUDE_DIR NAMES wayland-client.hpp + PATHS ${PC_WAYLANDPP_INCLUDE_DIRS}) + +find_library(WAYLANDPP_CLIENT_LIBRARY NAMES wayland-client++ + PATHS ${PC_WAYLANDPP_LIBRARIES} ${PC_WAYLANDPP_LIBRARY_DIRS}) + +find_library(WAYLANDPP_CURSOR_LIBRARY NAMES wayland-cursor++ + PATHS ${PC_WAYLANDPP_LIBRARIES} ${PC_WAYLANDPP_LIBRARY_DIRS}) + +find_library(WAYLANDPP_EGL_LIBRARY NAMES wayland-egl++ + PATHS ${PC_WAYLANDPP_LIBRARIES} ${PC_WAYLANDPP_LIBRARY_DIRS}) + +find_program(WAYLANDPP_SCANNER NAMES wayland-scanner++ + PATHS ${PC_WAYLANDPP_SCANNER}) + +find_path(WAYLAND_PROTOCOLS_DIR NAMES unstable/xdg-shell/xdg-shell-unstable-v6.xml + PATHS ${PC_WAYLAND_PROTOCOLS_DIR} + DOC "Directory containing additional Wayland protocols") + +include (FindPackageHandleStandardArgs) +find_package_handle_standard_args (Waylandpp + REQUIRED_VARS + WAYLANDPP_INCLUDE_DIR + WAYLANDPP_CLIENT_LIBRARY + WAYLANDPP_CURSOR_LIBRARY + WAYLANDPP_EGL_LIBRARY + WAYLANDPP_SCANNER + WAYLAND_PROTOCOLS_DIR + VERSION_VAR + PC_WAYLANDPP_wayland-client++_VERSION) + +if (WAYLANDPP_FOUND) + set(WAYLANDPP_LIBRARIES ${WAYLANDPP_CLIENT_LIBRARY} ${WAYLANDPP_CURSOR_LIBRARY} ${WAYLANDPP_EGL_LIBRARY}) + set(WAYLANDPP_INCLUDE_DIRS ${PC_WAYLANDPP_INCLUDE_DIRS}) + set(WAYLANDPP_DEFINITIONS -DHAVE_WAYLAND=1) +endif() + +mark_as_advanced (WAYLANDPP_CLIENT_LIBRARY WAYLANDPP_CURSOR_LIBRARY WAYLANDPP_EGL_LIBRARY WAYLANDPP_INCLUDE_DIR) diff --git a/cmake/modules/FindXkbcommon.cmake b/cmake/modules/FindXkbcommon.cmake new file mode 100644 index 0000000..88c6121 --- /dev/null +++ b/cmake/modules/FindXkbcommon.cmake @@ -0,0 +1,35 @@ +# FindXkbcommon +# ----------- +# Finds the libxkbcommon library +# +# This will will define the following variables:: +# +# XKBCOMMON_FOUND - the system has libxkbcommon +# XKBCOMMON_INCLUDE_DIRS - the libxkbcommon include directory +# XKBCOMMON_LIBRARIES - the libxkbcommon libraries +# XKBCOMMON_DEFINITIONS - the libxkbcommon definitions + + +if(PKG_CONFIG_FOUND) + pkg_check_modules (PC_XKBCOMMON xkbcommon QUIET) +endif() + +find_path(XKBCOMMON_INCLUDE_DIR NAMES xkbcommon/xkbcommon.h + PATHS ${PC_XKBCOMMON_INCLUDE_DIRS}) + +find_library(XKBCOMMON_LIBRARY NAMES xkbcommon + PATHS ${PC_XKBCOMMON_LIBRARIES} ${PC_XKBCOMMON_LIBRARY_DIRS}) + +include (FindPackageHandleStandardArgs) +find_package_handle_standard_args (XKBCOMMON + REQUIRED_VARS + XKBCOMMON_INCLUDE_DIR + XKBCOMMON_LIBRARY) + +if (XKBCOMMON_FOUND) + set(XKBCOMMON_LIBRARIES ${XKBCOMMON_LIBRARY}) + set(XKBCOMMON_INCLUDE_DIRS ${PC_XKBCOMMON_INCLUDE_DIRS}) + set(XKBCOMMON_DEFINITIONS -DHAVE_XKBCOMMON=1) +endif() + +mark_as_advanced (XKBCOMMON_LIBRARY XKBCOMMON_INCLUDE_DIR) \ No newline at end of file -- cgit v1.2.3