When building kipi-plugins against the stock libkdcraw version (2.0.1) in debian sid, libkdcraw is found successfully during the cmake step, but afterwards the build fails with the following error: <pre> CMakeFiles/kipiplugins.dir/widgets/kppreviewimage.o: In function `KIPIPlugins::KPPreviewImage::load(QString const&) const': /home/zing/tmp/digikam-sc/extra/kipi-plugins/common/libkipiplugins/widgets/kppreviewimage.cpp:564: undefined reference to `KDcrawIface::KDcraw::loadRawPreview(QImage&, QString const&)' CMakeFiles/kipiplugins.dir/tools/kprawthumbthread.o: In function `KIPIPlugins::KPRawThumbThread::run()': /home/zing/tmp/digikam-sc/extra/kipi-plugins/common/libkipiplugins/tools/kprawthumbthread.cpp:112: undefined reference to `KDcrawIface::KDcraw::loadRawPreview(QImage&, QString const&)' collect2: error: ld returned 1 exit status make[2]: *** [lib/libkipiplugins.so.3.0.0] Error 1 make[1]: *** [common/libkipiplugins/CMakeFiles/kipiplugins.dir/all] Error 2 make: *** [all] Error 2 </pre> I would expect that either the older version is rejected during the cmake phase and that kipi-plugins are built without libkdcraw support, or that kipi-plugins use KDcrawIface::KDcraw::loadDcrawPreview(...) when built against the older libkdcraw version.
It's a linking problem, not a compilation failure. Sound like you mix old and recent versions on your computer at the same time. Clean up your cmake cache, reconfigure and try again. Gilles Caulier
You are right, the build-tree was improperly switched from manually installed libkdcraw to the system-installed one. But even with a fresh build-tree, the issue hits me (during compilation, this time): mkdir foo && cd foo && cmake .. && make [...] [ 1%] Building CXX object common/libkipiplugins/CMakeFiles/kipiplugins.dir/tools/kprawthumbthread.o /home/zing/tmp/digikam-sc/extra/kipi-plugins/common/libkipiplugins/tools/kprawthumbthread.cpp: In member function ‘virtual void KIPIPlugins::KPRawThumbThread::run()’: /home/zing/tmp/digikam-sc/extra/kipi-plugins/common/libkipiplugins/tools/kprawthumbthread.cpp:112:24: error: ‘loadRawPreview’ is not a member of ‘KDcrawIface::KDcraw’ make[2]: *** [common/libkipiplugins/CMakeFiles/kipiplugins.dir/tools/kprawthumbthread.o] Error 1 make[1]: *** [common/libkipiplugins/CMakeFiles/kipiplugins.dir/all] Error 2 make: *** [all] Error 2
Created attachment 75892 [details] [PATCH] Refuse to build when libkdcraw version is too old. I looked at the output of cmake again and noticed that there is a version check for libkdcraw, but it has no effect on the compilation. I guess that KDCRAW_FOUND should be set to false, if no version info is found.
Git commit 4902a124f0aae018a89adbb89e1e75872b43581c by Gilles Caulier. Committed on 18/12/2012 at 09:14. Pushed by cgilles into branch 'master'. apply patch #75892 from Johannes Zarl M +8 -1 CMakeLists.txt http://commits.kde.org/kipi-plugins/4902a124f0aae018a89adbb89e1e75872b43581c
Git commit bd02b4969e00b0daa937712c8f14ab52b70320e4 by Gilles Caulier. Committed on 18/12/2012 at 09:15. Pushed by cgilles into branch 'master'. apply patch #75892 from Johannes Zarl FIXED-IN: 3.0.0 M +7 -0 CMakeLists.txt http://commits.kde.org/digikam/bd02b4969e00b0daa937712c8f14ab52b70320e4