Bug 152547
Summary: | [CMake] webp/decode.h missing, make stops building | ||
---|---|---|---|
Product: | WebKit | Reporter: | Jacek Rużyczka <stacheldraht> |
Component: | WebKitGTK | Assignee: | Nobody <webkit-unassigned> |
Status: | NEW | ||
Severity: | Blocker | CC: | achristensen, bugs-noreply, mcatanzaro, mrobinson |
Priority: | P2 | ||
Version: | WebKit Local Build | ||
Hardware: | PC | ||
OS: | Linux |
Jacek Rużyczka
After several hours of building (cmake -DPORT=GTK, then make) at 62% progress I get this error message:
In file included from /home/jacek/bin/webkitgtk-2.10.4/Source/WebCore/platform/image-decoders/ImageDecoder.cpp:32:0:
/home/jacek/bin/webkitgtk-2.10.4/Source/WebCore/platform/image-decoders/webp/WEBPImageDecoder.h:36:25: fatal error: webp/decode.h: Datei oder Verzeichnis nicht gefunden
compilation terminated.
Source/WebCore/CMakeFiles/WebCore.dir/build.make:60081: recipe for target 'Source/WebCore/CMakeFiles/WebCore.dir/platform/image-decoders/ImageDecoder.cpp.o' failed
make[2]: *** [Source/WebCore/CMakeFiles/WebCore.dir/platform/image-decoders/ImageDecoder.cpp.o] Error 1
CMakeFiles/Makefile2:638: recipe for target 'Source/WebCore/CMakeFiles/WebCore.dir/all' failed
make[1]: *** [Source/WebCore/CMakeFiles/WebCore.dir/all] Error 2
Makefile:149: recipe for target 'all' failed
make: *** [all] Error 2
In fact, decode.h is missing in webp/. This bug has been already described at https://github.com/rs/SDWebImage/issues/544 (but not in conjunction with WebKitGtk). Where can I get the missing header file? Or can I build WebKitGtk without webp support (as it's for displaying intranet pages which don't contain any webp pics)?
Thank you for any useful hints!
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Michael Catanzaro
Source/cmake/OptionsGTK.cmake has code to fail the build if libwebp is not installed, and Source/cmake/FindWebP.cmake is pretty simple, so I don't see what could have gone wrong here. If you want to help debug our build system, you could add message() statements in FindWebP.cmake to print out what it's doing. Somehow, WEBP_FOUND is being defined even though you are missing the header file.
One (unlikely) possibility is that you somehow have libwebp.pc but not webp/decode.h. Can you please post the output of 'pkg-config --cflags --libs libwebp'?
(In reply to comment #0)
> Where can I get the missing header file?
It's not optional, so you'll want to install libwebp: http://pkgs.org/search/libwebp
Jacek Rużyczka
jacek@veteran:~/bin/webkitgtk-2.10.4 $ pkg-config --cflags --libs libwebp
-lwebp
What I did in the meantime, was to install libpweb-devel from YaST, which solved the problem. However, the absence of the libwebp header files should have made the cmake process fail, but it only generated a warning. Apparently I did not have the .pc file on my system before as it came with libwebp-devel.
Michael Catanzaro
(In reply to comment #2)
> jacek@veteran:~/bin/webkitgtk-2.10.4 $ pkg-config --cflags --libs libwebp
> -lwebp
>
> What I did in the meantime, was to install libpweb-devel from YaST, which
> solved the problem. However, the absence of the libwebp header files should
> have made the cmake process fail, but it only generated a warning.
Did you get a copy of the warning? I don't see how the build could proceed unless WEBP_FOUND is true.
Jacek Rużyczka
Im afraid I ain't got the messages from cmake any more, but I can remember I got the warning that WEBP was not found on my system (but I can't really remember the exact wording). What I can give you, is the file list of the libwebp-devel package I had to install (after which the make process went fine):
jacek@veteran:~ $ rpm -ql libwebp-devel
/usr/include/webp
/usr/include/webp/decode.h
/usr/include/webp/demux.h
/usr/include/webp/encode.h
/usr/include/webp/mux.h
/usr/include/webp/mux_types.h
/usr/include/webp/types.h
/usr/lib64/libwebp.so
/usr/lib64/libwebpdemux.so
/usr/lib64/libwebpmux.so
/usr/lib64/pkgconfig/libwebp.pc
/usr/lib64/pkgconfig/libwebpdemux.pc
/usr/lib64/pkgconfig/libwebpmux.pc
Jacek Rużyczka
I'm sorry that I don't have the original warning any more. It sounded somehow like "WEBP not found".
Here is the output you wanted AFTER installing libwebp-devel:
jacek@veteran:~ $ pkg-config --cflags --libs libwebp
-lwebp
And here the contents of the libwebkit-sharp package which solved my problem:
jacek@veteran:~ $ rpm -ql libwebp-devel
/usr/include/webp
/usr/include/webp/decode.h
/usr/include/webp/demux.h
/usr/include/webp/encode.h
/usr/include/webp/mux.h
/usr/include/webp/mux_types.h
/usr/include/webp/types.h
/usr/lib64/libwebp.so
/usr/lib64/libwebpdemux.so
/usr/lib64/libwebpmux.so
/usr/lib64/pkgconfig/libwebp.pc
/usr/lib64/pkgconfig/libwebpdemux.pc
/usr/lib64/pkgconfig/libwebpmux.pc
Michael Catanzaro
I don't know how to fix the find module. I think the call to find_package_standard_args is supposed to fail, but it's not happening.