summaryrefslogtreecommitdiff
path: root/README.win32
blob: c5b7ba217597f2b9b93d0a42a674023a05f8db18 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
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.

Building pkg-config is now supported on Visual Studio/MSVC as well.  To
build it, you will need to have a glib installation.  Note that MSVC
builds of glib does not have a build-time dependency on pkg-config,
unlike the normal autotools builds.  The headers and libs either need to
be found in your default %INCLUDE% and %LIB% respectively, or they need
to be found in $(GLIB_PREFIX)\include and $(GLIB_PREFIX)\lib respectively;
please see Makefile.vc for adjusting $(GLIB_PREFIX) to suit your needs.
To build pkg-config with MSVC, run in a Visual Studio command prompt:

"nmake /f Makefile.vc CFG=release" (release builds) -or-
"nmake /f Makefile.vc CFG=debug" (debug builds)

The resulting pkg-config.exe will be found in [release|debug]\[win32|x64];
a 'clean' target is supported to clean up the build.  MSVC 2008
through 2015 is supported; older versions may work as well but is not
tested.  Note that building with the glib bundled with this source
distribution is not currently supported-the glib DLL and all of its
dependent DLLs are required at runtime.