From cf85cccfdb1aa57b6246641f606563288e0870e5 Mon Sep 17 00:00:00 2001 From: manuel Date: Mon, 29 Apr 2019 12:23:35 +0200 Subject: sync with upstream --- cmake/modules/FindCurl.cmake | 19 ++++++++-- cmake/modules/FindFmt.cmake | 1 + cmake/modules/FindFreeType.cmake | 3 +- cmake/modules/FindJsonSchemaBuilder.cmake | 38 +++++++++++++------ cmake/modules/FindLibDRM.cmake | 2 +- cmake/modules/FindMariaDBClient.cmake | 18 +++++++-- cmake/modules/FindMicroHttpd.cmake | 10 +---- cmake/modules/FindYajl.cmake | 62 ------------------------------- 8 files changed, 62 insertions(+), 91 deletions(-) delete mode 100644 cmake/modules/FindYajl.cmake (limited to 'cmake/modules') diff --git a/cmake/modules/FindCurl.cmake b/cmake/modules/FindCurl.cmake index 6ccf44a..6411a92 100644 --- a/cmake/modules/FindCurl.cmake +++ b/cmake/modules/FindCurl.cmake @@ -25,6 +25,19 @@ find_library(CURL_LIBRARY NAMES curl libcurl libcurl_imp set(CURL_VERSION ${PC_CURL_VERSION}) +set(CURL_LIB_TYPE SHARED) +set(CURL_LDFLAGS ${PC_CURL_LDFLAGS}) + +# check if curl is statically linked +if(${CURL_LIBRARY} MATCHES ".+\.a$" AND PC_CURL_STATIC_LDFLAGS) + set(CURL_LIB_TYPE STATIC) + set(CURL_LDFLAGS ${PC_CURL_STATIC_LDFLAGS}) + + pkg_check_modules(PC_NGHTTP2 libnghttp2 QUIET) + find_library(NGHTTP2_LIBRARY NAMES libnghttp2 nghttp2 + PATHS ${PC_NGHTTP2_LIBDIR}) +endif() + include(FindPackageHandleStandardArgs) find_package_handle_standard_args(Curl REQUIRED_VARS CURL_LIBRARY CURL_INCLUDE_DIR @@ -32,10 +45,10 @@ find_package_handle_standard_args(Curl if(CURL_FOUND) set(CURL_INCLUDE_DIRS ${CURL_INCLUDE_DIR}) - set(CURL_LIBRARIES ${CURL_LIBRARY}) + set(CURL_LIBRARIES ${CURL_LIBRARY} ${NGHTTP2_LIBRARY}) if(NOT TARGET Curl::Curl) - add_library(Curl::Curl UNKNOWN IMPORTED) + add_library(Curl::Curl ${CURL_LIB_TYPE} IMPORTED) set_target_properties(Curl::Curl PROPERTIES IMPORTED_LOCATION "${CURL_LIBRARY}" INTERFACE_INCLUDE_DIRECTORIES "${CURL_INCLUDE_DIR}") @@ -46,4 +59,4 @@ if(CURL_FOUND) endif() endif() -mark_as_advanced(CURL_INCLUDE_DIR CURL_LIBRARY) +mark_as_advanced(CURL_INCLUDE_DIR CURL_LIBRARY CURL_LDFLAGS) diff --git a/cmake/modules/FindFmt.cmake b/cmake/modules/FindFmt.cmake index df18d85..47cf8be 100644 --- a/cmake/modules/FindFmt.cmake +++ b/cmake/modules/FindFmt.cmake @@ -40,6 +40,7 @@ if(ENABLE_INTERNAL_FMT) PREFIX ${CORE_BUILD_DIR}/fmt CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR} -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} + -DCMAKE_INSTALL_LIBDIR=lib -DFMT_DOC=OFF -DFMT_TEST=OFF "${EXTRA_ARGS}" diff --git a/cmake/modules/FindFreeType.cmake b/cmake/modules/FindFreeType.cmake index 8a39555..771819e 100644 --- a/cmake/modules/FindFreeType.cmake +++ b/cmake/modules/FindFreeType.cmake @@ -19,7 +19,8 @@ endif() find_path(FREETYPE_INCLUDE_DIR NAMES freetype/freetype.h freetype.h PATHS ${PC_FREETYPE_INCLUDEDIR} - ${PC_FREETYPE_INCLUDE_DIRS}) + ${PC_FREETYPE_INCLUDE_DIRS} + PATH_SUFFIXES freetype2) find_library(FREETYPE_LIBRARY NAMES freetype freetype246MT PATHS ${PC_FREETYPE_LIBDIR}) diff --git a/cmake/modules/FindJsonSchemaBuilder.cmake b/cmake/modules/FindJsonSchemaBuilder.cmake index 14aa2f5..094c2fa 100644 --- a/cmake/modules/FindJsonSchemaBuilder.cmake +++ b/cmake/modules/FindJsonSchemaBuilder.cmake @@ -3,24 +3,40 @@ # --------------------- # Finds the JsonSchemaBuilder # +# If WITH_JSONSCHEMABUILDER is defined and points to a directory, +# this path will be used to search for the JsonSchemaBuilder binary +# +# # This will define the following (imported) targets:: # # JsonSchemaBuilder::JsonSchemaBuilder - The JsonSchemaBuilder executable if(NOT TARGET JsonSchemaBuilder::JsonSchemaBuilder) - if(KODI_DEPENDSBUILD OR CMAKE_CROSSCOMPILING) + if(KODI_DEPENDSBUILD) + add_executable(JsonSchemaBuilder::JsonSchemaBuilder IMPORTED GLOBAL) + set_target_properties(JsonSchemaBuilder::JsonSchemaBuilder PROPERTIES + IMPORTED_LOCATION "${NATIVEPREFIX}/bin/JsonSchemaBuilder") + elseif(CORE_SYSTEM_NAME STREQUAL windowsstore) add_executable(JsonSchemaBuilder::JsonSchemaBuilder IMPORTED GLOBAL) - if(CORE_SYSTEM_NAME STREQUAL windows OR CORE_SYSTEM_NAME STREQUAL windowsstore) - set_target_properties(JsonSchemaBuilder::JsonSchemaBuilder PROPERTIES - IMPORTED_LOCATION "${DEPENDENCIES_DIR}/bin/json-rpc/JsonSchemaBuilder") + set_target_properties(JsonSchemaBuilder::JsonSchemaBuilder PROPERTIES + IMPORTED_LOCATION "${DEPENDENCIES_DIR}/bin/json-rpc/JsonSchemaBuilder") + else() + if(WITH_JSONSCHEMABUILDER) + get_filename_component(_jsbpath ${WITH_JSONSCHEMABUILDER} ABSOLUTE) + find_program(JSONSCHEMABUILDER_EXECUTABLE JsonSchemaBuilder PATHS ${_jsbpath}) + + include(FindPackageHandleStandardArgs) + find_package_handle_standard_args(JsonSchemaBuilder DEFAULT_MSG JSONSCHEMABUILDER_EXECUTABLE) + if(JSONSCHEMABUILDER_FOUND) + add_executable(JsonSchemaBuilder::JsonSchemaBuilder IMPORTED GLOBAL) + set_target_properties(JsonSchemaBuilder::JsonSchemaBuilder PROPERTIES + IMPORTED_LOCATION "${JSONSCHEMABUILDER_EXECUTABLE}") + endif() + mark_as_advanced(JSONSCHEMABUILDER) else() - set_target_properties(JsonSchemaBuilder::JsonSchemaBuilder PROPERTIES - IMPORTED_LOCATION "${NATIVEPREFIX}/bin/JsonSchemaBuilder") + add_subdirectory(${CMAKE_SOURCE_DIR}/tools/depends/native/JsonSchemaBuilder build/jsonschemabuilder) + add_executable(JsonSchemaBuilder::JsonSchemaBuilder ALIAS JsonSchemaBuilder) + set_target_properties(JsonSchemaBuilder PROPERTIES FOLDER Tools) endif() - set_target_properties(JsonSchemaBuilder::JsonSchemaBuilder PROPERTIES FOLDER Tools) - else() - add_subdirectory(${CMAKE_SOURCE_DIR}/tools/depends/native/JsonSchemaBuilder build/jsonschemabuilder) - add_executable(JsonSchemaBuilder::JsonSchemaBuilder ALIAS JsonSchemaBuilder) - set_target_properties(JsonSchemaBuilder PROPERTIES FOLDER Tools) endif() endif() diff --git a/cmake/modules/FindLibDRM.cmake b/cmake/modules/FindLibDRM.cmake index ec30920..4b39de3 100644 --- a/cmake/modules/FindLibDRM.cmake +++ b/cmake/modules/FindLibDRM.cmake @@ -14,7 +14,7 @@ # LibDRM::LibDRM - The LibDRM library if(PKG_CONFIG_FOUND) - pkg_check_modules(PC_LIBDRM libdrm>=2.4.71 QUIET) + pkg_check_modules(PC_LIBDRM libdrm>=2.4.82 QUIET) endif() find_path(LIBDRM_INCLUDE_DIR NAMES drm.h diff --git a/cmake/modules/FindMariaDBClient.cmake b/cmake/modules/FindMariaDBClient.cmake index 8a28670..7530ab5 100644 --- a/cmake/modules/FindMariaDBClient.cmake +++ b/cmake/modules/FindMariaDBClient.cmake @@ -21,15 +21,25 @@ else() set(EXTRA_FIND_ARGS) endif() -find_path(MARIADBCLIENT_INCLUDE_DIR NAMES mariadb/mysql.h mariadb/server/mysql.h) -find_library(MARIADBCLIENT_LIBRARY_RELEASE NAMES mariadbclient libmariadb +if(PKG_CONFIG_FOUND) + pkg_check_modules(PC_MARIADBCLIENT mariadb QUIET) +endif() + + +find_path(MARIADBCLIENT_INCLUDE_DIR NAMES mariadb/mysql.h mariadb/server/mysql.h + PATHS ${PC_MARIADBCLIENT_INCLUDEDIR}) +find_library(MARIADBCLIENT_LIBRARY_RELEASE NAMES mariadbclient mariadb + PATHS ${PC_MARIADBCLIENT_LIBDIR} PATH_SUFFIXES mariadb ${EXTRA_FIND_ARGS}) -find_library(MARIADBCLIENT_LIBRARY_DEBUG NAMES mariadbclient libmariadb +find_library(MARIADBCLIENT_LIBRARY_DEBUG NAMES mariadbclient mariadb + PATHS ${PC_MARIADBCLIENT_LIBDIR} PATH_SUFFIXES mariadb ${EXTRA_FIND_ARGS}) -if(MARIADBCLIENT_INCLUDE_DIR AND EXISTS "${MARIADBCLIENT_INCLUDE_DIR}/mariadb/mariadb_version.h") +if(PC_MARIADBCLIENT_VERSION) + set(MARIADBCLIENT_VERSION_STRING ${PC_MARIADBCLIENT_VERSION}) +elseif(MARIADBCLIENT_INCLUDE_DIR AND EXISTS "${MARIADBCLIENT_INCLUDE_DIR}/mariadb/mariadb_version.h") file(STRINGS "${MARIADBCLIENT_INCLUDE_DIR}/mariadb/mariadb_version.h" mariadb_version_str REGEX "^#define[\t ]+MARIADB_CLIENT_VERSION_STR[\t ]+\".*\".*") string(REGEX REPLACE "^#define[\t ]+MARIADB_CLIENT_VERSION_STR[\t ]+\"([^\"]+)\".*" "\\1" MARIADBCLIENT_VERSION_STRING "${mariadb_version_str}") unset(mariadb_version_str) diff --git a/cmake/modules/FindMicroHttpd.cmake b/cmake/modules/FindMicroHttpd.cmake index e6127f3..a0b91a0 100644 --- a/cmake/modules/FindMicroHttpd.cmake +++ b/cmake/modules/FindMicroHttpd.cmake @@ -35,15 +35,7 @@ if(MICROHTTPD_FOUND) set(MICROHTTPD_INCLUDE_DIRS ${MICROHTTPD_INCLUDE_DIR}) set(MICROHTTPD_DEFINITIONS -DHAS_WEB_SERVER=1 -DHAS_WEB_INTERFACE=1) - if(KODI_DEPENDSBUILD AND NOT WIN32) - find_library(GCRYPT_LIBRARY gcrypt) - find_library(GPGERROR_LIBRARY gpg-error) - list(APPEND MICROHTTPD_LIBRARIES ${GCRYPT_LIBRARY} ${GPGERROR_LIBRARY}) - mark_as_advanced(GCRYPT_LIBRARY GPGERROR_LIBRARY) - if(NOT APPLE AND NOT CORE_SYSTEM_NAME STREQUAL android) - list(APPEND MICROHTTPD_LIBRARIES rt) - endif() - else() + if(${MICROHTTPD_LIBRARY} MATCHES ".+\.a$" AND PC_MICROHTTPD_STATIC_LIBRARIES) list(APPEND MICROHTTPD_LIBRARIES ${PC_MICROHTTPD_STATIC_LIBRARIES}) endif() endif() diff --git a/cmake/modules/FindYajl.cmake b/cmake/modules/FindYajl.cmake deleted file mode 100644 index d8793e6..0000000 --- a/cmake/modules/FindYajl.cmake +++ /dev/null @@ -1,62 +0,0 @@ -#.rst: -# FindYajl -# -------- -# Finds the Yajl library -# -# This will define the following variables:: -# -# YAJL_FOUND - system has Yajl -# YAJL_INCLUDE_DIRS - Yajl include directory -# YAJL_LIBRARIES - the Yajl libraries -# -# and the following imported targets:: -# -# Yajl::Yajl - The Yajl library - -if(NOT Yajl_FIND_VERSION) - set(Yajl_FIND_VERSION 2.0.0) -endif() - -if(PKG_CONFIG_FOUND) - pkg_check_modules(PC_YAJL yajl>=${Yajl_FIND_VERSION} QUIET) -endif() - -find_path(YAJL_INCLUDE_DIR NAMES yajl/yajl_common.h - PATHS ${PC_YAJL_INCLUDEDIR}) -find_library(YAJL_LIBRARY NAMES yajl - PATHS ${PC_YAJL_LIBDIR}) - -if(PC_YAJL_VERSION) - set(YAJL_VERSION_STRING ${PC_YAJL_VERSION}) -elseif(YAJL_INCLUDE_DIR AND EXISTS "${YAJL_INCLUDE_DIR}/yajl/yajl_version.h") - file(STRINGS "${YAJL_INCLUDE_DIR}/yajl/yajl_version.h" yajl_version_str REGEX "^[ \t]*#define[ \t]+YAJL_(MAJOR|MINOR|MICRO)") - string(REGEX REPLACE "YAJL_MAJOR ([0-9]+)" "\\1" YAJL_VERSION_MAJOR "${YAJL_VERSION_MAJOR}") - - string(REGEX REPLACE ".*YAJL_MAJOR ([0-9]+).*" "\\1" yajl_major "${yajl_version_str}") - string(REGEX REPLACE ".*YAJL_MINOR ([0-9]+).*" "\\1" yajl_minor "${yajl_version_str}") - string(REGEX REPLACE ".*YAJL_MICRO ([0-9]+).*" "\\1" yajl_micro "${yajl_version_str}") - set(YAJL_VERSION_STRING "${yajl_major}.${yajl_minor}.${yajl_micro}") - unset(yajl_version_str) - unset(yajl_major) - unset(yajl_minor) - unset(yajl_micro) -endif() - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(Yajl - REQUIRED_VARS YAJL_LIBRARY YAJL_INCLUDE_DIR - VERSION_VAR YAJL_VERSION_STRING) - -if(YAJL_FOUND) - set(YAJL_INCLUDE_DIRS ${YAJL_INCLUDE_DIR}) - set(YAJL_LIBRARIES ${YAJL_LIBRARY}) - - if(NOT TARGET Yajl::Yajl) - add_library(Yajl::Yajl UNKNOWN IMPORTED) - set_target_properties(Yajl::Yajl PROPERTIES - IMPORTED_LOCATION "${YAJL_LIBRARY}" - INTERFACE_INCLUDE_DIRECTORIES "${YAJL_INCLUDE_DIR}") - endif() -endif() - -mark_as_advanced(YAJL_INCLUDE_DIR YAJL_LIBRARY) -- cgit v1.2.3