diff options
author | Alex Merry <alex.merry@kde.org> | 2014-11-07 12:26:48 +0000 |
---|---|---|
committer | Alex Merry <alex.merry@kde.org> | 2014-11-07 12:26:48 +0000 |
commit | 32c41706e06e96ab10b757ebe6337071db53fe43 (patch) | |
tree | 34787589382540628d66cf0529686b657ccd7c07 /find-modules/FindWayland.cmake | |
parent | 7e535b93cdbb7420d241c00cb9c0abf462ff59d8 (diff) | |
download | extra-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/FindWayland.cmake')
-rw-r--r-- | find-modules/FindWayland.cmake | 110 |
1 files changed, 52 insertions, 58 deletions
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" |