mirror of
https://gitlab.freedesktop.org/pkg-config/pkg-config.git
synced 2026-05-01 17:17:58 +02:00
Author: tml Date: 2001-10-27 17:55:11 GMT 2001-10-27 Tor Lillqvist <tml@iki.fi> New Win32 feature to make pkg-config useful for users of MSVC: with the flag --msvc-syntax, munge -L and -l flags appropriately for the MSVC command-line compiler. (-I flags are the same.) * README.win32: Update. * main.c (main): Add --msvc-syntax flag. * pkg-config.1: Document it. * pkg.h: Declare msvc_syntax. * parse.c (parse_libs): Obey msvc_syntax.
50 lines
2.5 KiB
Text
50 lines
2.5 KiB
Text
pkg-config on Win32
|
|
===================
|
|
|
|
This file describes pkg-config for "pure" Win32. (With Cygwin,
|
|
pkg-config 0.8.0 builds fine right out of the box. Cygwin is just
|
|
another Unix variant, as far as pkg-config is concerned.) I don't to
|
|
call this "pure" Win32 target mingw, as pkg-config is usable also by
|
|
MSVC users.
|
|
|
|
There should be no compile-time paths built into the executable of
|
|
pkg-config. Likewise, not in the libraries it describes either.
|
|
|
|
pkg-config uses some optional entries in the Registry: Firstly, the
|
|
path to the pkgconfig installation prefix. This can be either
|
|
user-specific in HKCU\Software\pkgconfig\InstallationDirectory or for
|
|
the whole machine in HKLM\Software\pkgconfig\InstallationDirectory.
|
|
|
|
If pkg-config.exe is invoked from the "bin" subdirectory of a
|
|
directory with a lib/pkgconfig subdirectory, no Registry entry is even
|
|
needed, as pkgconfig figures out the directory by itself. (The
|
|
g_win32_get_package_installation_directory() function in GLib.)
|
|
|
|
Additionally, in addition to the PKG_CONFIG_PATH environment
|
|
variables, any string value in the Registry key
|
|
HKLM\Software\pkgconfig\PKG_CONFIG_PATH (or HKCU\...) is assumed to be
|
|
a directory name and is searched for .pc files.
|
|
|
|
When pkg-config is invoked on Windows, it tries to set the "prefix"
|
|
variable for each .pc file read to "top" of the directory tree where
|
|
the .pc file is located. This is done only if the .pc file is in a
|
|
path that ends in "lib/pkgconfig". Thus, if an end-user (developer)
|
|
installs headers, import libraries and .pc files in the normal
|
|
subdirectories under some random directory, everything should just
|
|
work, even if the .pc file for that software doesn't know the true
|
|
directory name, but contains the path used on the packager's
|
|
site. This works as long as the .pc file uses the variable name
|
|
"prefix" for its installation prefix. At least GLib, ATK, Pango and
|
|
GTK does this.
|
|
|
|
On Unix, pkg-config is built using its own copy of GLib 1.2.8. On
|
|
Windows, we use the normal GLib available for Windows (1.3.10
|
|
currently). Yes, this does introduce a circular dependency, but that
|
|
can be worked around. The circular dependency only appears if one uses
|
|
the configure mechanism to build GLib. GLib's configure script checks
|
|
for pkg-config. pkg-config depends on GLib. Thus, starting from
|
|
scratch, with no GLib and no pkg-config, using configure, there would
|
|
indeed be a Catch-22 situation. However, GLib can be built just fine
|
|
using the manually written makefiles for mingw or MSVC. And if
|
|
somebody does want to build GLib on Win32 using configure, she can
|
|
first install a prebuilt pkgconfig.
|