pkg-config on Win32
This file describes pkg-config for "native" Win32. (On Cygwin,
pkg-config builds fine right out of the box. Cygwin is just another
Unix variant, as far as pkg-config is concerned.) I don't call this
"native" Win32 target MinGW, as pkg-config on Windows is supposed to
be useable also by MSVC users.
When pkg-config.exe is invoked, it uses the glib function
g_win32_get_package_installation_directory_of_module() to find the
directory it's being run from. It then adds the "lib" and "share"
subdirectories to the pkg-config search path unless PKG_CONFIG_LIBDIR is
set in the environment. This allows pkg-config to adjust to being
relocated on Windows.
For each .pc file encountered, pkg-config will replace the prefix
variable to the base of it's currently installed directory unless the
command line option --dont-define-prefix is set. It will take the .pc
directory and strip off either lib\pkgconfig or share\pkgconfig to
determine the prefix. This allows the paths encoded in .pc files at
build time to be replaced with appropriate values at runtime.
In order to use the output of pkg-config with MSVC, the option
--msvc-syntax can be used to convert UNIX style library output to
arguments that work with MSVC. This means -Lfoo will be converted to
/libpath:foo, and -lfoo will be converted to foo.lib.