From 9968a211f92c2b4d5bd1fe004f16ec1c5f968dcd Mon Sep 17 00:00:00 2001 From: Leander Beernaert Date: Wed, 25 Mar 2020 13:43:33 +0100 Subject: CMake: Fix pkgconfig calls when cross-compiling When cross-compiling with CMake, before this patch pkgconfig calls would find libraries which are part of the host system and not the target system. The current approach used is based of the discussion present in https://gitlab.kitware.com/cmake/cmake/-/merge_requests/4478, and should be considered a temporary solution until the issue is properly addressed in upstream CMake. Change-Id: I535d4d48c2a5d34689082b80501b3b6ae30d7845 Reviewed-by: Alexandru Croitor --- CMakeLists.txt | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'CMakeLists.txt') diff --git a/CMakeLists.txt b/CMakeLists.txt index b11c4bd93b..7cf6e7cac3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,6 +4,16 @@ cmake_minimum_required(VERSION 3.15.0) # Run auto detection routines include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/QtAutoDetect.cmake) +if (CMAKE_CROSSCOMPILING AND CMAKE_SYSROOT) + # When cross compiling with CMake any calls to pkg_check_modules() will + # search into the host system instead of the target sysroot. + # The current work around is based on the discussion found at + # https://gitlab.kitware.com/cmake/cmake/-/merge_requests/4478 + set(ENV{PKG_CONFIG_DIR} "") + set(ENV{PKG_CONFIG_LIBDIR} "${CMAKE_SYSROOT}/usr/lib/${CMAKE_LIBRARY_ARCHITECTURE}/pkgconfig") + set(ENV{PKG_CONFIG_SYSROOT_DIR} ${CMAKE_SYSROOT}) +endif() + project(QtBase VERSION 6.0.0 DESCRIPTION "Qt Base Libraries" -- cgit v1.2.3