pkg-config: use sysroot path

This commit is contained in:
Jonas Karlman 2017-01-04 22:36:56 +01:00
parent f45f3f1e73
commit 5c926c42f3
2 changed files with 34 additions and 0 deletions

View File

@ -17,9 +17,12 @@ setup_toolchain() {
export CFLAGS="$TARGET_CFLAGS"
export CXXFLAGS="$TARGET_CXXFLAGS"
export LDFLAGS="$TARGET_LDFLAGS"
export PKG_CONFIG="$ROOT/$TOOLCHAIN/bin/pkg-config"
export PKG_CONFIG_PATH=""
export PKG_CONFIG_LIBDIR="$SYSROOT_PREFIX/usr/lib/pkgconfig:$SYSROOT_PREFIX/usr/share/pkgconfig"
export PKG_CONFIG_SYSROOT_DIR="$SYSROOT_PREFIX"
export PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1
export PKG_CONFIG_ALLOW_SYSTEM_LIBS=1
export CMAKE_CONF=$ROOT/$TOOLCHAIN/etc/cmake-$TARGET_NAME.conf
export CMAKE="cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_CONF -DCMAKE_INSTALL_PREFIX=/usr"
if [ ! -f $CMAKE_CONF ] ; then
@ -66,9 +69,12 @@ setup_toolchain() {
export CFLAGS="$HOST_CFLAGS"
export CXXFLAGS="$HOST_CXXFLAGS"
export LDFLAGS="$HOST_LDFLAGS"
export PKG_CONFIG="$ROOT/$TOOLCHAIN/bin/pkg-config"
export PKG_CONFIG_PATH=""
export PKG_CONFIG_LIBDIR="$ROOT/$TOOLCHAIN/lib/pkgconfig:$ROOT/$TOOLCHAIN/share/pkgconfig"
export PKG_CONFIG_SYSROOT_DIR=""
unset PKG_CONFIG_ALLOW_SYSTEM_CFLAGS
unset PKG_CONFIG_ALLOW_SYSTEM_LIBS
export CMAKE_CONF=$ROOT/$TOOLCHAIN/etc/cmake-$HOST_NAME.conf
export CMAKE="cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_CONF -DCMAKE_INSTALL_PREFIX=$ROOT/$TOOLCHAIN"
if [ ! -f $CMAKE_CONF ] ; then

View File

@ -0,0 +1,28 @@
diff -Naur a/pkg.c b/pkg.c
--- a/pkg.c 2016-02-26 17:56:52.000000000 +0100
+++ b/pkg.c 2017-01-02 19:48:34.000000000 +0100
@@ -468,11 +468,14 @@
Flag *flag = tmp->data;
char *tmpstr = flag->arg;
- if (pcsysrootdir != NULL && flag->type & (CFLAGS_I | LIBS_L)) {
+ if (pcsysrootdir != NULL && flag->type & (CFLAGS_I | LIBS_L) && strncmp(tmpstr+2, pcsysrootdir, strlen(pcsysrootdir)) != 0) {
g_string_append_c (str, '-');
g_string_append_c (str, tmpstr[1]);
g_string_append (str, pcsysrootdir);
g_string_append (str, tmpstr+2);
+ } else if (pcsysrootdir != NULL && strncmp(tmpstr, "/usr", 4) == 0 && strncmp(tmpstr, pcsysrootdir, strlen(pcsysrootdir)) != 0) {
+ g_string_append (str, pcsysrootdir);
+ g_string_append (str, tmpstr);
} else {
g_string_append (str, tmpstr);
}
@@ -1087,6 +1090,8 @@
{
if (str->len > 0)
g_string_append_c (str, ' ');
+ if (pcsysrootdir != NULL && (strcmp(varname, "includedir") == 0 || strcmp(varname, "libdir") == 0) && strncmp(var, pcsysrootdir, strlen(pcsysrootdir)) != 0)
+ g_string_append (str, pcsysrootdir);
g_string_append (str, var);
g_free (var);
}