diff options
Diffstat (limited to 'CMake')
| -rw-r--r-- | CMake/FindCairo.cmake | 47 | ||||
| -rw-r--r-- | CMake/FindWayland.cmake | 62 | ||||
| -rw-r--r-- | CMake/FindXKBCommon.cmake | 34 | 
3 files changed, 143 insertions, 0 deletions
diff --git a/CMake/FindCairo.cmake b/CMake/FindCairo.cmake new file mode 100644 index 0000000..36c2809 --- /dev/null +++ b/CMake/FindCairo.cmake @@ -0,0 +1,47 @@ +# - Try to find the cairo library +# Once done this will define +# +#  CAIRO_FOUND - system has cairo +#  CAIRO_INCLUDE_DIRS - the cairo include directory +#  CAIRO_LIBRARIES - Link these to use cairo +# +# Define CAIRO_MIN_VERSION for which version desired. +# + +INCLUDE(FindPkgConfig) + +IF(Cairo_FIND_REQUIRED) +        SET(_pkgconfig_REQUIRED "REQUIRED") +ELSE(Cairo_FIND_REQUIRED) +        SET(_pkgconfig_REQUIRED "") +ENDIF(Cairo_FIND_REQUIRED) + +IF(CAIRO_MIN_VERSION) +        PKG_SEARCH_MODULE(CAIRO ${_pkgconfig_REQUIRED} cairo>=${CAIRO_MIN_VERSION}) +ELSE(CAIRO_MIN_VERSION) +        PKG_SEARCH_MODULE(CAIRO ${_pkgconfig_REQUIRED} cairo) +ENDIF(CAIRO_MIN_VERSION) + +IF(NOT CAIRO_FOUND AND NOT PKG_CONFIG_FOUND) +        FIND_PATH(CAIRO_INCLUDE_DIRS cairo.h) +        FIND_LIBRARY(CAIRO_LIBRARIES cairo) + +        # Report results +        IF(CAIRO_LIBRARIES AND CAIRO_INCLUDE_DIRS) +                SET(CAIRO_FOUND 1) +                IF(NOT Cairo_FIND_QUIETLY) +                        MESSAGE(STATUS "Found Cairo: ${CAIRO_LIBRARIES}") +                ENDIF(NOT Cairo_FIND_QUIETLY) +        ELSE(CAIRO_LIBRARIES AND CAIRO_INCLUDE_DIRS) +                IF(Cairo_FIND_REQUIRED) +                        MESSAGE(SEND_ERROR "Could not find Cairo") +                ELSE(Cairo_FIND_REQUIRED) +                        IF(NOT Cairo_FIND_QUIETLY) +                                MESSAGE(STATUS "Could not find Cairo") +                        ENDIF(NOT Cairo_FIND_QUIETLY) +                ENDIF(Cairo_FIND_REQUIRED) +        ENDIF(CAIRO_LIBRARIES AND CAIRO_INCLUDE_DIRS) +ENDIF(NOT CAIRO_FOUND AND NOT PKG_CONFIG_FOUND) + +# Hide advanced variables from CMake GUIs +MARK_AS_ADVANCED(CAIRO_LIBRARIES CAIRO_INCLUDE_DIRS) diff --git a/CMake/FindWayland.cmake b/CMake/FindWayland.cmake new file mode 100644 index 0000000..00c17a3 --- /dev/null +++ b/CMake/FindWayland.cmake @@ -0,0 +1,62 @@ +# Try to find Wayland on a Unix system +# +# This will define: +# +#   WAYLAND_FOUND       - True if Wayland is found +#   WAYLAND_LIBRARIES   - Link these to use Wayland +#   WAYLAND_INCLUDE_DIR - Include directory for Wayland +#   WAYLAND_DEFINITIONS - Compiler flags for using Wayland +# +# In addition the following more fine grained variables will be defined: +# +#   WAYLAND_CLIENT_FOUND  WAYLAND_CLIENT_INCLUDE_DIR  WAYLAND_CLIENT_LIBRARIES +#   WAYLAND_SERVER_FOUND  WAYLAND_SERVER_INCLUDE_DIR  WAYLAND_SERVER_LIBRARIES +#   WAYLAND_EGL_FOUND     WAYLAND_EGL_INCLUDE_DIR     WAYLAND_EGL_LIBRARIES +# +# Copyright (c) 2013 Martin Gräßlin <mgraesslin@kde.org> +# +# Redistribution and use is allowed according to the terms of the BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. + +IF (NOT WIN32) +  IF (WAYLAND_INCLUDE_DIR AND WAYLAND_LIBRARIES) +    # In the cache already +    SET(WAYLAND_FIND_QUIETLY TRUE) +  ENDIF () + +  # Use pkg-config to get the directories and then use these values +  # in the FIND_PATH() and FIND_LIBRARY() calls +  FIND_PACKAGE(PkgConfig) +  PKG_CHECK_MODULES(PKG_WAYLAND QUIET wayland-client wayland-server wayland-egl) + +  SET(WAYLAND_DEFINITIONS ${PKG_WAYLAND_CFLAGS}) + +  FIND_PATH(WAYLAND_CLIENT_INCLUDE_DIR  NAMES wayland-client.h HINTS ${PKG_WAYLAND_INCLUDE_DIRS}) +  FIND_PATH(WAYLAND_SERVER_INCLUDE_DIR  NAMES wayland-server.h HINTS ${PKG_WAYLAND_INCLUDE_DIRS}) +  FIND_PATH(WAYLAND_EGL_INCLUDE_DIR     NAMES wayland-egl.h    HINTS ${PKG_WAYLAND_INCLUDE_DIRS}) + +  FIND_LIBRARY(WAYLAND_CLIENT_LIBRARIES NAMES wayland-client   HINTS ${PKG_WAYLAND_LIBRARY_DIRS}) +  FIND_LIBRARY(WAYLAND_SERVER_LIBRARIES NAMES wayland-server   HINTS ${PKG_WAYLAND_LIBRARY_DIRS}) +  FIND_LIBRARY(WAYLAND_EGL_LIBRARIES    NAMES wayland-egl      HINTS ${PKG_WAYLAND_LIBRARY_DIRS}) + +  set(WAYLAND_INCLUDE_DIR ${WAYLAND_CLIENT_INCLUDE_DIR} ${WAYLAND_SERVER_INCLUDE_DIR} ${WAYLAND_EGL_INCLUDE_DIR}) + +  set(WAYLAND_LIBRARIES ${WAYLAND_CLIENT_LIBRARIES} ${WAYLAND_SERVER_LIBRARIES} ${WAYLAND_EGL_LIBRARIES}) + +  list(REMOVE_DUPLICATES WAYLAND_INCLUDE_DIR) + +  include(FindPackageHandleStandardArgs) + +  FIND_PACKAGE_HANDLE_STANDARD_ARGS(WAYLAND_CLIENT  DEFAULT_MSG  WAYLAND_CLIENT_LIBRARIES  WAYLAND_CLIENT_INCLUDE_DIR) +  FIND_PACKAGE_HANDLE_STANDARD_ARGS(WAYLAND_SERVER  DEFAULT_MSG  WAYLAND_SERVER_LIBRARIES  WAYLAND_SERVER_INCLUDE_DIR) +  FIND_PACKAGE_HANDLE_STANDARD_ARGS(WAYLAND_EGL     DEFAULT_MSG  WAYLAND_EGL_LIBRARIES     WAYLAND_EGL_INCLUDE_DIR) +  FIND_PACKAGE_HANDLE_STANDARD_ARGS(WAYLAND         DEFAULT_MSG  WAYLAND_LIBRARIES         WAYLAND_INCLUDE_DIR) + +  MARK_AS_ADVANCED( +        WAYLAND_INCLUDE_DIR         WAYLAND_LIBRARIES +        WAYLAND_CLIENT_INCLUDE_DIR  WAYLAND_CLIENT_LIBRARIES +        WAYLAND_SERVER_INCLUDE_DIR  WAYLAND_SERVER_LIBRARIES +        WAYLAND_EGL_INCLUDE_DIR     WAYLAND_EGL_LIBRARIES +  ) + +ENDIF () diff --git a/CMake/FindXKBCommon.cmake b/CMake/FindXKBCommon.cmake new file mode 100644 index 0000000..0f571ee --- /dev/null +++ b/CMake/FindXKBCommon.cmake @@ -0,0 +1,34 @@ +# - Try to find XKBCommon +# Once done, this will define +# +#   XKBCOMMON_FOUND - System has XKBCommon +#   XKBCOMMON_INCLUDE_DIRS - The XKBCommon include directories +#   XKBCOMMON_LIBRARIES - The libraries needed to use XKBCommon +#   XKBCOMMON_DEFINITIONS - Compiler switches required for using XKBCommon + +find_package(PkgConfig) +pkg_check_modules(PC_XKBCOMMON QUIET xkbcommon) +set(XKBCOMMON_DEFINITIONS ${PC_XKBCOMMON_CFLAGS_OTHER}) + +find_path(XKBCOMMON_INCLUDE_DIR +    NAMES xkbcommon/xkbcommon.h +    HINTS ${PC_XKBCOMMON_INCLUDE_DIR} ${PC_XKBCOMMON_INCLUDE_DIRS} +) + +find_library(XKBCOMMON_LIBRARY +    NAMES xkbcommon +    HINTS ${PC_XKBCOMMON_LIBRARY} ${PC_XKBCOMMON_LIBRARY_DIRS} +) + +set(XKBCOMMON_LIBRARIES ${XKBCOMMON_LIBRARY}) +set(XKBCOMMON_LIBRARY_DIRS ${XKBCOMMON_LIBRARY_DIRS}) +set(XKBCOMMON_INCLUDE_DIRS ${XKBCOMMON_INCLUDE_DIR}) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(XKBCommon DEFAULT_MSG +    XKBCOMMON_LIBRARY +    XKBCOMMON_INCLUDE_DIR +) + +mark_as_advanced(XKBCOMMON_LIBRARY XKBCOMMON_INCLUDE_DIR) +  | 
