[CMake] [RFC] How to use pkg-config under Windows (... and OSX)?

Hendrik Sattler post at hendrik-sattler.de
Thu Nov 17 15:43:57 EST 2011


Am Donnerstag, 17. November 2011, 21:38:20 schrieb Hendrik Sattler:
> Am Donnerstag, 17. November 2011, 18:26:08 schrieb Alexander Neundorf:
> > Let's say package Foo (unrelated to KDE, and unrelated to cmake) has been
> > ported from UNIX to Windows, and installs a pkgconfig file.
> > This pkgconfig file is generated at the time when the binary package for
> > Foo is generated.
> > 
> > Now a user downloads and installs the binary package of Foo, along with
> > the included pkgconfig file, which contains the install path from build
> > time. But the user can now decide where he will install this binary
> > package. This may differ from what is recorded in the pkgconfig file in
> > the binary package of Foo.
> > So the Foo.pc file is installed, and contains e.g. "C:/Foo/include", but
> > the user decides to install it to "D:/MyStuff/", so the include dir would
> > be "D:/MyStuff/include".
> > 
> > 
> > Now cmake comes into play.
> > Let's say there is a project Bar, which uses Foo, so it does
> > find_package(Foo).
> > 
> > Now FindFoo.cmake uses pkgconfig:
> > 
> > find_package(PkgConfig)
> > pkg_check_modules(Foo ...)
> > 
> > Now this will report C:/Foo/include (because this is what the
> > pkgconfig-file contains), instead of D:/MyStuff/include, where the user
> > decided to install it.
> 
> No. Pkg-config should derive the prefix variable from the location of the
> .pc file. According to documentation, it does this on Windows, so it
> should report D:/MyStuff/include

See http://cgit.freedesktop.org/pkg-config/tree/parse.c#n1136

HS


More information about the CMake mailing list