Correctly add XCB components if no components are requested

This commit fixes the FindXCB.cmake module for the case no components
are requested. The previous version assigned `XCB_FIND_COMPONENTS`
list to an empty variable name.

I was lucky enough to catch the bug in a corner case where both
`XCB_COMPONENTS` and `XCB_FIND_COMPONENTS` were empty and `set()`
command failed, but note this awesome CMake language supports more annoying
corner cases like `XCB_COMPONENTS` empty and `XCB_FIND_COMPONENTS`
with two elements, which results in the following `set()` invocation:

``` cmake
set(${XCB_FIND_COMPONENTS[0]} ${XCB_FIND_COMPONENTS[1]})
```

So always beware of CMake secret charms...
This commit is contained in:
Manu343726 2016-07-27 12:30:59 +02:00 committed by Lukas Dürrenberger
parent ca03b646ef
commit 9558c6d689

View File

@ -68,7 +68,7 @@ IF(NOT WIN32)
endif() endif()
ELSE() ELSE()
# Add component name to the component list # Add component name to the component list
set(${XCB_COMPONENTS} ${XCB_FIND_COMPONENTS}) set(XCB_COMPONENTS ${XCB_FIND_COMPONENTS})
ENDIF() ENDIF()
# Loop through requested xcb components (does not contain xlib_xcb) # Loop through requested xcb components (does not contain xlib_xcb)