William Pitcock
662957ca7d
libpkgconf: tuple: tighten quoting logic a bit
...
closes #12
2019-03-23 22:34:11 -05:00
William Pitcock
3afd14c49e
libpkgconf: path: use realpath(3) to deduplicate the search path
...
closes #24
2019-03-23 22:27:05 -05:00
William Pitcock
ba1f48e48e
libpkgconf: client: ensure PKG_CONFIG_LIBDIR being empty overrides the default search paths
...
closes #25
2019-03-23 22:18:40 -05:00
William Pitcock
183e68df39
libpkgconf: add LIBPKGCONF_VERSION macro
2019-01-14 13:52:04 -06:00
William Pitcock
6854265f28
libpkgconf: pkg: use pkgconf_fragment_copy_list() to clean up cflags gathering logic ( closes #20 )
2019-01-14 13:48:23 -06:00
William Pitcock
36a5b7acbd
libpkgconf: fragment: add pkgconf_fragment_copy_list()
2019-01-14 13:48:02 -06:00
William Pitcock
0ae52182c9
libpkgconf: pkg: clean up pkgconf_parser interactions ( closes #13 )
2019-01-14 13:11:59 -06:00
Ignacio Casal Quinteiro
2c05971029
Canonicalize paths before using them
...
This fixes a problem where on Windows the prefix would
not match if the prefix is generated with backslashes
and the rest of the variables use normal slashes
2018-09-17 16:31:25 +02:00
Ignacio Casal Quinteiro
9f17da92d2
On Windows the path prefix should be checked caseless
2018-09-17 15:41:27 +02:00
Ignacio Casal Quinteiro
c9dffb8570
Fix build on windows with meson
2018-09-17 15:41:27 +02:00
A. Wilcox
9b7affe0b1
tuple: Ensure buf length is always >= 1 in dequote
...
If a key is defined with no value, dequote will allocate a buffer with a
length of 0. Since the buffer's length is 0, any manipulation of its
content is UB.
Example .pc file:
prefix=/usr
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
xcflags=
xlibs= -lSM -lICE -lX11
Name: Obt
Description: Openbox Toolkit Library
Version: 3.6
Requires: glib-2.0 libxml-2.0
Libs: -L${libdir} -lobt ${xlibs}
Cflags: -I${includedir}/openbox/3.6 ${xcflags}
Output using pkgconf 1.5.2 on x86_64 Linux/musl:
% pkgconf --cflags obt-3.5
-I/usr/include/openbox/3.6 \�\\�I\�\ -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libxml2
2018-07-28 19:06:33 -05:00
Graham Ollis
fb08ae2bd2
environment variables for system paths should override compiled-in defaults
2018-06-25 06:36:57 -04:00
William Pitcock
6f05fec4b5
pkg: give a correctly sized vtable to the parser
2018-06-16 16:35:44 -05:00
William Pitcock
b46bb93cd1
libpkgconf: tuple: properly dequote tuples when added from the parser (closes legacy github bug #186 )
2018-06-14 16:12:04 -05:00
Graham Ollis
273d1d0461
use pkgconf_strlcpy
...
On Debian/Ubuntu I get:
CC libpkgconf/personality.lo
libpkgconf/personality.c: In function ‘load_personality_with_path’:
libpkgconf/personality.c:195:3: warning: implicit declaration of function ‘strlcpy’ [-Wimplicit-function-declaration]
strlcpy(pathbuf, path, sizeof pathbuf);
^~~~~~~
CC libpkgconf/parser.lo
CCLD libpkgconf.la
ar: `u' modifier ignored since `D' is the default (see `U')
CC cli/pkgconf-main.o
CC cli/pkgconf-getopt_long.o
CC cli/pkgconf-renderer-msvc.o
CCLD pkgconf
./.libs/libpkgconf.so: undefined reference to `strlcpy'
2018-06-14 14:46:34 -05:00
William Pitcock
3ccc4454d1
libpkgconf: personality: ensure the path list is properly initialized before searching for triplets
2018-05-10 13:36:22 -05:00
William Pitcock
40897f246b
libpkgconf: personality: remove const from the default personality, since it's not really const
2018-05-09 22:52:27 -05:00
William Pitcock
25b2105e93
libpkgconf: client: if tracing is disabled, don't try to trace
2018-05-09 22:52:07 -05:00
William Pitcock
e6ce6c8edd
libpkgconf: personality: fixups
2018-05-09 22:39:39 -05:00
William Pitcock
751348298b
libpkgconf: personality: fill in the rest of the personality parser
2018-05-09 22:08:28 -05:00
William Pitcock
1244f8f8e7
libpkgconf: refactor out the rfc822 message parser so that the cross-personality code can share it
2018-05-09 21:21:39 -05:00
William Pitcock
f702967d0a
libpkgconf: pkg: refactor pkgconf_pkg_new_from_file to prepare to factor out the rfc822 parser
2018-05-09 19:56:30 -05:00
William Pitcock
0f17a4f390
libpkgconf: pkg: mark owning client earlier, to allow for refactoring out the rfc822 parser
2018-05-09 19:33:12 -05:00
William Pitcock
9439b683ca
libpkgconf: personality: add stub cross personality loader
2018-05-09 19:27:53 -05:00
William Pitcock
6b0e346c28
libpkgconf: refactor building the dir lists into separate concerns
2018-05-09 17:07:26 -05:00
William Pitcock
854490c5b9
libpkgconf: add basic support for cross-compile personality objects
2018-05-09 16:54:21 -05:00
William Pitcock
43e8c7b44d
libpkgconf: path: add path list copying function
2018-05-09 16:35:21 -05:00
Leorize
f36ccc1d91
libpkgconf: add support for Haiku
...
client: use BELIBRARIES
On Haiku, BELIBRARIES is the equivalent to LIBRARY_PATH on many other
systems, while LIBRARY_PATH is instead the LD_LIBRARY_PATH of Haiku.
pkg: bootstrap package search paths with Haiku's find_paths
This commit adds build_default_pkgconfig_path. The function appends
to the list given the default pkgconfig paths, and will supersede
get_default_pkgconfig_path
2018-04-05 10:02:54 -05:00
William Pitcock
3f753fa3dd
libpkgconf: dependency: preference uncoloured nodes in event of a dependency collision
2018-03-18 19:03:18 -05:00
William Pitcock
7e9ed6922d
libpkgconf: pkg: skip over -I cflags from Requires.internal nodes when building a cflags list
2018-03-18 18:05:55 -05:00
William Pitcock
ad65bc4a71
libpkgconf: dependency: allow dependency nodes to be colored with traits
2018-03-18 18:03:33 -05:00
William Pitcock
f03ec3ff90
libpkgconf: add support for proposed Requires.internal extension
2018-03-18 15:46:53 -05:00
TingPing
a50bf726e0
Fix incorrect comment ( #178 )
2018-03-07 23:16:18 -06:00
TingPing
60c05f5621
Improve prefix rewriting on Windows ( #177 )
...
* cli: Default to rewriting prefix on Windows
This matches `pkg-config` behavior
* libpkgconf: Rewrite the prefix of all variables
2018-03-07 23:00:22 -06:00
TingPing
83eea876b0
meson: Fix defining PKGCONF_API ( #174 )
2018-03-06 23:27:54 -06:00
William Pitcock
0d52339141
libpkgconf: pkg: ensure the dependency node has a solution associated with it
...
Sometimes this did not happen, e.g. when using providers as the solution (ref #172 ).
2018-02-08 14:26:25 -06:00
William Pitcock
d5fd74d799
libpkgconf: fragment: revert the quoting changes, but not the lexing changes
...
a few strange edge cases are causing problems (closes #168 )
2018-01-22 15:13:14 -06:00
William Pitcock
4a09efe070
libpkgconf: pkg: fix harmless gcc7 compiler warning
2018-01-05 11:38:21 -06:00
William Pitcock
a42f265c07
libpkgconf: pkg: include system libdir and includedir search paths as variables in builtin packages ( closes #165 )
2017-12-21 02:19:21 -06:00
William Pitcock
cf96c562e1
libpkgconf: argvsplit: fix escape handling in tokenizer ( closes #163 )
2017-12-14 22:41:14 -06:00
William Pitcock
18abb4ccc1
libpkgconf: fragment: fix nitpick warning reported by MSVC ( closes #162 )
2017-12-13 11:18:25 -06:00
William Pitcock
e0bf4009cb
libpkgconf: pkg: rename pkgconf_pkg_t.requires to pkgconf_pkg_t.required ( closes #154 )
...
C++20 makes requires a keyword, so we need to not use it in headers.
2017-12-12 00:21:21 -06:00
William Pitcock
278a2bd667
libpkgconf: fragment: rework quoting and lexing ( closes #139 , #153 )
...
we now use POSIX-style quoting for all fragments. it is our belief that this is the
most optimal behaviour for portability, because all POSIX-compliant tools require
single-quotes to be considered as literal (closes #153 ).
because of this, we are able to remove some hacks on the lexer side which were there
to simulate pkg-config quoting, but were basically utterly wrong (closes #139 ).
2017-12-11 18:25:55 -06:00
William Pitcock
973aff21e9
libpkgconf: tuple: add some trace logging
2017-12-11 17:39:12 -06:00
William Pitcock
7274357565
libpkgconf: fragment: track merged fragments, as they should never be quoted
2017-12-10 00:39:39 -06:00
William Pitcock
cad2515be5
libpkgconf: fragment: there are no consumers of non-escaped rendered fragment lists, so deprecate the option
2017-12-10 00:36:20 -06:00
William Pitcock
d2b6983385
libpkgconf: cache: fix refcount issue exposed by recent depgraph solver changes
2017-12-08 13:39:40 -06:00
William Pitcock
19d91e90e5
libpkgconf: fragment: allow for overriding the default fragment rendering behaviour
2017-12-07 19:13:35 -06:00
William Pitcock
f7406afc5b
libpkgconf: pkg: do not mention PKG_CONFIG_SKIP_CONFLICTS env var when simplified errors are requested ( closes #134 )
2017-12-05 18:04:42 -06:00
William Pitcock
06abf28dab
libpkgconf: client: handle NULL client in pkgconf_trace calls
2017-12-05 17:46:57 -06:00