summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Nicholson <dbn.lists@gmail.com>2012-12-08 19:57:17 -0800
committerDan Nicholson <dbn.lists@gmail.com>2012-12-08 19:57:17 -0800
commit454dd17b30aa32a37a36ba2065988cd40bc4598d (patch)
tree0cc9172939b70ddeecd7df0cd0e423b586d06fe8
parent30245b2a8918de7cf3ed9e96fbb19e6a0c8cb2aa (diff)
downloadpkg-config-454dd17b30aa32a37a36ba2065988cd40bc4598d.tar.gz
Update README.win32 to reflect current pkg-config behavior
Freedesktop #54427 (https://bugs.freedesktop.org/show_bug.cgi?id=54427)
-rw-r--r--README.win3245
1 files changed, 16 insertions, 29 deletions
diff --git a/README.win32 b/README.win32
index fb84e8f..320efab 100644
--- a/README.win32
+++ b/README.win32
@@ -7,34 +7,21 @@ 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.
-There should be no compile-time paths built into the executable of
-pkg-config. Likewise, not in the libraries it describes either.
+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.
-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.
+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.
-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.
-
---Tor Lillqvist <tml@iki.fi>
+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.