diff options
-rw-r--r-- | find-modules/FindXCB.cmake | 20 | ||||
-rw-r--r-- | modules/ECMFindModuleHelpers.cmake | 7 |
2 files changed, 22 insertions, 5 deletions
diff --git a/find-modules/FindXCB.cmake b/find-modules/FindXCB.cmake index b2a800f7..d530d2d7 100644 --- a/find-modules/FindXCB.cmake +++ b/find-modules/FindXCB.cmake @@ -18,7 +18,8 @@ # XKB XPRINT XTEST XV XVMC # # If no components are specified, this module will act as though all components -# were passed to OPTIONAL_COMPONENTS. +# except XINPUT (which is considered unstable) were passed to +# OPTIONAL_COMPONENTS. # # This module will define the following variables, independently of the # components searched for or found: @@ -57,7 +58,7 @@ #============================================================================= # Copyright 2011 Fredrik Höglund <fredrik@kde.org> # Copyright 2013 Martin Gräßlin <mgraesslin@kde.org> -# Copyright 2014 Alex Merry <alex.merry@kde.org> +# Copyright 2014-2015 Alex Merry <alex.merry@kde.org> # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions @@ -125,7 +126,13 @@ set(XCB_known_components XPRINT XTEST XV - XVMC) + XVMC +) + +# XINPUT is unstable; do not include it by default +set(XCB_default_components ${XCB_known_components}) +list(REMOVE_ITEM XCB_default_components "XINPUT") + # default component info: xcb components have fairly predictable # header files, library names and pkg-config names foreach(_comp ${XCB_known_components}) @@ -165,7 +172,14 @@ set(XCB_UTIL_header "xcb/xcb_util.h") ecm_find_package_parse_components(XCB RESULT_VAR XCB_components KNOWN_COMPONENTS ${XCB_known_components} + DEFAULT_COMPONENTS ${XCB_default_components} ) + +list(FIND XCB_components "XINPUT" _XCB_XINPUT_index) +if (NOT _XCB_XINPUT_index EQUAL -1) + message(AUTHOR_WARNING "XINPUT from XCB was requested: this is EXPERIMENTAL and is likely to unavailable on many systems!") +endif() + ecm_find_package_handle_library_components(XCB COMPONENTS ${XCB_components} ) diff --git a/modules/ECMFindModuleHelpers.cmake b/modules/ECMFindModuleHelpers.cmake index 63cccb93..2044efe1 100644 --- a/modules/ECMFindModuleHelpers.cmake +++ b/modules/ECMFindModuleHelpers.cmake @@ -122,7 +122,7 @@ endmacro() macro(ecm_find_package_parse_components module_name) set(ecm_fppc_options SKIP_DEPENDENCY_HANDLING) set(ecm_fppc_oneValueArgs RESULT_VAR) - set(ecm_fppc_multiValueArgs KNOWN_COMPONENTS) + set(ecm_fppc_multiValueArgs KNOWN_COMPONENTS DEFAULT_COMPONENTS) cmake_parse_arguments(ECM_FPPC "${ecm_fppc_options}" "${ecm_fppc_oneValueArgs}" "${ecm_fppc_multiValueArgs}" ${ARGN}) if(ECM_FPPC_UNPARSED_ARGUMENTS) @@ -134,6 +134,9 @@ macro(ecm_find_package_parse_components module_name) if(NOT ECM_FPPC_KNOWN_COMPONENTS) message(FATAL_ERROR "Missing KNOWN_COMPONENTS argument to ecm_find_package_parse_components") endif() + if(NOT ECM_FPPC_DEFAULT_COMPONENTS) + set(ECM_FPPC_DEFAULT_COMPONENTS ${ECM_FPPC_KNOWN_COMPONENTS}) + endif() if(${module_name}_FIND_COMPONENTS) set(ecm_fppc_requestedComps ${${module_name}_FIND_COMPONENTS}) @@ -178,7 +181,7 @@ macro(ecm_find_package_parse_components module_name) return() endif() else() - set(${ECM_FPPC_RESULT_VAR} ${ECM_FPPC_KNOWN_COMPONENTS}) + set(${ECM_FPPC_RESULT_VAR} ${ECM_FPPC_DEFAULT_COMPONENTS}) endif() endmacro() |