I just try to build calligra from git master. Here is the relevant building log: In file included from /mnt/personal/code/kde/calligra/plugins/colorengines/lcms2/LcmsEnginePlugin.cpp:60:0: /mnt/personal/code/kde/calligra/plugins/colorengines/lcms2/colorspaces/xyz_f16/XyzF16ColorSpace.h:30:48: error: 'KoXyzF16Traits' was not declared in this scope /mnt/personal/code/kde/calligra/plugins/colorengines/lcms2/colorspaces/xyz_f16/XyzF16ColorSpace.h:30:62: error: template argument 1 is invalid /mnt/personal/code/kde/calligra/plugins/colorengines/lcms2/colorspaces/xyz_f16/XyzF16ColorSpace.h:30:7: warning: 'class XyzF16ColorSpace' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor] /mnt/personal/code/kde/calligra/plugins/colorengines/lcms2/colorspaces/xyz_f16/XyzF16ColorSpace.h: In member function 'virtual KoColorSpace* XyzF16ColorSpaceFactory::createColorSpace(const KoColorProfile*) const': /mnt/personal/code/kde/calligra/plugins/colorengines/lcms2/colorspaces/xyz_f16/XyzF16ColorSpace.h:97:55: error: cannot convert 'XyzF16ColorSpace*' to 'KoColorSpace*' in return In file included from /mnt/personal/code/kde/calligra/plugins/colorengines/lcms2/LcmsEnginePlugin.cpp:67:0: /mnt/personal/code/kde/calligra/plugins/colorengines/lcms2/colorspaces/rgb_f16/RgbF16ColorSpace.h: At global scope: /mnt/personal/code/kde/calligra/plugins/colorengines/lcms2/colorspaces/rgb_f16/RgbF16ColorSpace.h:27:48: error: 'KoRgbF16Traits' was not declared in this scope /mnt/personal/code/kde/calligra/plugins/colorengines/lcms2/colorspaces/rgb_f16/RgbF16ColorSpace.h:27:62: error: template argument 1 is invalid /mnt/personal/code/kde/calligra/plugins/colorengines/lcms2/colorspaces/rgb_f16/RgbF16ColorSpace.h:27:7: warning: 'class RgbF16ColorSpace' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor] /mnt/personal/code/kde/calligra/plugins/colorengines/lcms2/colorspaces/rgb_f16/RgbF16ColorSpace.h: In member function 'virtual KoColorSpace* RgbF16ColorSpaceFactory::createColorSpace(const KoColorProfile*) const': /mnt/personal/code/kde/calligra/plugins/colorengines/lcms2/colorspaces/rgb_f16/RgbF16ColorSpace.h:91:55: error: cannot convert 'RgbF16ColorSpace*' to 'KoColorSpace*' in return /mnt/personal/code/kde/calligra/plugins/colorengines/lcms2/LcmsEnginePlugin.cpp: In constructor 'LcmsEnginePlugin::LcmsEnginePlugin(QObject*, const QVariantList&)': /mnt/personal/code/kde/calligra/plugins/colorengines/lcms2/LcmsEnginePlugin.cpp:171:53: error: 'KoBasicF16HalfHistogramProducer' was not declared in this scope /mnt/personal/code/kde/calligra/plugins/colorengines/lcms2/LcmsEnginePlugin.cpp:171:84: error: template argument 1 is invalid /mnt/personal/code/kde/calligra/plugins/colorengines/lcms2/LcmsEnginePlugin.cpp:172:116: error: new initializer expression list treated as compound expression [-fpermissive] /mnt/personal/code/kde/calligra/plugins/colorengines/lcms2/LcmsEnginePlugin.cpp:172:116: error: cannot convert 'QString' to 'int' in initialization In file included from /mnt/personal/code/kde/calligra/plugins/colorengines/lcms2/LcmsEnginePlugin.cpp:281:0: /mnt/personal/code/kde/calligra/plugins/colorengines/lcms2/colorspaces/rgb_f16/RgbF16ColorSpace.h: In member function 'virtual KoColorSpace* RgbF16ColorSpaceFactory::createColorSpace(const KoColorProfile*) const': /mnt/personal/code/kde/calligra/plugins/colorengines/lcms2/colorspaces/rgb_f16/RgbF16ColorSpace.h:92:5: warning: control reaches end of non-void function [-Wreturn-type] /mnt/personal/code/kde/calligra/plugins/colorengines/lcms2/colorspaces/xyz_f16/XyzF16ColorSpace.h: In member function 'virtual KoColorSpace* XyzF16ColorSpaceFactory::createColorSpace(const KoColorProfile*) const': /mnt/personal/code/kde/calligra/plugins/colorengines/lcms2/colorspaces/xyz_f16/XyzF16ColorSpace.h:98:5: warning: control reaches end of non-void function [-Wreturn-type] make[2]: *** [plugins/colorengines/lcms2/CMakeFiles/kolcmsengine.dir/LcmsEnginePlugin.cpp.o] Error 1 make[1]: *** [plugins/colorengines/lcms2/CMakeFiles/kolcmsengine.dir/all] Error 2 It fails to compile because of piece of code like this: #ifdef HAVE_OPENEXR #include <half.h> struct KoRgbF16Traits : public KoRgbTraits<half> { }; #endif The cmake output contains this: ----------------------------------------------------------------------------- -- The following OPTIONAL packages could NOT be located on your system. -- Consider installing them to enable more features from this software. ----------------------------------------------------------------------------- * OpenEXR <http://www.openexr.com> High dynamic-range (HDR) image file format So the build system and above code pretend openexr is optional, but the actual result is openexr is mandatory. I don't care whether openexr should be specified as a mandatory or optional dependency. The point of this report is the build system should fail early and gracefully (tell me I do not have and must install openexr after I type "cmake ../"), instead of late and ugly (give me a compiler error message to dig the cause ) Reproducible: Always
Thanks for you report. Could you tell me which version of lcms2 you have installed?
Git commit 4e1b87af7e7090bfcaa78c6270239c0dce72fbeb by Boudewijn Rempt. Committed on 30/11/2012 at 10:57. Pushed by rempt into branch 'master'. Fix build if openexr isn't present M +1 -1 plugins/colorengines/lcms2/CMakeLists.txt M +18 -7 plugins/colorengines/lcms2/LcmsEnginePlugin.cpp http://commits.kde.org/calligra/4e1b87af7e7090bfcaa78c6270239c0dce72fbeb
Git commit 23560e7d76a83ad08543c9c3797f4bc4f35e23a1 by Boudewijn Rempt. Committed on 30/11/2012 at 10:57. Pushed by rempt into branch 'calligra/2.6'. Fix build if openexr isn't present M +1 -1 plugins/colorengines/lcms2/CMakeLists.txt M +18 -7 plugins/colorengines/lcms2/LcmsEnginePlugin.cpp http://commits.kde.org/calligra/23560e7d76a83ad08543c9c3797f4bc4f35e23a1
Thanks for the fix. Just for the record, I have both lcms-2.4 and lcms-1.19 installed in my system.