On Sat, 22 Dec 2012 16:51:25 +0100 (CET), Martin Gansser wrote:
i am working on a review of guayadeque https://bugzilla.redhat.com/show_bug.cgi?id=853553 since serveral month.
my question is: how is the best way to handle this particular wx lib using cmake. Can someone with more knowledge suggest a solution.
Ivan the reviewer[mailto:drizt@land.ru] didn't respond on any questions... he continues to insist that pkgconfig is the right way to do it.
Part of this is due to language barriers and because you could have asked Ivan early to quote/attach unified patches.
Comment 40 of the ticket suggests that there exist helper methods for CMake to query pkgconfig. That sounds just fine, provided that wxsqlite3-devel included a working pkgconfig file, but it does not. Check this out:
$ rpm -q wxsqlite3-devel wxsqlite3-devel-3.0.1-1.fc18.x86_64 $ rpmls wxsqlite3-devel|grep pc -rw-r--r-- /usr/lib64/pkgconfig/wxsqlite3.pc $ pkg-config --exists wxsqlite3 || echo "no" no
Just to demonstrate that it fails. Let's see why while still using pkg-config instead of displaying the .pc file directly:
$ pkg-config --libs wxsqlite3 Package wxGTK-devel was not found in the pkg-config search path. Perhaps you should add the directory containing `wxGTK-devel.pc' to the PKG_CONFIG_PATH environment variable Package 'wxGTK-devel', required by 'wxsqlite3', not found
Oh! wxGTK-devel is an RPM package name, not a pkgconfig template name. That doesn't work. The "Requires" dependencies in .pc files are pkgconfig dependencies, not RPM dependencies.
$ grep ^Req /usr/lib64/pkgconfig/wxsqlite3.pc Requires: wxGTK-devel sqlite-devel
Same mistake for sqlite-devel. Does wxGTK-devel include a .pc file you could depend on? The one for sqlite-devel is named "sqlite3":
$ rpmls sqlite-devel|grep pkg -rw-r--r-- /usr/lib64/pkgconfig/sqlite3.pc
However, wxsqlite3 is linked with libsqlite already, so it shouldn't be necessary to depend on sqlite3.pc. Unless the dep is needed for the pkg-config --cflags query (i.e. if wxsqlite3 headers include sqlite3 headers).
Primary objective should be to fix wxsqlite3.pc, so that you can query it with pkgconfig.