aboutsummaryrefslogtreecommitdiff
path: root/find-modules
diff options
context:
space:
mode:
authorAlex Merry <alex.merry@kde.org>2014-11-07 12:26:48 +0000
committerAlex Merry <alex.merry@kde.org>2014-11-07 12:26:48 +0000
commit32c41706e06e96ab10b757ebe6337071db53fe43 (patch)
tree34787589382540628d66cf0529686b657ccd7c07 /find-modules
parent7e535b93cdbb7420d241c00cb9c0abf462ff59d8 (diff)
downloadextra-cmake-modules-32c41706e06e96ab10b757ebe6337071db53fe43.tar.gz
extra-cmake-modules-32c41706e06e96ab10b757ebe6337071db53fe43.tar.bz2
Do not skip searching for X11 and Wayland on Windows
While the search is unlikely to succeed on Windows, having different behaviour between the platforms (eg: find_package(Wayland REQUIRED) was not fatal on Windows, even though Wayland_FOUND would always be FALSE) is not ideal, and if someone did port them to Windows for some reason, the find modules should support that. If applications actually want different behaviour between platforms (like requiring a module on Unix, but not on Windows), they should implement that logic themselves (since they will have to deal with targets not being defined, etc, anyway). REVIEW: 120481
Diffstat (limited to 'find-modules')
-rw-r--r--find-modules/FindEGL.cmake146
-rw-r--r--find-modules/FindQtWaylandScanner.cmake37
-rw-r--r--find-modules/FindWayland.cmake110
-rw-r--r--find-modules/FindWaylandScanner.cmake37
-rw-r--r--find-modules/FindX11_XCB.cmake82
-rw-r--r--find-modules/FindXCB.cmake187
6 files changed, 283 insertions, 316 deletions
diff --git a/find-modules/FindEGL.cmake b/find-modules/FindEGL.cmake
index f1962b9a..99d268df 100644
--- a/find-modules/FindEGL.cmake
+++ b/find-modules/FindEGL.cmake
@@ -2,7 +2,7 @@
# FindEGL
# -------
#
-# Try to find EGL on a Unix system.
+# Try to find EGL.
#
# This will define the following variables:
#
@@ -65,90 +65,84 @@ if(CMAKE_MINIMUM_REQUIRED_VERSION VERSION_LESS 2.8.12)
message(AUTHOR_WARNING "Your project should require at least CMake 2.8.12 to use FindEGL.cmake")
endif()
-if(NOT WIN32)
- # 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_EGL QUIET egl)
+# 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_EGL QUIET egl)
- set(EGL_DEFINITIONS ${PKG_EGL_CFLAGS_OTHER})
+set(EGL_DEFINITIONS ${PKG_EGL_CFLAGS_OTHER})
- find_path(EGL_INCLUDE_DIR
- NAMES
- egl.h
- HINTS
- ${PKG_EGL_INCLUDE_DIRS}
- PATH_SUFFIXES
- EGL
- )
- find_library(EGL_LIBRARY
- NAMES
- EGL
- HINTS
- ${PKG_EGL_LIBRARY_DIRS}
- )
-
- # NB: We do *not* use the version information from pkg-config, as that
- # is the implementation version (eg: the Mesa version)
- if(EGL_INCLUDE_DIR)
- # egl.h has defines of the form EGL_VERSION_x_y for each supported
- # version; so the header for EGL 1.1 will define EGL_VERSION_1_0 and
- # EGL_VERSION_1_1. Finding the highest supported version involves
- # finding all these defines and selecting the highest numbered.
- file(READ "${EGL_INCLUDE_DIR}/egl.h" _EGL_header_contents)
- string(REGEX MATCHALL
- "[ \\t]EGL_VERSION_[0-9_]+"
- _EGL_version_lines
- "${_EGL_header_contents}"
- )
- unset(_EGL_header_contents)
- foreach(_EGL_version_line ${_EGL_version_lines})
- string(REGEX REPLACE
- "[ \\t]EGL_VERSION_([0-9_]+)"
- "\\1"
- _version_candidate
- "${_EGL_version_line}"
- )
- string(REPLACE "_" "." _version_candidate "${_version_candidate}")
- if(NOT DEFINED EGL_VERSION OR EGL_VERSION VERSION_LESS _version_candidate)
- set(EGL_VERSION "${_version_candidate}")
- endif()
- endforeach()
- unset(_EGL_version_lines)
- endif()
+find_path(EGL_INCLUDE_DIR
+ NAMES
+ egl.h
+ HINTS
+ ${PKG_EGL_INCLUDE_DIRS}
+ PATH_SUFFIXES
+ EGL
+)
+find_library(EGL_LIBRARY
+ NAMES
+ EGL
+ HINTS
+ ${PKG_EGL_LIBRARY_DIRS}
+)
- include(FindPackageHandleStandardArgs)
- find_package_handle_standard_args(EGL
- FOUND_VAR
- EGL_FOUND
- REQUIRED_VARS
- EGL_LIBRARY
- EGL_INCLUDE_DIR
- VERSION_VAR
- EGL_VERSION
+# NB: We do *not* use the version information from pkg-config, as that
+# is the implementation version (eg: the Mesa version)
+if(EGL_INCLUDE_DIR)
+ # egl.h has defines of the form EGL_VERSION_x_y for each supported
+ # version; so the header for EGL 1.1 will define EGL_VERSION_1_0 and
+ # EGL_VERSION_1_1. Finding the highest supported version involves
+ # finding all these defines and selecting the highest numbered.
+ file(READ "${EGL_INCLUDE_DIR}/egl.h" _EGL_header_contents)
+ string(REGEX MATCHALL
+ "[ \\t]EGL_VERSION_[0-9_]+"
+ _EGL_version_lines
+ "${_EGL_header_contents}"
)
-
- if(EGL_FOUND AND NOT TARGET EGL::EGL)
- add_library(EGL::EGL UNKNOWN IMPORTED)
- set_target_properties(EGL::EGL PROPERTIES
- IMPORTED_LOCATION "${EGL_LIBRARY}"
- INTERFACE_COMPILE_OPTIONS "${EGL_DEFINITIONS}"
- INTERFACE_INCLUDE_DIRECTORIES "${EGL_INCLUDE_DIR}"
+ unset(_EGL_header_contents)
+ foreach(_EGL_version_line ${_EGL_version_lines})
+ string(REGEX REPLACE
+ "[ \\t]EGL_VERSION_([0-9_]+)"
+ "\\1"
+ _version_candidate
+ "${_EGL_version_line}"
)
- endif()
-
- mark_as_advanced(EGL_LIBRARY EGL_INCLUDE_DIR)
+ string(REPLACE "_" "." _version_candidate "${_version_candidate}")
+ if(NOT DEFINED EGL_VERSION OR EGL_VERSION VERSION_LESS _version_candidate)
+ set(EGL_VERSION "${_version_candidate}")
+ endif()
+ endforeach()
+ unset(_EGL_version_lines)
+endif()
- # compatibility variables
- set(EGL_LIBRARIES ${EGL_LIBRARY})
- set(EGL_INCLUDE_DIRS ${EGL_INCLUDE_DIR})
- set(EGL_VERSION_STRING ${EGL_VERSION})
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(EGL
+ FOUND_VAR
+ EGL_FOUND
+ REQUIRED_VARS
+ EGL_LIBRARY
+ EGL_INCLUDE_DIR
+ VERSION_VAR
+ EGL_VERSION
+)
-else()
- message(STATUS "FindEGL.cmake cannot find EGL on Windows systems. Try finding WGL instead.")
- set(EGL_FOUND FALSE)
+if(EGL_FOUND AND NOT TARGET EGL::EGL)
+ add_library(EGL::EGL UNKNOWN IMPORTED)
+ set_target_properties(EGL::EGL PROPERTIES
+ IMPORTED_LOCATION "${EGL_LIBRARY}"
+ INTERFACE_COMPILE_OPTIONS "${EGL_DEFINITIONS}"
+ INTERFACE_INCLUDE_DIRECTORIES "${EGL_INCLUDE_DIR}"
+ )
endif()
+mark_as_advanced(EGL_LIBRARY EGL_INCLUDE_DIR)
+
+# compatibility variables
+set(EGL_LIBRARIES ${EGL_LIBRARY})
+set(EGL_INCLUDE_DIRS ${EGL_INCLUDE_DIR})
+set(EGL_VERSION_STRING ${EGL_VERSION})
+
include(FeatureSummary)
set_package_properties(EGL PROPERTIES
URL "https://www.khronos.org/egl/"
diff --git a/find-modules/FindQtWaylandScanner.cmake b/find-modules/FindQtWaylandScanner.cmake
index acd7e0b2..7fb8a009 100644
--- a/find-modules/FindQtWaylandScanner.cmake
+++ b/find-modules/FindQtWaylandScanner.cmake
@@ -2,7 +2,7 @@
# FindQtWaylandScanner
# --------------------
#
-# Try to find qtwaylandscanner on a Unix system.
+# Try to find qtwaylandscanner.
#
# If the qtwaylandscanner executable is not in your PATH, you can provide
# an alternative name or full path location with the ``QtWaylandScanner_EXECUTABLE``
@@ -87,29 +87,24 @@ include(${CMAKE_CURRENT_LIST_DIR}/ECMFindModuleHelpersStub.cmake)
ecm_find_package_version_check(QtWaylandScanner)
-if(NOT WIN32)
- # Find qtwaylandscanner
- find_program(QtWaylandScanner_EXECUTABLE NAMES qtwaylandscanner)
+# Find qtwaylandscanner
+find_program(QtWaylandScanner_EXECUTABLE NAMES qtwaylandscanner)
- include(FindPackageHandleStandardArgs)
- find_package_handle_standard_args(QtWaylandScanner
- FOUND_VAR
- QtWaylandScanner_FOUND
- REQUIRED_VARS
- QtWaylandScanner_EXECUTABLE
- )
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(QtWaylandScanner
+ FOUND_VAR
+ QtWaylandScanner_FOUND
+ REQUIRED_VARS
+ QtWaylandScanner_EXECUTABLE
+)
- mark_as_advanced(QtWaylandScanner_EXECUTABLE)
+mark_as_advanced(QtWaylandScanner_EXECUTABLE)
- if(NOT TARGET Wayland::QtScanner AND QtWaylandScanner_FOUND)
- add_executable(Wayland::QtScanner IMPORTED)
- set_target_properties(Wayland::QtScanner PROPERTIES
- IMPORTED_LOCATION "${QtWaylandScanner_EXECUTABLE}"
- )
- endif()
-else()
- message(STATUS "Wayland and QtWayland are not available on Windows.")
- set(QtWaylandScanner_FOUND FALSE)
+if(NOT TARGET Wayland::QtScanner AND QtWaylandScanner_FOUND)
+ add_executable(Wayland::QtScanner IMPORTED)
+ set_target_properties(Wayland::QtScanner PROPERTIES
+ IMPORTED_LOCATION "${QtWaylandScanner_EXECUTABLE}"
+ )
endif()
include(FeatureSummary)
diff --git a/find-modules/FindWayland.cmake b/find-modules/FindWayland.cmake
index 11716f04..490ab1be 100644
--- a/find-modules/FindWayland.cmake
+++ b/find-modules/FindWayland.cmake
@@ -2,7 +2,7 @@
# FindWayland
# -----------
#
-# Try to find Wayland on a Unix system.
+# Try to find Wayland.
#
# This is a component-based find module, which makes use of the COMPONENTS
# and OPTIONAL_COMPONENTS arguments to find_module. The following components
@@ -77,69 +77,63 @@ include(${CMAKE_CURRENT_LIST_DIR}/ECMFindModuleHelpersStub.cmake)
ecm_find_package_version_check(Wayland)
-if(NOT WIN32)
- set(Wayland_known_components
- Client
- Server
- Cursor
- Egl
- )
- foreach(_comp ${Wayland_known_components})
- string(TOLOWER "${_comp}" _lc_comp)
- set(Wayland_${_comp}_component_deps)
- set(Wayland_${_comp}_pkg_config "wayland-${_lc_comp}")
- set(Wayland_${_comp}_lib "wayland-${_lc_comp}")
- set(Wayland_${_comp}_header "wayland-${_lc_comp}.h")
- endforeach()
- set(Wayland_Egl_component_deps Client)
+set(Wayland_known_components
+ Client
+ Server
+ Cursor
+ Egl
+)
+foreach(_comp ${Wayland_known_components})
+ string(TOLOWER "${_comp}" _lc_comp)
+ set(Wayland_${_comp}_component_deps)
+ set(Wayland_${_comp}_pkg_config "wayland-${_lc_comp}")
+ set(Wayland_${_comp}_lib "wayland-${_lc_comp}")
+ set(Wayland_${_comp}_header "wayland-${_lc_comp}.h")
+endforeach()
+set(Wayland_Egl_component_deps Client)
- ecm_find_package_parse_components(Wayland
- RESULT_VAR Wayland_components
- KNOWN_COMPONENTS ${Wayland_known_components}
- )
- ecm_find_package_handle_library_components(Wayland
- COMPONENTS ${Wayland_components}
- )
+ecm_find_package_parse_components(Wayland
+ RESULT_VAR Wayland_components
+ KNOWN_COMPONENTS ${Wayland_known_components}
+)
+ecm_find_package_handle_library_components(Wayland
+ COMPONENTS ${Wayland_components}
+)
- # If pkg-config didn't provide us with version information,
- # try to extract it from wayland-version.h
- # (Note that the version from wayland-egl.pc will probably be
- # the Mesa version, rather than the Wayland version, but that
- # version will be ignored as we always find wayland-client.pc
- # first).
- if(NOT Wayland_VERSION)
- find_file(Wayland_VERSION_HEADER
- NAMES wayland-version.h
- HINTS ${Wayland_INCLUDE_DIRS}
+# If pkg-config didn't provide us with version information,
+# try to extract it from wayland-version.h
+# (Note that the version from wayland-egl.pc will probably be
+# the Mesa version, rather than the Wayland version, but that
+# version will be ignored as we always find wayland-client.pc
+# first).
+if(NOT Wayland_VERSION)
+ find_file(Wayland_VERSION_HEADER
+ NAMES wayland-version.h
+ HINTS ${Wayland_INCLUDE_DIRS}
+ )
+ mark_as_advanced(Wayland_VERSION_HEADER)
+ if(Wayland_VERSION_HEADER)
+ file(READ ${Wayland_VERSION_HEADER} _wayland_version_header_contents)
+ string(REGEX REPLACE
+ "^.*[ \\t]+WAYLAND_VERSION[ \\t]+\"([0-9.]*)\".*$"
+ "\\1"
+ Wayland_VERSION
+ "${_wayland_version_header_contents}"
)
- mark_as_advanced(Wayland_VERSION_HEADER)
- if(Wayland_VERSION_HEADER)
- file(READ ${Wayland_VERSION_HEADER} _wayland_version_header_contents)
- string(REGEX REPLACE
- "^.*[ \\t]+WAYLAND_VERSION[ \\t]+\"([0-9.]*)\".*$"
- "\\1"
- Wayland_VERSION
- "${_wayland_version_header_contents}"
- )
- unset(_wayland_version_header_contents)
- endif()
+ unset(_wayland_version_header_contents)
endif()
-
- find_package_handle_standard_args(Wayland
- FOUND_VAR
- Wayland_FOUND
- REQUIRED_VARS
- Wayland_LIBRARIES
- VERSION_VAR
- Wayland_VERSION
- HANDLE_COMPONENTS
- )
-
-else()
- message(STATUS "Wayland is not available on Windows.")
- set(Wayland_FOUND FALSE)
endif()
+find_package_handle_standard_args(Wayland
+ FOUND_VAR
+ Wayland_FOUND
+ REQUIRED_VARS
+ Wayland_LIBRARIES
+ VERSION_VAR
+ Wayland_VERSION
+ HANDLE_COMPONENTS
+)
+
include(FeatureSummary)
set_package_properties(Wayland PROPERTIES
URL "http://wayland.freedesktop.org"
diff --git a/find-modules/FindWaylandScanner.cmake b/find-modules/FindWaylandScanner.cmake
index 4cade50f..33c46f9b 100644
--- a/find-modules/FindWaylandScanner.cmake
+++ b/find-modules/FindWaylandScanner.cmake
@@ -2,7 +2,7 @@
# FindWaylandScanner
# ------------------
#
-# Try to find wayland-scanner on a Unix system.
+# Try to find wayland-scanner.
#
# If the wayland-scanner executable is not in your PATH, you can provide
# an alternative name or full path location with the ``WaylandScanner_EXECUTABLE``
@@ -79,29 +79,24 @@ include(${CMAKE_CURRENT_LIST_DIR}/ECMFindModuleHelpersStub.cmake)
ecm_find_package_version_check(WaylandScanner)
-if(NOT WIN32)
- # Find wayland-scanner
- find_program(WaylandScanner_EXECUTABLE NAMES wayland-scanner)
+# Find wayland-scanner
+find_program(WaylandScanner_EXECUTABLE NAMES wayland-scanner)
- include(FindPackageHandleStandardArgs)
- find_package_handle_standard_args(WaylandScanner
- FOUND_VAR
- WaylandScanner_FOUND
- REQUIRED_VARS
- WaylandScanner_EXECUTABLE
- )
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(WaylandScanner
+ FOUND_VAR
+ WaylandScanner_FOUND
+ REQUIRED_VARS
+ WaylandScanner_EXECUTABLE
+)
- mark_as_advanced(WaylandScanner_EXECUTABLE)
+mark_as_advanced(WaylandScanner_EXECUTABLE)
- if(NOT TARGET Wayland::Scanner AND WaylandScanner_FOUND)
- add_executable(Wayland::Scanner IMPORTED)
- set_target_properties(Wayland::Scanner PROPERTIES
- IMPORTED_LOCATION "${WaylandScanner_EXECUTABLE}"
- )
- endif()
-else()
- message(STATUS "Wayland is not available on Windows.")
- set(WaylandScanner_FOUND FALSE)
+if(NOT TARGET Wayland::Scanner AND WaylandScanner_FOUND)
+ add_executable(Wayland::Scanner IMPORTED)
+ set_target_properties(Wayland::Scanner PROPERTIES
+ IMPORTED_LOCATION "${WaylandScanner_EXECUTABLE}"
+ )
endif()
include(FeatureSummary)
diff --git a/find-modules/FindX11_XCB.cmake b/find-modules/FindX11_XCB.cmake
index 05d18d5a..eafa08e2 100644
--- a/find-modules/FindX11_XCB.cmake
+++ b/find-modules/FindX11_XCB.cmake
@@ -2,7 +2,7 @@
# FindX11_XCB
# -----------
#
-# Try to find the X11 XCB compatibility library on a Unix system
+# Try to find the X11 XCB compatibility library.
#
# This will define the following variables:
#
@@ -68,55 +68,49 @@ if(CMAKE_MINIMUM_REQUIRED_VERSION VERSION_LESS 2.8.12)
message(AUTHOR_WARNING "Your project should require at least CMake 2.8.12 to use FindX11_XCB.cmake")
endif()
-if(NOT WIN32)
- # 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_X11_XCB QUIET x11-xcb)
+# 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_X11_XCB QUIET x11-xcb)
- set(X11_XCB_DEFINITIONS ${PKG_X11_XCB_CFLAGS_OTHER})
- set(X11_XCB_VERSION ${PKG_X11_XCB_VERSION})
+set(X11_XCB_DEFINITIONS ${PKG_X11_XCB_CFLAGS_OTHER})
+set(X11_XCB_VERSION ${PKG_X11_XCB_VERSION})
- find_path(X11_XCB_INCLUDE_DIR
- NAMES X11/Xlib-xcb.h
- HINTS ${PKG_X11_XCB_INCLUDE_DIRS}
- )
- find_library(X11_XCB_LIBRARY
- NAMES X11-xcb
- HINTS ${PKG_X11_XCB_LIBRARY_DIRS}
- )
-
- include(FindPackageHandleStandardArgs)
- find_package_handle_standard_args(X11_XCB
- FOUND_VAR
- X11_XCB_FOUND
- REQUIRED_VARS
- X11_XCB_LIBRARY
- X11_XCB_INCLUDE_DIR
- VERSION_VAR
- X11_XCB_VERSION
- )
+find_path(X11_XCB_INCLUDE_DIR
+ NAMES X11/Xlib-xcb.h
+ HINTS ${PKG_X11_XCB_INCLUDE_DIRS}
+)
+find_library(X11_XCB_LIBRARY
+ NAMES X11-xcb
+ HINTS ${PKG_X11_XCB_LIBRARY_DIRS}
+)
- if(X11_XCB_FOUND AND NOT TARGET X11::XCB)
- add_library(X11::XCB UNKNOWN IMPORTED)
- set_target_properties(X11::XCB PROPERTIES
- IMPORTED_LOCATION "${X11_XCB_LIBRARY}"
- INTERFACE_COMPILE_OPTIONS "${X11_XCB_DEFINITIONS}"
- INTERFACE_INCLUDE_DIRECTORIES "${X11_XCB_INCLUDE_DIR}"
- )
- endif()
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(X11_XCB
+ FOUND_VAR
+ X11_XCB_FOUND
+ REQUIRED_VARS
+ X11_XCB_LIBRARY
+ X11_XCB_INCLUDE_DIR
+ VERSION_VAR
+ X11_XCB_VERSION
+)
- mark_as_advanced(X11_XCB_INCLUDE_DIR X11_XCB_LIBRARY)
+if(X11_XCB_FOUND AND NOT TARGET X11::XCB)
+ add_library(X11::XCB UNKNOWN IMPORTED)
+ set_target_properties(X11::XCB PROPERTIES
+ IMPORTED_LOCATION "${X11_XCB_LIBRARY}"
+ INTERFACE_COMPILE_OPTIONS "${X11_XCB_DEFINITIONS}"
+ INTERFACE_INCLUDE_DIRECTORIES "${X11_XCB_INCLUDE_DIR}"
+ )
+endif()
- # compatibility variables
- set(X11_XCB_LIBRARIES ${X11_XCB_LIBRARY})
- set(X11_XCB_INCLUDE_DIRS ${X11_XCB_INCLUDE_DIR})
- set(X11_XCB_VERSION_STRING ${X11_XCB_VERSION})
+mark_as_advanced(X11_XCB_INCLUDE_DIR X11_XCB_LIBRARY)
-else()
- message(STATUS "FindX11_XCB.cmake cannot find X11-XCB on Windows systems.")
- set(X11_XCB_FOUND FALSE)
-endif()
+# compatibility variables
+set(X11_XCB_LIBRARIES ${X11_XCB_LIBRARY})
+set(X11_XCB_INCLUDE_DIRS ${X11_XCB_INCLUDE_DIR})
+set(X11_XCB_VERSION_STRING ${X11_XCB_VERSION})
include(FeatureSummary)
set_package_properties(X11_XCB PROPERTIES
diff --git a/find-modules/FindXCB.cmake b/find-modules/FindXCB.cmake
index 76d69fd7..781b15c5 100644
--- a/find-modules/FindXCB.cmake
+++ b/find-modules/FindXCB.cmake
@@ -2,7 +2,7 @@
# FindXCB
# -------
#
-# Try to find XCB on a Unix system.
+# Try to find XCB.
#
# This is a component-based find module, which makes use of the COMPONENTS and
# OPTIONAL_COMPONENTS arguments to find_module. The following components are
@@ -85,103 +85,98 @@ include(${CMAKE_CURRENT_LIST_DIR}/ECMFindModuleHelpersStub.cmake)
ecm_find_package_version_check(XCB)
-if(NOT WIN32)
- # Note that this list needs to be ordered such that any component
- # appears after its dependencies
- set(XCB_known_components
- XCB
- RENDER
- SHAPE
- XFIXES
- SHM
- ATOM
- AUX
- COMPOSITE
- CURSOR
- DAMAGE
- DPMS
- DRI2
- DRI3
- EVENT
- EWMH
- GLX
- ICCCM
- IMAGE
- KEYSYMS
- PRESENT
- RANDR
- RECORD
- RENDERUTIL
- RES
- SCREENSAVER
- SYNC
- UTIL
- XEVIE
- XF86DRI
- XINERAMA
- XINPUT
- XKB
- XPRINT
- XTEST
- XV
- XVMC)
- # default component info: xcb components have fairly predictable
- # header files, library names and pkg-config names
- foreach(_comp ${XCB_known_components})
- string(TOLOWER "${_comp}" _lc_comp)
- set(XCB_${_comp}_component_deps XCB)
- set(XCB_${_comp}_pkg_config "xcb-${_lc_comp}")
- set(XCB_${_comp}_lib "xcb-${_lc_comp}")
- set(XCB_${_comp}_header "xcb/${_lc_comp}.h")
- endforeach()
- # exceptions
- set(XCB_XCB_component_deps)
- set(XCB_COMPOSITE_component_deps XCB XFIXES)
- set(XCB_DAMAGE_component_deps XCB XFIXES)
- set(XCB_IMAGE_component_deps XCB SHM)
- set(XCB_RENDERUTIL_component_deps XCB RENDER)
- set(XCB_XFIXES_component_deps XCB RENDER SHAPE)
- set(XCB_XVMC_component_deps XCB XV)
- set(XCB_XV_component_deps XCB SHM)
- set(XCB_XCB_pkg_config "xcb")
- set(XCB_XCB_lib "xcb")
- set(XCB_ATOM_header "xcb/xcb_atom.h")
- set(XCB_ATOM_lib "xcb-util")
- set(XCB_AUX_header "xcb/xcb_aux.h")
- set(XCB_AUX_lib "xcb-util")
- set(XCB_CURSOR_header "xcb/xcb_cursor.h")
- set(XCB_EVENT_header "xcb/xcb_event.h")
- set(XCB_EVENT_lib "xcb-util")
- set(XCB_EWMH_header "xcb/xcb_ewmh.h")
- set(XCB_ICCCM_header "xcb/xcb_icccm.h")
- set(XCB_IMAGE_header "xcb/xcb_image.h")
- set(XCB_KEYSYMS_header "xcb/xcb_keysyms.h")
- set(XCB_PIXEL_header "xcb/xcb_pixel.h")
- set(XCB_RENDERUTIL_header "xcb/xcb_renderutil.h")
- set(XCB_RENDERUTIL_lib "xcb-render-util")
- set(XCB_UTIL_header "xcb/xcb_util.h")
+# Note that this list needs to be ordered such that any component
+# appears after its dependencies
+set(XCB_known_components
+ XCB
+ RENDER
+ SHAPE
+ XFIXES
+ SHM
+ ATOM
+ AUX
+ COMPOSITE
+ CURSOR
+ DAMAGE
+ DPMS
+ DRI2
+ DRI3
+ EVENT
+ EWMH
+ GLX
+ ICCCM
+ IMAGE
+ KEYSYMS
+ PRESENT
+ RANDR
+ RECORD
+ RENDERUTIL
+ RES
+ SCREENSAVER
+ SYNC
+ UTIL
+ XEVIE
+ XF86DRI
+ XINERAMA
+ XINPUT
+ XKB
+ XPRINT
+ XTEST
+ XV
+ XVMC)
+# default component info: xcb components have fairly predictable
+# header files, library names and pkg-config names
+foreach(_comp ${XCB_known_components})
+ string(TOLOWER "${_comp}" _lc_comp)
+ set(XCB_${_comp}_component_deps XCB)
+ set(XCB_${_comp}_pkg_config "xcb-${_lc_comp}")
+ set(XCB_${_comp}_lib "xcb-${_lc_comp}")
+ set(XCB_${_comp}_header "xcb/${_lc_comp}.h")
+endforeach()
+# exceptions
+set(XCB_XCB_component_deps)
+set(XCB_COMPOSITE_component_deps XCB XFIXES)
+set(XCB_DAMAGE_component_deps XCB XFIXES)
+set(XCB_IMAGE_component_deps XCB SHM)
+set(XCB_RENDERUTIL_component_deps XCB RENDER)
+set(XCB_XFIXES_component_deps XCB RENDER SHAPE)
+set(XCB_XVMC_component_deps XCB XV)
+set(XCB_XV_component_deps XCB SHM)
+set(XCB_XCB_pkg_config "xcb")
+set(XCB_XCB_lib "xcb")
+set(XCB_ATOM_header "xcb/xcb_atom.h")
+set(XCB_ATOM_lib "xcb-util")
+set(XCB_AUX_header "xcb/xcb_aux.h")
+set(XCB_AUX_lib "xcb-util")
+set(XCB_CURSOR_header "xcb/xcb_cursor.h")
+set(XCB_EVENT_header "xcb/xcb_event.h")
+set(XCB_EVENT_lib "xcb-util")
+set(XCB_EWMH_header "xcb/xcb_ewmh.h")
+set(XCB_ICCCM_header "xcb/xcb_icccm.h")
+set(XCB_IMAGE_header "xcb/xcb_image.h")
+set(XCB_KEYSYMS_header "xcb/xcb_keysyms.h")
+set(XCB_PIXEL_header "xcb/xcb_pixel.h")
+set(XCB_RENDERUTIL_header "xcb/xcb_renderutil.h")
+set(XCB_RENDERUTIL_lib "xcb-render-util")
+set(XCB_UTIL_header "xcb/xcb_util.h")
- ecm_find_package_parse_components(XCB
- RESULT_VAR XCB_components
- KNOWN_COMPONENTS ${XCB_known_components}
- )
- ecm_find_package_handle_library_components(XCB
- COMPONENTS ${XCB_components}
- )
+ecm_find_package_parse_components(XCB
+ RESULT_VAR XCB_components
+ KNOWN_COMPONENTS ${XCB_known_components}
+)
+ecm_find_package_handle_library_components(XCB
+ COMPONENTS ${XCB_components}
+)
- find_package_handle_standard_args(XCB
- FOUND_VAR
- XCB_FOUND
- REQUIRED_VARS
- XCB_LIBRARIES
- VERSION_VAR
- XCB_VERSION
- HANDLE_COMPONENTS
- )
-else()
- message(STATUS "XCB is not available on Windows.")
- set(XCB_FOUND FALSE)
-endif()
+find_package_handle_standard_args(XCB
+ FOUND_VAR
+ XCB_FOUND
+ REQUIRED_VARS
+ XCB_LIBRARIES
+ VERSION_VAR
+ XCB_VERSION
+ HANDLE_COMPONENTS
+)
include(FeatureSummary)
set_package_properties(XCB PROPERTIES