Force CMake to look for static versions of xcb components

Add the USE_XCB_<component>_STATIC switches that force using the
static versions of xcb components if necessary.

The xcb components needs to be built with -fPIC option, to make the
static linking possible.

When Qt is built staticaly USE_XCB_<component>_STATIC needs to be
passed to the application command line, since in static case xcb
libraries are resolved and linked when configuring application, but
not when building Qt.

Pick-to: 6.7 6.6 6.5
Task-number: QTBUG-120769
Change-Id: I274e9cf4a6a111dc87ad84bb7f49cad76a3d364a
Reviewed-by: Liang Qi <liang.qi@qt.io>
This commit is contained in:
Alexey Edelev 2024-01-19 12:24:10 +01:00 committed by Liang Qi
parent b211d8a8c0
commit 6ce6ff1c52

View File

@ -137,6 +137,9 @@ foreach(_comp ${XCB_known_components})
set(XCB_${_comp}_pkg_config "xcb-${_lc_comp}")
set(XCB_${_comp}_lib "xcb-${_lc_comp}")
set(XCB_${_comp}_header "xcb/${_lc_comp}.h")
if(USE_XCB_${_comp}_STATIC)
set(XCB_${_comp}_lib "lib${XCB_${_comp}_lib}.a")
endif()
endforeach()
# exceptions
set(XCB_XCB_component_deps)