Commit Graph

25 Commits (1369f558c69d29bba2fd756ba4f6c2ab350cf23f)

Author SHA1 Message Date
William Pitcock 7f6a185977 fragment: only munge if sysroot_dir is actually set
on cygwin/msys2, it is possible for munging to be enabled for other types of munging (instead of sysroot)
2017-01-13 19:55:54 -06:00
William Pitcock 4ba414f74a fragment: handle oddball fragments like -framework more accurately 2017-01-07 15:04:34 -06:00
William Pitcock 0c690dc891 libpkgconf: fragment: fix over-optimization of cflags/linker flags in edge cases involving non-standard options 2016-12-30 12:39:10 -06:00
William Pitcock ad1e414dee libpkgconf: fragment: handle -idirafter in the same way as -isystem
(https://bugs.freedesktop.org/show_bug.cgi?id=97337)
2016-12-30 02:47:42 -06:00
William Pitcock 6ef4a853b5 libpkgconf: migrate pkgconf client fragment_is_system_dir() to a libpkgconf API 2016-12-21 20:06:17 -06:00
William Pitcock c7e505fe44 libpkgconf: fragment: split out per-fragment length calculation and use it for all render functions (buffer overrun hardening) 2016-12-15 18:32:43 -06:00
William Pitcock 63b3989f24 libpkgconf: document fragment module 2016-12-15 18:27:57 -06:00
William Pitcock 8213d91038 libpkgconf: migrate to using the pkgconf_ namespaced strlcat/strlcpy symbols 2016-12-10 16:19:40 -06:00
William Pitcock 0ae2d8e5de fragment: fix off-by-one error in pkgconf_fragment_render_len() 2016-12-10 15:47:21 -06:00
William Pitcock d6d7ff775a main: use pkgconf_fragment_render() to render fragment lists instead of custom stuff 2016-12-09 23:07:15 -06:00
William Pitcock 0232ee52a3 libpkgconf: fragment: add pkgconf_fragment_filter() to selectively copy a fragment list using a filter function 2016-12-09 22:18:59 -06:00
William Pitcock 0baecbd165 libpkgconf: fragment: mark fragment objects const in several internal functions 2016-12-09 22:06:42 -06:00
William Pitcock a902203054 libpkgconf: fragment: simplify sysroot handling by using pkgconf_client_t.sysroot_dir presence 2016-12-09 21:36:59 -06:00
William Pitcock 8740c5cd55 libpkgconf: begin removing global state from libpkgconf library by introducing a "client" object which holds the state 2016-12-01 15:05:03 -06:00
William Pitcock ce165646de fragment: skip empty tokens (closes #99)
Due to the way that tokens are merged together for arguments which require explicit whitespace, an
empty token could result in a fragment like:

    {.type = 'I', .data = '/usr/include '}

Such a fragment would be treated differently than:

    {.type = 'I', .data = '/usr/include'}

This difference causes the compiler to include a system include path as part of the additional includes, thus
breaking things like include path shadowing, resulting in random build failures.  As such, we skip empty tokens
from the tokenizer as they do not have any relevance anyway.
2016-10-25 14:03:25 -05:00
William Pitcock b835d74d80 fragment: try to apply munging to all path-only fragments (#94) 2016-08-24 18:51:02 -05:00
William Pitcock f6c96fc3d1 fragment: add pkgconf_fragment_should_munge() to simplify the munging logic a bit (#94) 2016-08-24 18:39:42 -05:00
William Pitcock f72e1c6def fragment: genericize the fragment merge determination and add support for -isystem (closes #87) 2016-05-19 17:05:04 -05:00
William Pitcock 06a45f1b62 libpkgconf: clean up PKG_ERRF and PKGF_ defines 2015-09-06 11:45:00 -05:00
William Pitcock 571d9c756c libpkgconf: PKG_BUFSIZE becomes PKGCONF_BUFSIZE, remove unused PKG_MIN/PKG_MAX. 2015-09-06 11:29:56 -05:00
William Pitcock b17f264032 libpkgconf: move some utility funcs into pkgconf_ namespace 2015-09-06 10:48:24 -05:00
William Pitcock 61d5fc72c8 libpkgconf: move pkg_fragment to pkgconf_fragment namespace 2015-09-06 10:44:10 -05:00
William Pitcock 4c71b25d5d libpkgconf: move pkg_tuple to pkgconf_tuple namespace 2015-09-06 10:41:40 -05:00
William Pitcock cc2dcc1f5d libpkgconf: move pkg_node and pkg_list to pkgconf_node and pkgconf_list namespaces 2015-09-06 10:31:21 -05:00
William Pitcock a706b3dccc initial libtoolization for libpkgconf 2015-09-06 09:35:08 -05:00