William Pitcock
74d58d1b63
libpkgconf: pkg: cache solutions for already solved dependency graph nodes
...
in almost all cases, we partially solve the dependency graph multiple times, which
just wastes resources. if we record the solution to a given dependency node, further
iterations can make use of the previous solution without having to solve it again.
this is safe because all provides entries (including virtuals) are knowable prior to
solving the dependency graph the first time.
a nice side effect of this is that all packages are preloaded when querying
information about them (--cflags and related commands).
2017-12-05 17:34:01 -06:00
William Pitcock
44b4b126f3
libpkgconf: pkg: record which pkgconf_client_t owns each pkgconf_pkg_t object
2017-12-05 17:32:00 -06:00
William Pitcock
4c0cc29277
libpkgconf: pkg: add refcount debugging
2017-12-05 17:24:57 -06:00
William Pitcock
b6a56c8728
main: do not evaluate module paths for modules that are not really on disk ( closes #158 )
2017-12-02 21:14:43 -06:00
William Pitcock
b52d3819a2
main: add --modversion to --help output ( closes #157 )
2017-11-28 13:41:35 -06:00
William Pitcock
4589274c43
libpkgconf: start to remove PKGCONF_BUFSIZE allocations from the stack. ( closes #149 )
...
Patch by Karen Arutyunov.
2017-10-16 12:56:19 -05:00
William Pitcock
1297385762
libpkgconf: fragment: remove obsolete code in pkgconf_fragment_should_munge()
2017-10-16 12:51:59 -05:00
William Pitcock
36551cca83
libpkgconf: path: relocate the path before doing dedup checks ( closes #151 )
2017-10-16 11:30:22 -05:00
William Pitcock
3bc2e21dd1
libpkgconf: path: ensure entire buffer is zeroed before calling realpath() on it ( closes #150 )
2017-10-16 11:26:27 -05:00
Baptiste Daroussin
6985a179c1
libpkgconf: Fix issue when sysroot is '/'
...
If sysroot is /, simply do nothing.
This fixes #146
2017-10-11 17:05:35 +02:00
Baptiste Daroussin
4e50938e78
tests: add a test case for #146
2017-10-11 17:05:23 +02:00
✈ Graham ✈
a8a65c7f6c
Only add warnings and std flags if supported by compiler (autoconf) ( #145 )
...
* Only add warning and std flags if supported by compiler (autoconf)
* bundle AX_CHECK_COMPILE_FLAG macro from autoconf-archive
2017-09-26 12:27:52 -05:00
William Pitcock
301dc16909
makefile: helps to add the test to the actual testfile list
2017-09-24 14:22:56 -05:00
William Pitcock
e56fea66e4
travis: third time should be the charm
2017-09-24 14:15:04 -05:00
William Pitcock
5a10c6bb7b
travis: retry
2017-09-24 14:10:30 -05:00
William Pitcock
0d89bea9a8
travis: grrrrr
2017-09-24 14:06:06 -05:00
✈ Graham ✈
e9c2e6f127
Only add warning and std flags if supported by compiler ( #144 )
...
This fixes errors like those reported in #143 on Solaris
(and probably other platforms where gcc is not the native
compiler):
c99: -W option with unknown program all
This only fixes it for cmake, but presumably similar checks
could be added for autoconf as well.
2017-09-24 12:52:49 -05:00
William Pitcock
fae657101c
libpkgconf: argvsplit: handle double backslash case properly ( closes #140 )
2017-09-23 00:24:34 -05:00
William Pitcock
abe0f5c821
libpkgconf: fileio: fix quoting logic for double backslash case (ref #140 )
2017-09-23 00:19:16 -05:00
William Pitcock
db56c80d92
libpkgconf: fragment: add debug to document post-subst output to parser
2017-09-23 00:11:55 -05:00
William Pitcock
95b68f7c02
tests: add testcase for #140
2017-09-23 00:08:12 -05:00
William Pitcock
67dd48a343
libpkgconf: api: handle DLL_EXPORT libtool case on mingw ( closes #141 )
2017-09-23 00:00:43 -05:00
William Pitcock
24c1439d52
libpkgconf: stdinc: fix SIZE_FMT_SPECIFIER on mingw
2017-09-22 23:58:40 -05:00
William Pitcock
420c62e10c
libpkgconf: pkg: refactor parser harness to allow providing warnings, provide warning for improper fragment list
2017-09-19 21:58:54 -05:00
William Pitcock
7ced8d77ae
libpkgconf: fragment: pkgconf_fragment_parse: return false on parse failure
2017-09-19 21:48:53 -05:00
William Pitcock
72cf871421
tests: regress: add malformed quoting test
2017-09-19 21:35:18 -05:00
William Pitcock
7786554be2
libpkgconf: fragment: check pkgconf_argv_split() return value
2017-09-19 21:34:24 -05:00
William Pitcock
56101390ac
libpkgconf: fragment parsing: do not pass NULL to pkgconf_fragment_add()
2017-09-19 21:08:18 -05:00
William Pitcock
e9fd43caa7
libpkgconf: clean up header includes ( closes #137 )
2017-09-17 23:38:25 -05:00
William Pitcock
ebb4c73525
libpkgconf: client: resolve memory leak of filter lists ( closes #130 )
2017-09-13 15:02:57 -05:00
William Pitcock
ed63a31b7a
main: free fragment lists in apply_cflags/apply_libs() in all cases ( closes #131 )
2017-09-13 15:01:49 -05:00
William Pitcock
f808300a01
libpkgconf: pkg: some elements of virtual packages should be freed as they have heap-allocated portions ( closes #132 )
2017-09-13 14:56:10 -05:00
William Pitcock
9b55fc3c23
libpkgconf: cache: refactor the way package objects are marked as cached to avoid memory leaks ( #133 )
2017-09-13 14:41:19 -05:00
William Pitcock
048deb95b3
headers: add C++ wrappers ( closes #136 )
2017-09-13 14:35:28 -05:00
William Pitcock
b5da424ef7
stdinc: drop _GNU_SOURCE definition
2017-09-13 14:20:47 -05:00
William Pitcock
75074635bb
meson: install pkg.m4 to aclocal dir ( closes #124 )
2017-09-08 20:52:02 -05:00
William Pitcock
906fef8449
libpkgconf: fragment: mark some inline match tables as const
2017-09-08 20:09:12 -05:00
William Pitcock
b7839f6bb7
libpkgconf: pkg: pkgconf_pkg_scan_dir: remove unnecessary static declaration of filebuf
2017-09-08 20:06:52 -05:00
William Pitcock
2681c29edd
libpkgconf: pkg: determine_prefix: use caller-provided buffer for reentrancy
2017-09-08 20:04:49 -05:00
William Pitcock
adae70445a
libpkgconf: pkg: get_default_pkgconfig_path: use caller-supplied buffer for reentrancy
2017-09-08 20:01:34 -05:00
William Pitcock
1252d7ae6a
libpkgconf: dependency: make dependency_to_str() private, use a caller-supplied buffer for reentrancy
2017-09-08 19:53:52 -05:00
William Pitcock
615bab3df9
libpkgconf: pkg: pkgconf_pkg_report_graph_error(): move already_sent_notice to pkgconf_client_t
2017-09-08 19:48:31 -05:00
William Pitcock
b0ef708efc
libpkgconf: pkg: pkg_get_parent_dir(): use caller-supplied buffer instead of a static buffer to make reentrant
2017-09-08 19:23:04 -05:00
William Pitcock
b9dac13ef3
libpkgconf: tuple: pkgconf_tuple_parse(): remove unnecessary static buffer declaration
2017-09-08 19:17:38 -05:00
William Pitcock
47ce9765a8
libpkgconf: define SIZE_FMT_SPECIFIER on POSIX and Windows platforms and use it in place of %zu
...
The MSVCRT runtime as used on Windows does not support %zu, but instead recommends %Iu. As we want
to remain portable to other runtimes, even on Windows, we do not use %Iu, but instead expand it logically
to either %lu or %llu depending on if it's _WIN32 or _WIN64 headers.
On POSIX, we assume C99 support is available and always use %zu, as pkgconf has never supported anything
earlier than C99 officially.
Closes #125 .
2017-09-08 18:46:48 -05:00
William Pitcock
a6d6b88d14
libpkgconf: path: fix logic error in path relocation case when matching against a list ( closes #129 )
2017-09-08 18:27:04 -05:00
William Pitcock
9505213c1b
tuple: check expanded variables to see if a sysroot has been duplicated, and if so, remove the prepended sysroot.
...
This allows compatibility between legacy pkg-config's broken sysroot implementation and pkgconf's sysroot
implementation, by removing any prepended sysroot paths and preferencing the variable expansion sysroot path
we typically do instead.
Closes github #123 .
2017-07-16 17:37:41 -05:00
William Pitcock
95b4930aac
tests: add test for github #123
2017-07-16 17:33:42 -05:00
Maxin B. John
74666bff38
stdinc.h: fix build with mingw ( #122 )
...
Fixes this build error with mingw:
...
| compilation terminated.
| In file included from ../pkgconf-1.3.7/libpkgconf/libpkgconf.h:19:0,
| from ../pkgconf-1.3.7/libpkgconf/audit.c:16:
| ../pkgconf-1.3.7/libpkgconf/stdinc.h:36:12: fatal error: BaseTsd.h: No
such file or directory
| # include <BaseTsd.h>
Signed-off-by: Maxin B. John <maxin.john@intel.com>
2017-07-16 13:21:45 -05:00
William Pitcock
38cda5e584
autotools: replace PKGCONFIGDIR with PKG_DEFAULT_PATH
2017-06-24 12:45:44 -05:00