Bug 37026

Summary: [Qt] WebKit does not build on Windows with --3d-canvas
Product: WebKit Reporter: Jarkko Sakkinen <jarkko.j.sakkinen>
Component: WebKit QtAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: commit-queue, oliver
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: PC   
OS: Windows XP   
Attachments:
Description Flags
Windows compilation fix
none
Files that contain createCanonicalUUIDString text in webkit source tree.
none
Windows compilation fix none

Jarkko Sakkinen
Reported 2010-04-02 10:01:20 PDT
Compilation fails in following conditions: - '--qt --3d-canvas' is given to build-webkit script. - Visual Studio 2008 is used as the compiler (win32-msvc2008, Windows SDK 6.0A) Compilation issues should be fixed.
Attachments
Windows compilation fix (4.79 KB, patch)
2010-04-03 02:59 PDT, Jarkko Sakkinen
no flags
Files that contain createCanonicalUUIDString text in webkit source tree. (47.47 KB, image/png)
2010-04-03 06:59 PDT, Jarkko Sakkinen
no flags
Windows compilation fix (4.37 KB, patch)
2010-04-05 14:44 PDT, Jarkko Sakkinen
no flags
Jarkko Sakkinen
Comment 1 2010-04-03 02:59:04 PDT
Created attachment 52493 [details] Windows compilation fix Note that I have commeted out UUID.cpp from WebCore. Including it in WebCore causes linker error with out without 3d-canvas: link /LIBPATH:"c:\Qt\4.6.0\lib" /NOLOGO /INCREMENTAL:NO /DLL /MANIFEST /MANIFESTFILE:"obj/release\QtWebKit.inter mediate.manifest" /VERSION:4.60 /OUT:..\lib\QtWebKit4.dll @C:\DOCUME~1\sakkijar\LOCALS~1\Temp\nmD1.tmp Creating library ..\lib\QtWebKit4.lib and object ..\lib\QtWebKit4.exp UUID.obj : error LNK2019: unresolved external symbol __imp__StringFromGUID2@12 referenced in function "class WebCore::St ring __cdecl WebCore::createCanonicalUUIDString(void)" (?createCanonicalUUIDString@WebCore@@YA?AVString@1@XZ) UUID.obj : error LNK2019: unresolved external symbol __imp__CoCreateGuid@4 referenced in function "class WebCore::String __cdecl WebCore::createCanonicalUUIDString(void)" (?createCanonicalUUIDString@WebCore@@YA?AVString@1@XZ) ..\lib\QtWebKit4.dll : fatal error LNK1120: 2 unresolved externals NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\link.EXE"' : return code '0x460' Stop. NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe"' : return code '0x2' Stop. NMAKE : fatal error U1077: 'cd' : return code '0x2' Stop. AND function createCanonicalUUIDString is not used in anyfile under webkit tree.
Jarkko Sakkinen
Comment 2 2010-04-03 06:59:49 PDT
Created attachment 52496 [details] Files that contain createCanonicalUUIDString text in webkit source tree.
Oliver Hunt
Comment 3 2010-04-03 18:01:14 PDT
Comment on attachment 52493 [details] Windows compilation fix A quick question -- is there a qt specific backend intended for webgl? Ken & I plan on having a shared GraphicsContext3DGL.cpp style backend which implements all OpenGL-backed APIs so that there's as little duplicated functionality as possible. --Oliver
Jarkko Sakkinen
Comment 4 2010-04-04 01:17:09 PDT
Yes, under platform/graphics/qt. I think it is good goal eventually merge common implementation together after platform specific issues are resolved in their own "sandboxes". At the moment I'm resolving integration with accelerated compositing. After that is resolved I think platform specific blocks for Qt are there and merging could be started. One thing I don't like in Chrome implementation (that seems to be cross-platform atleast on desktop targets) is the dependency on GLEW.
Jarkko Sakkinen
Comment 5 2010-04-04 01:29:04 PDT
Sorry forgot to mention the file: GraphicsContext3DQt.cpp. I think there are exactly four things that should be platform specific: - Creation of GL context - Activation of GL context - Painting of main FBO - API resolver that gives set of function pointers Maybe this functionality should be represented with some kind of adapter?
Jarkko Sakkinen
Comment 6 2010-04-05 14:44:54 PDT
Created attachment 52576 [details] Windows compilation fix Removed WebCore.pro change since it seems to link properly after all.
Laszlo Gombos
Comment 7 2010-04-05 23:41:41 PDT
Comment on attachment 52576 [details] Windows compilation fix > // FIXME: Find a better way to avoid the name confliction for NO_ERROR. > -#if ((PLATFORM(CHROMIUM) && OS(WINDOWS)) || PLATFORM(WIN)) > +#if ((PLATFORM(CHROMIUM) && OS(WINDOWS)) || PLATFORM(WIN) || (PLATFORM(QT) && OS(WINDOWS))) > #undef NO_ERROR > #endif It seems to me that this test should be simply OS(WINDOWS), instead of listing all the ports one-by-one that builds on Windows. This looks good to me as a build fix, r+.
WebKit Commit Bot
Comment 8 2010-04-06 15:55:19 PDT
Comment on attachment 52576 [details] Windows compilation fix Clearing flags on attachment: 52576 Committed r57174: <http://trac.webkit.org/changeset/57174>
WebKit Commit Bot
Comment 9 2010-04-06 15:55:24 PDT
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.