12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- From abc7a780f2a52a1aa3ee288e17140b817b545cc3 Mon Sep 17 00:00:00 2001
- From: Gustavo Zacarias <gustavo@zacarias.com.ar>
- Date: Mon, 2 Nov 2015 18:38:00 -0300
- Subject: [PATCH] Fix all-variables sysroot prefix problem
- According to the pkg-config specifications (or rather documentation)
- only the -L/-I directory entries should be sysroot-prefixed.
- We also need to prefix the mapdir/sdkdir variables since they're used by
- xorg and expected that way.
- Also allow prefixing for includedir and libdir since in some silly cases
- the directories may be requested barebones via pkg-config
- --variable=includedir libfool for example.
- Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
- ---
- main.c | 17 ++++++++++++-----
- 1 file changed, 12 insertions(+), 5 deletions(-)
- diff --git a/main.c b/main.c
- index 6947126..52d16c2 100644
- --- a/main.c
- +++ b/main.c
- @@ -313,9 +313,12 @@ print_variable(pkg_t *pkg, void *data, unsigned int flags)
- memset(req->buf, 0, sizeof(req->buf));
-
- if (*var == '/' && (flags & PKGF_MUNGE_SYSROOT_PREFIX) &&
- - (sysroot_dir != NULL && strncmp(var, sysroot_dir, strlen(sysroot_dir))))
- - strlcat(req->buf, sysroot_dir, sizeof(req->buf));
- -
- + (sysroot_dir != NULL && strncmp(var, sysroot_dir, strlen(sysroot_dir))) &&
- + (!strcmp(req->variable, "includedir") || \
- + !strcmp(req->variable, "libdir") || \
- + !strcmp(req->variable, "mapdir") || \
- + !strcmp(req->variable, "sdkdir")))
- + strlcat(req->buf, sysroot_dir, sizeof(req->buf));
- strlcat(req->buf, var, sizeof(req->buf));
- return;
- }
- @@ -323,8 +326,12 @@ print_variable(pkg_t *pkg, void *data, unsigned int flags)
- strlcat(req->buf, " ", sizeof(req->buf));
-
- if (*var == '/' && (flags & PKGF_MUNGE_SYSROOT_PREFIX) &&
- - (sysroot_dir != NULL && strncmp(var, sysroot_dir, strlen(sysroot_dir))))
- - strlcat(req->buf, sysroot_dir, sizeof(req->buf));
- + (sysroot_dir != NULL && strncmp(var, sysroot_dir, strlen(sysroot_dir))) &&
- + (!strcmp(req->variable, "includedir") || \
- + !strcmp(req->variable, "libdir") || \
- + !strcmp(req->variable, "mapdir") || \
- + !strcmp(req->variable, "sdkdir")))
- + strlcat(req->buf, sysroot_dir, sizeof(req->buf));
-
- strlcat(req->buf, var, sizeof(req->buf));
- }
- --
- 2.4.10
|