mirror of
https://gitlab.freedesktop.org/pkg-config/pkg-config.git
synced 2026-05-15 00:38:07 +02:00
We support building pkg-config with the copy of GLib that is bundled with pkg-config, and it is the default, so it's best to mention about it.
55 lines
3 KiB
Text
55 lines
3 KiB
Text
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 can choose to use an existing glib installation, or build
|
|
pkg-config with the copy of GLib that is bundled with the pkg-config
|
|
sources, by using `HAVE_GLIB=1` in your NMake command line to use an
|
|
existing installation of GLib. Building with the bundled GLib will
|
|
require an existing installation of gettext-runtime or proxy-libintl.
|
|
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 from the "nmake" subdirectory:
|
|
|
|
"nmake /f Makefile.vc CFG=release" [HAVE_GLIB=1] (release builds) -or-
|
|
"nmake /f Makefile.vc CFG=debug" [HAVE_GLIB=1] (debug builds)
|
|
|
|
The resulting pkg-config.exe will be found in
|
|
nmake\vsXX\[release|debug]\[win32|x64|arm64], where vsXX stands for the
|
|
short Visual Studio version, which is 9 for 2008, 10 for 2010, 14 for 2015
|
|
and so on; a 'clean' target is supported to clean up the build. MSVC 2008
|
|
through 2022 is supported, for the x86, x86_64 (x64) and aarch64 (ARM64)
|
|
architectures; older versions may work as well but is not tested. The
|
|
GLIib DLL and all of its dependent DLLs are required at runtime if using
|
|
an existing installation, if using the GLib that is bundled with
|
|
pkg-config; if using the bundled GLib, the built pkg-config-glib.dll is
|
|
required along with the gettext-runtime or proxy-libintl DLL.
|