| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
This adds a set of NMake Makefiles that can be used to build pkg-config on
Windows using Visual Studio. Note that, since the Visual Studio builds of
GLib does not use pkg-config, this NMake Makefile set does not support the
build of the bundled GLib sources, instead, having GLib built beforehand
is required.
|
|
|
|
|
|
| |
This adds a pre-configured config.h(.win32.in) that can be used for builds
on Visual Studio, where autotools is normally not available, so that we
can build pkg-config on Visual Studio.
|
|
|
|
|
| |
Move the source listing into another Makefile module so that it can be
shared with other Makefile-based build mechanisms.
|
|
|
|
|
|
|
| |
Port the code to use the GDir APIs from dirent so that we don't have to
depend on a dirent implementation on platforms that do not have it, such
as Visual Studio, so that it is possible to build pkg-config out of the
box on any platform that is supported by GLib (and the bundled GLib).
|
| |
|
|
|
|
|
|
| |
Using # leaves the comments within the generated configure file, which
is just unnecessary bloat since no one would read the generated
configure file for the documentation of the macros.
|
|
|
|
|
| |
Note which release each macro was added in and cleanup the comments to
be more consistent between them.
|
|
|
|
|
|
| |
This was determined by counting the number of changes to pkg.m4 since
the initial serial number was added. The trailing comment is also
updated to have the version number substituted.
|
|
|
|
|
|
|
|
|
|
| |
While PKG_PROG_PKG_CONFIG checks the version of pkg-config available at
build time, it doesn't check the version of the pkg-config macros being
used. PKG_PREREQ (like AC_PREREQ or LT_PREREQ) can be used to check the
version of the macros in use when configure is being generated by the
developer.
https://bugs.freedesktop.org/show_bug.cgi?id=89267
|
|
|
|
|
| |
Currently there are no substitutions needed in pkg.m4, but this will
allow autoconf values such as the package version to be included.
|
|
|
|
|
|
|
| |
In case a reinstall is being performed, ensure than an existing host
tool is overwritten.
https://bugs.freedesktop.org/show_bug.cgi?id=90437
|
|
|
|
|
|
| |
https://bugs.freedesktop.org/show_bug.cgi?id=90078
Signed-off-by: Peter Jones <pjones@redhat.com>
|
|
|
|
|
|
|
|
|
| |
Wine outputs the paths with carriage returns, which later breaks
commands they're used in. Hopefully this doesn't break the msys case,
but I think it should be safe enough. Really this needs general handling
of Windows paths instead of ad hoc fixes, but that's for another day.
https://bugs.freedesktop.org/show_bug.cgi?id=66939
|
|
|
|
|
|
|
| |
Makes the output consistent regardless of how glib puts together the
variables hash table.
https://bugs.freedesktop.org/show_bug.cgi?id=66939
|
|
|
|
|
|
|
|
|
| |
Since we unquote variables on printing, we want to quote in before adding
to the database. For all other variables defined in .pc files, we assume
that the user has quoted the variable correctly.
This was broken with the fix for bug 67904, but seems to only affect
Windows builds.
|
| |
|
|
|
|
|
|
| |
Rather than responding to the pcfiledir variable specially, store it
in the hash table with all the other package specific variables. This
does result in pcfiledir showing up in the --print-variables output.
|
|
|
|
|
|
|
|
|
|
|
| |
The goal is for pkgname to hold the name without the trailing ".pc"
extension (according to the meaning of EXT_LEN as used in the
ends_in_dotpc() function). But the malloc is hardcoded as 2. If the
extension were to be changed, the number of characters being strncpy'ed
would not match the size of the target buffer. Instead, the malloc
should use the EXT_LEN token (adjusted for the trailing \0).
Freedesktop #80378 (https://bugs.freedesktop.org/show_bug.cgi?id=80378)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This allows the --debug output to follow the actual order of the
directories specified in the path.
$ PKG_CONFIG_PATH=/nosuch1:/nosuch2:/dir-with-foo.pc
$ pkg-config --debug foo
[...]
Path position of 'foo' is 1
With this change, the path position above would be 3, matching the
position in PKG_CONFIG_PATH.
Freedesktop #80380 (https://bugs.freedesktop.org/show_bug.cgi?id=80380)
|
|
|
|
|
|
|
|
|
| |
Provide developers a way to check their .pc files prior to release. This
works the same as --exists except that package dependencies are not
processed. That allows the .pc file to be checked in complete isolation
of others.
Freedesktop #7000 (https://bugs.freedesktop.org/show_bug.cgi?id=7000)
|
|
|
|
|
|
| |
This loop was changed from a while loop to a for loop in commit
9bf6277b, but the iterator is now advanced twice each time round the
loop.
|
|
|
|
|
|
|
|
|
| |
Automake has a nice parallel test driver available since 1.12 which
became the default in 1.13. Unfortunately, it breaks the pkg-config
testsuite, so we need to ensure the serial test driver is used. On 1.12,
we can specify the option 'serial-tests', but this doesn't exist on
1.11. Kludge around this by detecting if the automake version is less
than 1.12 and leaving the option out in that case.
|
|
|
|
|
| |
The Mandriva wiki is just being archived now, so point to the active
OpenMandriva article instead.
|
|
|
|
|
|
| |
With the newly added glib.mk, some of the noinst_* variables need to use
+= in the evaluation to avoid multiple definition warnings from
automake.
|
|
|
|
|
|
|
|
| |
This is the latest stable release from upstream. Patches have been
refreshed, including putting the removal of most pkg-config checks into
the glib-only patch. A few more files, most notably the large NEWS file,
have also been removed from the repo to keep the size of the snapshot
down.
|
|
|
|
|
|
|
|
|
|
| |
Seems incredibly unlikely this would ever be an issue, but it's easy
enough to fix it. I fear for the Glib/GObject world where this is a
standard design pattern.
https://www.securecoding.cert.org/confluence/display/seccode/DCL37-C.+Do+not+declare+or+define+a+reserved+identifier
Freedesktop #70690 (https://bugs.freedesktop.org/show_bug.cgi?id=70690)
|
|
|
|
|
|
|
| |
Treat -isystem specially like -idirafter so that multiple arguments
retain the preceding -isystem.
Freedesktop #72584 (https://bugs.freedesktop.org/show_bug.cgi?id=72584)
|
|
|
|
|
| |
Expand the special flags test to check -framework usage and the handling
of multiple arguments.
|
|
|
|
| |
Freedesktop #66155 (https://bugs.freedesktop.org/show_bug.cgi?id=66155)
|
|
|
|
|
|
|
|
|
| |
If a --variable is requested, make sure to remove the quoting since it's
likely the value will be used verbatim in shell command substitution. If
the quotes remain in the value, they'd get embedded in the shell
variable, too.
Freedesktop #67904 (https://bugs.freedesktop.org/show_bug.cgi?id=67904)
|
|
|
|
|
|
|
|
| |
pkg-config leaves a trailing space on the flags output as it may have to
do multiple iterations to collect all output and adding the space makes
concatenation simple. However, this leaves a trailing space on the full
returned string unless it's empty. Strip the trailing space after all
the processing is complete.
|
|
|
|
|
|
|
|
| |
When pkg-config redefines the .pc file's prefix variable, it will be in
the platform's native format. Convert the expected results as
necessary. This only affects the relocatable test because it explicitly
sets --define-prefix or uses .pc files in a pkgconfig/ directory. Other
tests do not have their prefixes redefined for this reason.
|
| |
|
|
|
|
|
| |
scan_dir() alters the directory name in place on Win32 to convert \ to
/, so it can't be treated as const.
|
|
|
|
|
|
|
|
| |
PKG_CHECK_MODULES_STATIC is a convenience autoconf macro wrapping
PKG_CHECK_MODULES with --static enabled. This gives developers a way to
get static linking information from a specific set of modules.
Freedesktop #19541 (https://bugs.freedesktop.org/show_bug.cgi?id=19541)
|
|
|
|
|
|
|
|
|
|
|
| |
Normally, the parser will exit immediately when it encounters errors in
.pc files. This is good most of the time, but for --list-all, the
purpose is to just get a quick list of packages and not to validate .pc
files. This is especially the case for pkg-config wrappers such as the
Ruby or Bash completion modules that scrape the output from --list-all
and don't expect to encounter errors there.
Freedesktop #26615 (https://bugs.freedesktop.org/show_bug.cgi?id=26615)
|
|
|
|
|
|
|
| |
When listing all packages, the purpose is to get a quick look at what's
installed and not to scrutinize the validity of each .pc file. To see
errors from the parser during --list-all, the user can just add
--print-errors.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Upstream rpm has some convenience inline functions for strcmp and the
character class functions. Define some macros here to make our code look
more like upstream despite being the same functionally.
One difference noted while investigating the inline functions in
upstream is that the rpm character class functions are slightly
different from the standard functions. The rpm functions are independent
of locale, unlike the libc routines. pkg-config should probably do the
same and could easily use the g_ascii_is* macros from glib.
|
|
|
|
|
|
|
|
|
|
|
| |
strcmp is only guaranteed to return !0 when the strings are unmatched
while rpmvercmp says it will return only -1 or 1 in those cases.
pkg-config currently only checks for !0, so this doesn't actually fix
any issues here. However, this is harmless and helps minimize the diff
with upstream rpmvercmp.
http://rpm.org/gitweb?p=rpm.git;a=commitdiff;h=ee64849e
|
|
|
|
|
| |
No changes to code, only to comments and formatting so that diff with
upstream rpmvercmp is reduced.
|
|
|
|
|
|
|
| |
The rpmvercmp code is taken directly from upstream. Moving it to a
separate file allows it to be diffed and synced easily with the upstream
version. It also becomes really easy to switch to the actual rpmlib
version if that's ever desired.
|
|
|
|
|
|
|
| |
Exercise the ${pcfiledir} and --define-prefix features for allowing
relocation of packages. The --define-prefix test .pc files are put in a
pkgconfig subdirectory since the feature will only be enabled in that
situation.
|
|
|
|
|
|
| |
Define all the autoconf build directories besides srcdir, which is
required to run the test scripts and set by "make check", and builddir,
which is always assumed to be ".".
|
|
|
|
|
|
|
|
|
|
|
| |
The derived variables pcfiledir, pc_top_builddir and pc_sysrootdir were
lacking in documentation. Rework the "QUERYING PKG-CONFIG'S DEFAULTS"
section to describe these and pc_path.
The example of using "pkg-config --modversion pkg-config" was removed
since it's superfluous to "pkg-config --version".
Freedesktop #62018 (https://bugs.freedesktop.org/show_bug.cgi?id=62018)
|
|
|
|
|
|
|
|
| |
Allowing pkg-config to override the prefix variable in .pc files is a
useful feature for making packages relocatable. There's nothing Windows
specific about it.
Freedesktop #63602 (https://bugs.freedesktop.org/show_bug.cgi?id=63602)
|
|
|
|
|
| |
This has been available on glib since 2.5.4, and pkg-config requires at
least 2.16.
|
|
|
|
|
| |
Avoids making implicit assumptions about parse ordering needed to store
the original prefix as a static file local variable.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The prefix redefinition feature on Windows to make packages relocatable
was being confined only to locations where the .pc file was in a
directory ending in lib/pkgconfig or share/pkgconfig. This is too
restrictive as it's quite common for the libdir to have a different name
such as lib64. This keeps the convention that the feature will only be
enabled when the .pc file is in a pkgconfig directory, and it continues
to define the prefix to the grandparent of the pkgconfig directory.
The path handling is switched over to standard glib functions
g_path_get_basename and g_path_get_dirname to avoid handrolled handling
of Windows paths.
|
|
|
|
|
|
|
|
|
|
|
| |
Currently the native Win32 builds default to redefining the prefix
variable in .pc files based on their installation paths. This behavior
is not always desired when pkg-config is being used in a traditional
fixed path environment (e.g., /mingw like /usr).
Allow the default to be set via configure switch
--enable/disable-define-prefix, and allow it to be set both ways at
runtime through the --[dont-]define-prefix pkg-config option.
|
|
|
|
| |
It's been a long time that $datadir/pkgconfig was in the default path.
|