Make pkg-config cross-compile aware

Introduce PKG_CONFIG_SYSROOT_DIR and PKG_CONFIG_LIBDIR for
cross-compilation environments

Change-Id: I859d55f125b18d6bdef0f1dfaeb43721b85d22f5
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
This commit is contained in:
Harald Fernengel 2011-10-19 15:36:33 +02:00 committed by Qt by Nokia
parent 7dc5973bf1
commit a0d1b99609
2 changed files with 22 additions and 4 deletions

View File

@ -1,5 +1,4 @@
# handle pkg-config files
isEmpty(PKG_CONFIG):PKG_CONFIG = pkg-config # keep consistent with qt_functions.prf too!
PKG_CONFIG = $$pkgConfigExecutable()
for(PKGCONFIG_LIB, $$list($$unique(PKGCONFIG))) {
# don't proceed if the .pro asks for a package we don't have!

View File

@ -192,14 +192,33 @@ defineTest(qtPrepareTool) {
export($$1)
}
defineReplace(pkgConfigExecutable) {
isEmpty(PKG_CONFIG) {
PKG_CONFIG = pkg-config
!isEmpty(PKG_CONFIG_SYSROOT_DIR) {
win32:isEmpty(MINGW_IN_SHELL):PKG_CONFIG = set PKG_CONFIG_SYSROOT_DIR=$$PKG_CONFIG_SYSROOT_DIR& $$PKG_CONFIG
else:PKG_CONFIG = PKG_CONFIG_SYSROOT_DIR=\"$$PKG_CONFIG_SYSROOT_DIR\" $$PKG_CONFIG
}
!isEmpty(PKG_CONFIG_LIBDIR) {
win32:isEmpty(MINGW_IN_SHELL):PKG_CONFIG = set PKG_CONFIG_LIBDIR=$$PKG_CONFIG_LIBDIR& $$PKG_CONFIG
else:PKG_CONFIG = PKG_CONFIG_LIBDIR=\"$$PKG_CONFIG_LIBDIR\" $$PKG_CONFIG
}
}
return($$PKG_CONFIG)
}
defineTest(packagesExist) {
# this can't be done in global scope here because qt_functions is loaded
# before the .pro is parsed, so if the .pro set PKG_CONFIG, we wouldn't know it
# yet. oops.
isEmpty(PKG_CONFIG):PKG_CONFIG = pkg-config # keep consistent with link_pkgconfig.prf! too
pkg_config = $$pkgConfigExecutable()
for(package, ARGS) {
!system($$PKG_CONFIG --exists $$package):return(false)
!system($$pkg_config --exists $$package):return(false)
}
return(true)