[CMake] pkgconfig and cross compiling

Hendrik Sattler post at hendrik-sattler.de
Tue Nov 4 04:43:30 EST 2008


Hendrik Sattler schrieb:
> Alexander Neundorf schrieb:
>> -Once it found the correct pc-file, it returns the result. Problem: the 
>> results don't contain the target architecture prefix, e.g. here incdir 
>> gives "/usr/include" while it should be 
>> /opt/eldk-4.1/ppc_4xxFP/ppc_4xxFP/usr/include .
>> So what to do ? Try to automatically adjust it by adding some appropriate path 
>> in the beginning ? Ignore it and use the wrong include dir ? Sounds even 
>> worse.
> 
> $export PKGCONFIG_LIB_DIR=/opt/eldk-4.1/ppc_4xxFP/ppc_4xxFP

s/PKGCONFIG_LIB_DIR/PKG_CONFIG_LIBDIR/

> $pkg-config \
>   --define-variable=prefix=/opt/eldk-4.1/ppc_4xxFP/ppc_4xxFP/usr/ \
>   some_package
> 
> should give you the correct result as the other paths should be defined
> relative to prefix.
> 
> BTW: <cross>-pkg-config as proposed here should indeed be used if
> present. However(!) and like the one above, it will also fail if you
> have more than one root prefix.
> The right fix would be to do the same as on Windows and automatically
> define prefix relative to the location of the .pc file that is currently
> in use (and remove the prefix variable from all those files). And then,
> the <cross>-pkg-config is just useful for the case that the build host
> does not have pkg-config itself.



More information about the CMake mailing list