From b3d195f0188758a14875a5a2f270e4fd190a679f Mon Sep 17 00:00:00 2001 From: manuel Date: Tue, 17 Apr 2018 00:15:38 +0200 Subject: sync with upstream --- cmake/modules/FindAML.cmake | 14 ++++++ cmake/modules/FindAlsa.cmake | 2 +- cmake/modules/FindCdio.cmake | 2 +- cmake/modules/FindCpluff.cmake | 33 +++++---------- cmake/modules/FindCurl.cmake | 34 --------------- cmake/modules/FindFFMPEG.cmake | 12 ++++-- cmake/modules/FindLircClient.cmake | 36 ++++++++++++++++ cmake/modules/FindMariaDBClient.cmake | 69 ++++++++++++++++++++++++++++++ cmake/modules/FindMicroHttpd.cmake | 2 +- cmake/modules/FindMir.cmake | 2 +- cmake/modules/FindSSH.cmake | 2 +- cmake/modules/FindWaylandProtocols.cmake | 24 +++++++++++ cmake/modules/FindWaylandpp.cmake | 73 +++++++++++--------------------- cmake/modules/FindXkbcommon.cmake | 26 +++--------- 14 files changed, 197 insertions(+), 134 deletions(-) create mode 100644 cmake/modules/FindLircClient.cmake create mode 100644 cmake/modules/FindMariaDBClient.cmake create mode 100644 cmake/modules/FindWaylandProtocols.cmake (limited to 'cmake/modules') diff --git a/cmake/modules/FindAML.cmake b/cmake/modules/FindAML.cmake index 5b9a859..602f5d9 100644 --- a/cmake/modules/FindAML.cmake +++ b/cmake/modules/FindAML.cmake @@ -20,9 +20,23 @@ include(FindPackageHandleStandardArgs) find_package_handle_standard_args(AML REQUIRED_VARS AML_INCLUDE_DIR) +include(CheckCSourceCompiles) +set(CMAKE_REQUIRED_INCLUDES ${AML_INCLUDE_DIR}) +check_c_source_compiles("#include + + int main() + { + int i = VIDEO_DEC_FORMAT_VP9; + return 0; + } + " AML_HAS_VP9) + if(AML_FOUND) set(AML_INCLUDE_DIRS ${AML_INCLUDE_DIR}) set(AML_DEFINITIONS -DHAS_LIBAMCODEC=1) + if(AML_HAS_VP9) + list(APPEND AML_DEFINITIONS -DHAS_LIBAMCODEC_VP9=1) + endif() if(NOT TARGET AML::AML) add_library(AML::AML UNKNOWN IMPORTED) diff --git a/cmake/modules/FindAlsa.cmake b/cmake/modules/FindAlsa.cmake index bed4faa..ae05817 100644 --- a/cmake/modules/FindAlsa.cmake +++ b/cmake/modules/FindAlsa.cmake @@ -15,7 +15,7 @@ # ALSA::ALSA - The Alsa library if(PKG_CONFIG_FOUND) - pkg_check_modules(PC_ALSA alsa QUIET) + pkg_check_modules(PC_ALSA alsa>=1.0.27 QUIET) endif() find_path(ALSA_INCLUDE_DIR NAMES alsa/asoundlib.h diff --git a/cmake/modules/FindCdio.cmake b/cmake/modules/FindCdio.cmake index 64f4bb8..cce7f2a 100644 --- a/cmake/modules/FindCdio.cmake +++ b/cmake/modules/FindCdio.cmake @@ -14,7 +14,7 @@ # CDIO::CDIO - The cdio library if(PKG_CONFIG_FOUND) - pkg_check_modules(PC_CDIO libcdio libiso9660 QUIET) + pkg_check_modules(PC_CDIO libcdio>=0.78 libiso9660 QUIET) endif() find_path(CDIO_INCLUDE_DIR NAMES cdio/cdio.h diff --git a/cmake/modules/FindCpluff.cmake b/cmake/modules/FindCpluff.cmake index 913d7ae..9e29e17 100644 --- a/cmake/modules/FindCpluff.cmake +++ b/cmake/modules/FindCpluff.cmake @@ -6,8 +6,11 @@ # # and link Kodi against the cpluff libraries. -if(NOT WIN32) - find_package(EXPAT REQUIRED) +find_package(EXPAT REQUIRED) +if(CORE_SYSTEM_NAME MATCHES windows) + add_subdirectory(${CMAKE_SOURCE_DIR}/lib/cpluff) + set(CPLUFF_LIBRARIES $ ${EXPAT_LIBRARIES}) +else() 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}") @@ -31,7 +34,8 @@ if(NOT WIN32) --host=${ARCH} CFLAGS=${defines} CPPFLAGS=${cppflags} - LDFLAGS=${ldflags}) + LDFLAGS=${ldflags} + BUILD_BYPRODUCTS /lib/libcpluff.a) ExternalProject_Add_Step(libcpluff autoreconf DEPENDEES download update patch DEPENDERS configure @@ -39,24 +43,9 @@ if(NOT WIN32) COMMAND PATH=${NATIVEPREFIX}/bin:$ENV{PATH} autoreconf -vif WORKING_DIRECTORY ) - set(ldflags "${ldflags};-lexpat") - core_link_library(${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/cpluff/lib/libcpluff.a - system/libcpluff libcpluff extras "${ldflags}") - set(CPLUFF_INCLUDE_DIRS ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/cpluff/include) - set(CPLUFF_FOUND 1) - mark_as_advanced(CPLUFF_INCLUDE_DIRS CPLUFF_FOUND) -else() - find_path(CPLUFF_INCLUDE_DIR cpluff.h) - - include(FindPackageHandleStandardArgs) - find_package_handle_standard_args(Cpluff - REQUIRED_VARS CPLUFF_INCLUDE_DIR) - - if(CPLUFF_FOUND) - set(CPLUFF_INCLUDE_DIRS ${CPLUFF_INCLUDE_DIR}) - endif() - mark_as_advanced(CPLUFF_INCLUDE_DIRS CPLUFF_FOUND) - - add_custom_target(libcpluff) + set(CPLUFF_LIBRARIES ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/cpluff/lib/libcpluff.a ${EXPAT_LIBRARIES}) endif() +set(CPLUFF_INCLUDE_DIRS ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/cpluff/include) +set(CPLUFF_FOUND 1) +mark_as_advanced(CPLUFF_INCLUDE_DIRS CPLUFF_LIBRARIES) set_target_properties(libcpluff PROPERTIES FOLDER "External Projects") diff --git a/cmake/modules/FindCurl.cmake b/cmake/modules/FindCurl.cmake index d0759a6..17c1f01 100644 --- a/cmake/modules/FindCurl.cmake +++ b/cmake/modules/FindCurl.cmake @@ -34,40 +34,6 @@ if(CURL_FOUND) set(CURL_INCLUDE_DIRS ${CURL_INCLUDE_DIR}) set(CURL_LIBRARIES ${CURL_LIBRARY}) - # Check whether OpenSSL inside libcurl is static. - if(UNIX) - if(NOT DEFINED HAS_CURL_STATIC) - get_filename_component(CURL_LIBRARY_DIR ${CURL_LIBRARY} DIRECTORY) - find_soname(CURL REQUIRED) - - if(APPLE) - set(libchecker nm) - set(searchpattern "T [_]?CRYPTO_set_locking_call") - else() - set(libchecker readelf -s) - set(searchpattern "CRYPTO_set_locking_call") - endif() - execute_process( - COMMAND ${libchecker} ${CURL_LIBRARY_DIR}/${CURL_SONAME} - COMMAND grep -Eq ${searchpattern} - RESULT_VARIABLE HAS_CURL_STATIC) - unset(libchecker) - unset(searchpattern) - if(HAS_CURL_STATIC EQUAL 0) - set(HAS_CURL_STATIC TRUE) - else() - set(HAS_CURL_STATIC FALSE) - endif() - set(HAS_CURL_STATIC ${HAS_CURL_STATIC} CACHE INTERNAL - "OpenSSL is statically linked into Curl") - message(STATUS "OpenSSL is statically linked into Curl: ${HAS_CURL_STATIC}") - endif() - endif() - - if(HAS_CURL_STATIC) - set(CURL_DEFINITIONS -DHAS_CURL_STATIC=1) - endif() - if(NOT TARGET Curl::Curl) add_library(Curl::Curl UNKNOWN IMPORTED) set_target_properties(Curl::Curl PROPERTIES diff --git a/cmake/modules/FindFFMPEG.cmake b/cmake/modules/FindFFMPEG.cmake index 689cf28..e2fbe8d 100644 --- a/cmake/modules/FindFFMPEG.cmake +++ b/cmake/modules/FindFFMPEG.cmake @@ -67,7 +67,6 @@ endif() # external FFMPEG if(NOT ENABLE_INTERNAL_FFMPEG OR KODI_DEPENDSBUILD) if(FFMPEG_PATH) - set(ENV{PKG_CONFIG_PATH} "${FFMPEG_PATH}/lib/pkgconfig") list(APPEND CMAKE_PREFIX_PATH ${FFMPEG_PATH}) endif() @@ -236,8 +235,6 @@ if(NOT FFMPEG_FOUND) -DCROSSCOMPILING=${CMAKE_CROSSCOMPILING} -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} -DOS=${OS} - -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} - -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} -DCMAKE_AR=${CMAKE_AR}) endif() @@ -253,6 +250,9 @@ if(NOT FFMPEG_FOUND) -DCORE_PLATFORM_NAME=${CORE_PLATFORM_NAME_LC} -DCPU=${CPU} -DENABLE_NEON=${ENABLE_NEON} + -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} + -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} + -DENABLE_CCACHE=${ENABLE_CCACHE} -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS} -DCMAKE_EXE_LINKER_FLAGS=${CMAKE_EXE_LINKER_FLAGS} @@ -264,8 +264,12 @@ if(NOT FFMPEG_FOUND) ${CMAKE_SOURCE_DIR}/tools/depends/target/ffmpeg/FindGnuTls.cmake ) + find_program(BASH_COMMAND bash) + if(NOT BASH_COMMAND) + message(FATAL_ERROR "Internal FFmpeg requires bash.") + endif() file(WRITE ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/ffmpeg/ffmpeg-link-wrapper -"#!/bin/bash +"#!${BASH_COMMAND} if [[ $@ == *${APP_NAME_LC}.bin* || $@ == *${APP_NAME_LC}${APP_BINARY_SUFFIX}* || $@ == *${APP_NAME_LC}.so* || $@ == *${APP_NAME_LC}-test* ]] then avformat=`PKG_CONFIG_PATH=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/lib/pkgconfig ${PKG_CONFIG_EXECUTABLE} --libs --static libavcodec` diff --git a/cmake/modules/FindLircClient.cmake b/cmake/modules/FindLircClient.cmake new file mode 100644 index 0000000..528c38e --- /dev/null +++ b/cmake/modules/FindLircClient.cmake @@ -0,0 +1,36 @@ +# FindLircClient +# ----------- +# Finds the liblirc_client library +# +# This will will define the following variables:: +# +# LIRCCLIENT_FOUND - if false, do not try to link to lirc_client +# LIRCCLIENT_INCLUDE_DIRS - where to find lirc/lirc_client.h +# LIRCCLIENT_LIBRARYS - the library to link against +# LIRCCLIENT_DEFINITIONS - the lirc definitions + +if(PKG_CONFIG_FOUND) + pkg_check_modules(PC_LIRC lirc QUIET) +endif() + +find_path(LIRCCLIENT_INCLUDE_DIR lirc/lirc_client.h PATHS ${PC_LIRC_INCLUDEDIR}) +find_library(LIRCCLIENT_LIBRARY lirc_client PATHS ${PC_LIRC_LIBDIR}) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(LircClient + REQUIRED_VARS LIRCCLIENT_LIBRARY LIRCCLIENT_INCLUDE_DIR) + +if(LIRCCLIENT_FOUND) + set(LIRCCLIENT_LIBRARIES ${LIRCCLIENT_LIBRARY}) + set(LIRCCLIENT_INCLUDE_DIRS ${LIRCCLIENT_INCLUDE_DIR}) + set(LIRCCLIENT_DEFINITIONS -DHAS_LIRC=1) + + if(NOT TARGET LIRCCLIENT::LIRCCLIENT) + add_library(LIRCCLIENT::LIRCCLIENT UNKNOWN IMPORTED) + set_target_properties(LIRCCLIENT::LIRCCLIENT PROPERTIES + IMPORTED_LOCATION "${LIRCCLIENT_LIBRARYS}" + INTERFACE_INCLUDE_DIRECTORIES "${LIRCCLIENT_INCLUDE_DIRS}") + endif() +endif() + +mark_as_advanced(LIRCCLIENT_LIBRARY LIRCCLIENT_INCLUDE_DIR) \ No newline at end of file diff --git a/cmake/modules/FindMariaDBClient.cmake b/cmake/modules/FindMariaDBClient.cmake new file mode 100644 index 0000000..1e5e736 --- /dev/null +++ b/cmake/modules/FindMariaDBClient.cmake @@ -0,0 +1,69 @@ +#.rst: +# FindMariaDBClient +# --------------- +# Finds the MariaDBClient library +# +# This will will define the following variables:: +# +# MARIADBCLIENT_FOUND - system has MariaDBClient +# MARIADBCLIENT_INCLUDE_DIRS - the MariaDBClient include directory +# MARIADBCLIENT_LIBRARIES - the MariaDBClient libraries +# MARIADBCLIENT_DEFINITIONS - the MariaDBClient compile definitions +# +# and the following imported targets:: +# +# MariaDBClient::MariaDBClient - The MariaDBClient library + +# Don't find system wide installed version on Windows +if(WIN32) + set(EXTRA_FIND_ARGS NO_SYSTEM_ENVIRONMENT_PATH) +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 + PATH_SUFFIXES mariadb + ${EXTRA_FIND_ARGS}) +find_library(MARIADBCLIENT_LIBRARY_DEBUG NAMES mariadbclient libmariadb + PATH_SUFFIXES mariadb + ${EXTRA_FIND_ARGS}) + +if(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) +endif() + +include(SelectLibraryConfigurations) +select_library_configurations(MARIADBCLIENT) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(MariaDBClient + REQUIRED_VARS MARIADBCLIENT_LIBRARY MARIADBCLIENT_INCLUDE_DIR + VERSION_VAR MARIADBCLIENT_VERSION_STRING) + +if(MARIADBCLIENT_FOUND) + set(MARIADBCLIENT_LIBRARIES ${MARIADBCLIENT_LIBRARY}) + set(MARIADBCLIENT_INCLUDE_DIRS ${MARIADBCLIENT_INCLUDE_DIR}) + set(MARIADBCLIENT_DEFINITIONS -DHAS_MARIADB=1) + + if(NOT TARGET MariaDBClient::MariaDBClient) + add_library(MariaDBClient::MariaDBClient UNKNOWN IMPORTED) + if(MARIADBCLIENT_LIBRARY_RELEASE) + set_target_properties(MariaDBClient::MariaDBClient PROPERTIES + IMPORTED_CONFIGURATIONS RELEASE + IMPORTED_LOCATION "${MARIADBCLIENT_LIBRARY_RELEASE}") + endif() + if(MARIADBCLIENT_LIBRARY_DEBUG) + set_target_properties(MariaDBClient::MariaDBClient PROPERTIES + IMPORTED_CONFIGURATIONS DEBUG + IMPORTED_LOCATION "${MARIADBCLIENT_LIBRARY_DEBUG}") + endif() + set_target_properties(MariaDBClient::MariaDBClient PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${MARIADBCLIENT_INCLUDE_DIR}" + INTERFACE_COMPILE_DEFINITIONS HAS_MARIADB=1) + endif() +endif() + +mark_as_advanced(MARIADBCLIENT_INCLUDE_DIR MARIADBCLIENT_LIBRARY) diff --git a/cmake/modules/FindMicroHttpd.cmake b/cmake/modules/FindMicroHttpd.cmake index 232f8e5..d04878c 100644 --- a/cmake/modules/FindMicroHttpd.cmake +++ b/cmake/modules/FindMicroHttpd.cmake @@ -15,7 +15,7 @@ # MicroHttpd::MicroHttpd - The MicroHttpd library if(PKG_CONFIG_FOUND) - pkg_check_modules(PC_MICROHTTPD libmicrohttpd>=0.4 QUIET) + pkg_check_modules(PC_MICROHTTPD libmicrohttpd>=0.9.40 QUIET) endif() find_path(MICROHTTPD_INCLUDE_DIR NAMES microhttpd.h diff --git a/cmake/modules/FindMir.cmake b/cmake/modules/FindMir.cmake index 47a441c..e66ff02 100644 --- a/cmake/modules/FindMir.cmake +++ b/cmake/modules/FindMir.cmake @@ -21,7 +21,7 @@ find_library(MIR_LIBRARY NAMES mirclient PATHS ${PC_MIR_LIBRARIES} ${PC_MIR_LIBRARY_DIRS}) include (FindPackageHandleStandardArgs) -find_package_handle_standard_args (MIR +find_package_handle_standard_args (Mir REQUIRED_VARS MIR_LIBRARY MIR_INCLUDE_DIR) if (MIR_FOUND) diff --git a/cmake/modules/FindSSH.cmake b/cmake/modules/FindSSH.cmake index ee65210..bf3837e 100644 --- a/cmake/modules/FindSSH.cmake +++ b/cmake/modules/FindSSH.cmake @@ -15,7 +15,7 @@ # SSH::SSH - The SSH library if(PKG_CONFIG_FOUND) - pkg_check_modules(PC_SSH libssh QUIET) + pkg_check_modules(PC_SSH libssh>=0.6 QUIET) endif() find_path(SSH_INCLUDE_DIR NAMES libssh/libssh.h diff --git a/cmake/modules/FindWaylandProtocols.cmake b/cmake/modules/FindWaylandProtocols.cmake new file mode 100644 index 0000000..0b96ff0 --- /dev/null +++ b/cmake/modules/FindWaylandProtocols.cmake @@ -0,0 +1,24 @@ +# FindWaylandProtocols +# -------------------- +# Find wayland-protocols +# +# This will will define the following variables:: +# +# WAYLAND_PROTOCOLS_DIR - directory containing the additional Wayland protocols +# from the wayland-protocols package + +pkg_check_modules(PC_WAYLAND_PROTOCOLS wayland-protocols) +if(PC_WAYLAND_PROTOCOLS_FOUND) + pkg_get_variable(WAYLAND_PROTOCOLS_DIR wayland-protocols pkgdatadir) +endif() + +# Promote to cache variables so all code can access it +set(WAYLAND_PROTOCOLS_DIR ${WAYLAND_PROTOCOLS_DIR} CACHE INTERNAL "") + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(WaylandProtocols + REQUIRED_VARS + PC_WAYLAND_PROTOCOLS_FOUND + WAYLAND_PROTOCOLS_DIR + VERSION_VAR + PC_WAYLAND_PROTOCOLS_VERSION) diff --git a/cmake/modules/FindWaylandpp.cmake b/cmake/modules/FindWaylandpp.cmake index 8a1cd74..336e613 100644 --- a/cmake/modules/FindWaylandpp.cmake +++ b/cmake/modules/FindWaylandpp.cmake @@ -1,64 +1,39 @@ # 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() +# WAYLANDPP_FOUND - the system has waylandpp +# WAYLANDPP_INCLUDE_DIRS - the waylandpp include directory +# WAYLANDPP_LIBRARIES - the waylandpp libraries +# WAYLANDPP_DEFINITIONS - the waylandpp definitions +# WAYLANDPP_SCANNER - path to wayland-scanner++ + +pkg_check_modules(WAYLANDPP wayland-client++ wayland-egl++ wayland-cursor++) +pkg_check_modules(PC_WAYLANDPP_SCANNER wayland-scanner++) +if(WAYLANDPP_FOUND) + pkg_get_variable(PC_WAYLANDPP_PKGDATADIR wayland-client++ pkgdatadir) +endif() +if(PC_WAYLANDPP_SCANNER_FOUND) + pkg_get_variable(PC_WAYLANDPP_SCANNER wayland-scanner++ wayland_scannerpp) 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}) +# Promote to cache variables so all code can access it +set(WAYLANDPP_PROTOCOLS_DIR "${PC_WAYLANDPP_PKGDATADIR}/protocols" CACHE INTERNAL "") -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") +# wayland-scanner++ is from native/host system in case of cross-compilation, so +# it's ok if we don't find it with pkgconfig +find_program(WAYLANDPP_SCANNER wayland-scanner++ PATHS ${PC_WAYLANDPP_SCANNER}) include (FindPackageHandleStandardArgs) find_package_handle_standard_args (Waylandpp REQUIRED_VARS - WAYLANDPP_INCLUDE_DIR - WAYLANDPP_CLIENT_LIBRARY - WAYLANDPP_CURSOR_LIBRARY - WAYLANDPP_EGL_LIBRARY + WAYLANDPP_FOUND 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() + WAYLANDPP_wayland-client++_VERSION) -mark_as_advanced (WAYLANDPP_CLIENT_LIBRARY WAYLANDPP_CURSOR_LIBRARY WAYLANDPP_EGL_LIBRARY WAYLANDPP_INCLUDE_DIR) +set(WAYLANDPP_DEFINITIONS -DHAVE_WAYLAND=1) +# Also pass on library directories +set(WAYLANDPP_LIBRARIES ${WAYLANDPP_LDFLAGS}) diff --git a/cmake/modules/FindXkbcommon.cmake b/cmake/modules/FindXkbcommon.cmake index 88c6121..2a84fe5 100644 --- a/cmake/modules/FindXkbcommon.cmake +++ b/cmake/modules/FindXkbcommon.cmake @@ -9,27 +9,13 @@ # 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}) +pkg_check_modules (XKBCOMMON xkbcommon) include (FindPackageHandleStandardArgs) -find_package_handle_standard_args (XKBCOMMON +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() + XKBCOMMON_FOUND) -mark_as_advanced (XKBCOMMON_LIBRARY XKBCOMMON_INCLUDE_DIR) \ No newline at end of file +set(XKBCOMMON_DEFINITIONS -DHAVE_XKBCOMMON=1) +set(XKBCOMMON_LIBRARIES ${XKBCOMMON_LDFLAGS}) +set(XKBCOMMON_INCLUDE_DIRS ${XKBCOMMON_INCLUDEDIR}) -- cgit v1.2.3