[cmake-developers] Using cmake pkg-config-like in non-cmake builds
Clinton Stimpson
clinton at elemtech.com
Mon Nov 22 16:10:36 EST 2010
On Monday, November 22, 2010 01:55:22 pm Alexander Neundorf wrote:
> Hi,
>
> there can be the case that a package which has been built with cmake,
> should be used in a project which doesn't use cmake.
> There is a feature request that cmake should help with generating
> pkg-config pc-files: http://public.kitware.com/Bug/view.php?id=11446
>
> I don't like that idea, because a) this means duplicating information, and
> b) doing that in a less powerful format.
>
> I have a slightly different idea: instead of having cmake generate
> pc-files, modify/extend cmake so that it can be used similar to pkg-config
> by projects which don't use cmake as their buildsystem.
> I attached a first very quick try to that bug report.
> It's a small cmake script which can be executed by cmake with -P, and which
> basically contains one find_package() call and prints the results, so they
> can be fed into a compiler invocation in a makefile.
>
> It already somewhat works:
> $ cmake -DMODE=COMPILE -DCOMPILER_ID=GNU -DPACKAGE=PNG -P
> cmake-config.cmake -I/usr/include -I/usr/include
>
> $ cmake -DMODE=LINK -DCOMPILER_ID=GNU -DPACKAGE=PNG -P cmake-config.cmake
> /usr/lib/libpng.so /usr/lib/libz.so
>
>
> Do you think this makes sense ?
>
> Current issues:
> * the output goes to stderr instead stdout
> * the output has line breaks
> * actual problem: currently it's not possible to use commands which deal
> with targets in script-mode (I disabled that in 2007 since at least back
> then it didn't make sense). This means that find-modules which use
> try_compile() internally fail, and also those which create imported
> targets.
>
> Do you think it is worth to put some effort into this ?
>
How does this work when find_package() doesn't automatically find the package?
The caller provides a CMAKE_MODULE_PATH or something?
Clint
More information about the cmake-developers
mailing list