Dylan Baker
96c61cbab0
libpkgconf: remove trailing ; from macro definition
...
GCC has a lovely bug (which I will report as soon as I have an account),
which causes -Wmisleading-indentation to miss cases of misleading
indentation after a `;;`, since the macro adds `;`, and in call cases
the caller also adds `;`, we end up with a double macro and gcc fails to
warn.
2022-08-03 12:03:15 -07:00
Ariadne Conill
6c70781aad
introduce PKG_CONFIG_PKGCONF1_SYSROOT_RULES for legacy pkgconf behavior
2022-07-26 18:00:22 +00:00
Ariadne Conill
f8aefea7ec
pkg: add flags argument to pkgconf_pkg_new_from_file
2022-07-26 17:13:15 +00:00
Ariadne Conill
297e18f2c8
tuple: add flags parameter to pkgconf_tuple_parse
2022-07-26 17:08:48 +00:00
Ariadne Conill
b0802cb3d1
Revert "pkgconf_pkg_parser_value_set(): fix code-path ordering bug."
...
This reverts commit 13fe4c8c58
.
2022-06-26 19:41:31 +00:00
Ariadne Conill
72e429ae70
tuple: use ${pc_sysrootdir} instead of client->sysroot_dir where relevant
2022-06-26 19:35:19 +00:00
Ariadne Conill
a61193c723
pkg: fix sysroot_dir logic for github 213
2022-06-26 19:16:00 +00:00
Ariadne Conill
d68a867dc0
tuple: fall back to using globals rather than preferring them
2022-06-26 19:15:07 +00:00
Ariadne Conill
fdd7d192e0
queue: fix ISO C conformance for fallthrough label
2022-06-26 18:39:00 +00:00
Ariadne Conill
a1a415111f
queue: handle pkgconf_pkg_verify_dependency failure while flattening
2022-06-26 18:09:22 +00:00
Ariadne Conill
9bc6d80e61
queue: push new unresolved dependencies to the front of the queue, rather than the tail
2022-06-26 18:06:04 +00:00
Ariadne Conill
fe4db3aad9
queue: skip dependency collection for root node
2022-06-26 18:04:42 +00:00
Ariadne Conill
5a82a259ac
queue: use maxdepth after flattening
2022-06-26 15:17:08 +00:00
Ariadne Conill
a416dc1fd6
queue: advance client serial when walking requires.private for flattening
2022-06-26 15:16:36 +00:00
Ariadne Conill
197fcadd4c
queue: add flattening code
2022-06-26 15:02:37 +00:00
Ariadne Conill
5817e8848f
pkg: track the number of hits a package has gotten while solving for dependencies
2022-06-26 07:22:56 +00:00
Ariadne Conill
6ae17bd0ef
pkg: split pkgconf_pkg_traverse into a serial-modifying version
2022-06-26 06:05:40 +00:00
Ariadne Conill
ffa0805d58
cache: use pkgconf_reallocarray stub
2022-06-26 04:38:02 +00:00
Ariadne Conill
c1579d381c
bsdstubs: add pkgconf_reallocarray
2022-06-26 04:37:18 +00:00
Ariadne Conill
4c76f6bf01
meson: check for reallocarray
...
it is needed for the new cache code
2022-06-26 04:33:47 +00:00
Ariadne Conill
464672404e
cache: refactor to use a continguous table and bsearch
...
cache functions are the hottest part of the pkgconf code when
profiled, by removing the linked list for lookups, we can turn
lookups into an O(k) operation
2022-06-26 04:30:35 +00:00
Dylan Baker
c0fa7879b2
libpkgconf: zero path lists after freeing
...
This is required to make the pointer safely re-usable after being freed,
otherwise the list still says that it has nodes, but they point nowhere.
This is particularly important for libpkgconf, if a caller needs to
re-enter the library after freeing a path in a static path (such as the
default personality)
2022-06-26 03:12:34 +00:00
Dylan Baker
2d201af326
libpkgconf: Add a helper to zero `pkgconf_list_t`s
2022-06-26 03:12:34 +00:00
Ariadne Conill
cf48b61a59
stdinc: include strings.h on POSIX
2022-02-21 04:42:26 -06:00
Ariadne Conill
0995e49977
Merge branch 'master' into readme-meson
2022-02-21 04:27:11 -06:00
Ariadne Conill
a45dbccc01
Merge pull request #242 from data-man/dirent_latest
...
Update dirent.h to latest
2022-02-21 04:25:36 -06:00
Ariadne Conill
c6cfca6730
Merge pull request #245 from dcbaker/submit/remove-const
...
libpkgconf: remove const modifier from error_handler data pointer
2022-02-21 04:25:26 -06:00
Dylan Baker
c581e24a67
personality: use an unsigned to track initializations
...
Instead of a bool. The latter will result in de-initing leaving the
library unable to init again, which works out for the cli, but is
problematic for other consumers (meson++ and muon).
v2: - Add docs that the functions are not thread safe
2022-02-14 21:22:05 -08:00
Dylan Baker
f5d6bb71f8
libpkgconf: remove const modifier from error_handler data pointer
...
Currently, the data pointer is `const void *`, which means that the
handler can't modify the data without casting away the constness.
2022-02-07 09:34:09 -08:00
data-man
b132ce8317
Update dirent.h to latest
2022-01-08 10:55:28 +05:00
Andrea Pappacoda
6109e06089
docs: mention Meson instead of CMake for Win build
...
Fixes #233
2021-12-11 14:49:19 +01:00
Ariadne Conill
2b82a4f63e
use a serial instead of PKGCONF_PKG_PROPF_SEEN
2021-10-07 00:27:32 -06:00
Ariadne Conill
7d8cc1e4ce
dependency: add pkgconf_dependency_copy()
2021-10-06 13:13:34 -06:00
Ariadne Conill
c547edd07f
deconst the client on pkgconf_dependency_add()
2021-10-06 11:52:18 -06:00
Ariadne Conill
4144d506bb
implement dependency refcounting
2021-10-06 11:48:37 -06:00
Ariadne Conill
8130dd159e
dependency: add pkgconf_dependency_free_one
2021-10-06 11:29:18 -06:00
Ariadne Conill
4b87e256d3
cache: clear package cache without using the refcounts
2021-08-17 15:29:55 -06:00
Ariadne Conill
df1b671c83
dependency: use dependency match owner with pkgconf_pkg_unref()
2021-08-17 15:18:47 -06:00
Ariadne Conill
78bcb17116
personality: do not perform path filtering on default SYSTEM_INCLUDE_PATHS and SYSTEM_LIBRARY_PATHS
...
This is not consistent with the way the personality files or environment variables
are handled.
Fixes #224 .
2021-07-24 20:06:55 -06:00
Ariadne Conill
ceece2c195
pkg: fix up comment about issue #213 workaround
2021-07-24 19:47:33 -06:00
Sandro Mani
ed86f2dda3
Don't prepend sysroot_dir if pkg-config file lies outside of sysroot_dir
2021-07-24 20:43:58 -05:00
Stone Tickle
d688a7bd03
implement pkgconf_cross_personality_deinit
2021-07-24 06:08:25 -05:00
midipix
13fe4c8c58
pkgconf_pkg_parser_value_set(): fix code-path ordering bug.
...
Prior to this commit, the code path responsible for prefix redefinition
(motivated by --define-prefix or otherwise) was visited more than
once, specifically since the check ignored pkg->owner->prefix_varname.
2021-06-18 14:42:41 -05:00
Christoph Reiter
4f73f6a1d6
Rework path handling on native Windows
...
The current approach was to parse the .pc and, detect the prefix, throw
everything together and at the end replace all \ with / to not produce invalid
escape sequences.
This has the problem that escaping in .pc files is ignored and no longer
possible. Also in case the prefix path has a space in it the result would be
invalid because of missing escaping.
This changes the following things:
* We no longer normalize values at the end. Instead we assume .pc files use "/"
as a directory separator or "\\", same format as under Unix. "\" alone no
longer works. This shouldn't be a problem since most build tools produce .pc
files with "/" like meson, cmake, autotools.
* When injecting the prefix at runtime we convert the prefix to use "/" and
escape spaces so that in combination with the .pc content the result is a
valid escaped path value again.
This patch has been used in MSYS2 for some months now.
See #212
2021-03-20 06:59:38 -08:00
Christoph Reiter
4be39c59fb
Remove usage of cygwin_conv_path() under cygwin/msys
...
This converted Unix paths to Windows paths, but all cygwin tools
work with Unix paths so this shouldn't be needed.
There is one use case if you use a cygwin pkgconf with a non-cygwin toolchain,
but pkgconf works reasonable well natively now so this shouldn't be needed
anymore and more likely leads to problems and confusion.
Both cygwin and msys have patched this out already:
* https://cygwin.com/git-cygwin-packages/?p=git/cygwin-packages/pkgconf.git;a=blob;f=pkgconf.cygport;h=e5d003f3f3dfc9e374b916974018022ad8d68852;hb=HEAD#l55
* a4bce0c294/pkgconf/PKGBUILD (L26)
2021-03-20 06:58:53 -08:00
Ariadne Conill
dbb6a232e5
path: don't use PATH_MAX, use PKGCONF_ITEM_SIZE * 4 for realpath buffer
2021-03-18 06:56:55 -06:00
Ariadne Conill
fd1b8ccca6
main: if PKG_CONFIG_FDO_SYSROOT_RULES is set, or DESTDIR matches PKG_CONFIG_SYSROOT_DIRS, disable the automatic sysroot rewriting
...
Closes #205 .
2021-03-18 06:22:11 -06:00
Ariadne Conill
008d706958
libpkgconf: personality: default: set want_default_static and want_default_pure to true on windows
2021-03-18 06:03:47 -06:00
Ariadne Conill
f9531ce9fe
add support for pkgconf_cross_personality_t.want_default_pure
2021-03-18 06:02:00 -06:00
Ariadne Conill
52d19e1b9e
libpkgconf: fileio: pkgconf_fgetline(): handle quoted=true when a comment introduction is encountered
...
Fixes #215 .
2021-03-18 05:45:41 -06:00