Bug 92630

Summary: Regression(r123983): CMake build broken when unit tests are enabled
Product: WebKit Reporter: Thiago Marcos P. Santos <tmpsantos>
Component: Tools / TestsAssignee: Thiago Marcos P. Santos <tmpsantos>
Status: RESOLVED INVALID    
Severity: Normal CC: dbates, gyuyoung.kim, joone, paroga, rakuco, webkit.review.bot
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on:    
Bug Blocks: 83579    
Attachments:
Description Flags
Patch
none
Patch
none
Patch
none
Patch none

Thiago Marcos P. Santos
Reported 2012-07-30 04:38:55 PDT
We need to update the forwarding headers generation for the API utests.
Attachments
Patch (11.49 KB, patch)
2012-07-30 07:42 PDT, Thiago Marcos P. Santos
no flags
Patch (11.49 KB, patch)
2012-07-30 08:09 PDT, Thiago Marcos P. Santos
no flags
Patch (11.06 KB, patch)
2012-07-30 11:19 PDT, Thiago Marcos P. Santos
no flags
Patch (10.89 KB, patch)
2012-07-30 11:41 PDT, Thiago Marcos P. Santos
no flags
Thiago Marcos P. Santos
Comment 1 2012-07-30 07:42:43 PDT
Thiago Marcos P. Santos
Comment 2 2012-07-30 07:51:41 PDT
I have some rants about this newly introduced macro: - We are duplicating a functionality provided by generate-forwarding-headers.pl which is tested and used by all the ports. - The logic implemented by the macro is to generate forwarding headers for all .h on the paths you pass as argument. The perl script detects which header needs to be forwarded. If someone #includes a new header that is not in a folder at the list, will break our build. - The patch get rid of targets, which means that CMake will generate the forwarding headers every time it reads this file, no matter what you are building.
Thiago Marcos P. Santos
Comment 3 2012-07-30 08:09:45 PDT
Chris Dumez
Comment 4 2012-07-30 08:15:01 PDT
Comment on attachment 155293 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=155293&action=review > Source/WebKit2/CMakeLists.txt:575 > + ${WEBCORE_DIR}/dom We also need ${WEBCORE_DIR}/dom/default
Chris Dumez
Comment 5 2012-07-30 08:16:10 PDT
Comment on attachment 155293 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=155293&action=review >> Source/WebKit2/CMakeLists.txt:575 >> + ${WEBCORE_DIR}/dom > > We also need ${WEBCORE_DIR}/dom/default Well, technically not yet, so it's fine. I can add it later.
Patrick R. Gansterer
Comment 6 2012-07-30 09:52:58 PDT
Comment on attachment 155293 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=155293&action=review (In reply to comment #2) > I have some rants about this newly introduced macro: It's more or less with every build system, that we duplicate functionality. :-( But the adding different targets and store the name in ForwardingHeadersForTestWebKitAPI_NAME is IMHO a much much biger hack. This doesn't scale very well and duplicates the functionality about different CMake ports. ADD_CUSTOM_COMMAND might be an acceptable solution, but ADD_CUSTOM_TARGET isn't very logical when you open a generated VisualStudioSolution. Also adding the dependencies across the WebKit2 CMake code does not seam like a clean solution. BTW: Current solution works for the WinApple port (https://bugs.webkit.org/attachment.cgi?id=155222&action=review). > Source/WebKit2/CMakeLists.txt:613 > +WEBKIT_CREATE_FORWARDING_HEADERS(WebCore DIRECTORIES ${WebCore_FORWARDING_HEADERS_DIRECTORIES}) > +WEBKIT_CREATE_FORWARDING_HEADERS(JavaScriptCore DIRECTORIES ${JavaScriptCore_FORWARDING_HEADERS_DIRECTORIES}) Why do you need them? Simple include directories should be enough? And if you need them really the should go into the JavaScriptCore/WebCore CMakeLists.txt Is it possible, that you post some make error messages?
Thiago Marcos P. Santos
Comment 7 2012-07-30 10:41:57 PDT
(In reply to comment #6) > (From update of attachment 155293 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=155293&action=review > > (In reply to comment #2) > > I have some rants about this newly introduced macro: > It's more or less with every build system, that we duplicate functionality. :-( > But the adding different targets and store the name in ForwardingHeadersForTestWebKitAPI_NAME is IMHO a much much biger hack. This doesn't scale very well and duplicates the functionality about different CMake ports. ADD_CUSTOM_COMMAND might be an acceptable solution, but ADD_CUSTOM_TARGET isn't very logical when you open a generated VisualStudioSolution. Also adding the dependencies across the WebKit2 CMake code does not seam like a clean solution. BTW: Current solution works for the WinApple port (https://bugs.webkit.org/attachment.cgi?id=155222&action=review). > > > Source/WebKit2/CMakeLists.txt:613 > > +WEBKIT_CREATE_FORWARDING_HEADERS(WebCore DIRECTORIES ${WebCore_FORWARDING_HEADERS_DIRECTORIES}) > > +WEBKIT_CREATE_FORWARDING_HEADERS(JavaScriptCore DIRECTORIES ${JavaScriptCore_FORWARDING_HEADERS_DIRECTORIES}) > > Why do you need them? Simple include directories should be enough? We need them because in a lot of places we use forwarding headers like WebCore/Stuff.h and JavascriptCore/Stuff.h > And if you need them really the should go into the JavaScriptCore/WebCore CMakeLists.txt No, it should not. You don't need forwarding headers for building WebCore and JSC. You need them only for WK2. > Is it possible, that you post some make error messages? Yes, I can arrange that for you. But I'm curious how can you build wincairo? Are you really doing a clean build?
Patrick R. Gansterer
Comment 8 2012-07-30 10:45:27 PDT
(In reply to comment #7) > (In reply to comment #6) > > (From update of attachment 155293 [details] [details]) > > View in context: https://bugs.webkit.org/attachment.cgi?id=155293&action=review > > > > (In reply to comment #2) > > > I have some rants about this newly introduced macro: > > It's more or less with every build system, that we duplicate functionality. :-( > > But the adding different targets and store the name in ForwardingHeadersForTestWebKitAPI_NAME is IMHO a much much biger hack. This doesn't scale very well and duplicates the functionality about different CMake ports. ADD_CUSTOM_COMMAND might be an acceptable solution, but ADD_CUSTOM_TARGET isn't very logical when you open a generated VisualStudioSolution. Also adding the dependencies across the WebKit2 CMake code does not seam like a clean solution. BTW: Current solution works for the WinApple port (https://bugs.webkit.org/attachment.cgi?id=155222&action=review). > > > > > Source/WebKit2/CMakeLists.txt:613 > > > +WEBKIT_CREATE_FORWARDING_HEADERS(WebCore DIRECTORIES ${WebCore_FORWARDING_HEADERS_DIRECTORIES}) > > > +WEBKIT_CREATE_FORWARDING_HEADERS(JavaScriptCore DIRECTORIES ${JavaScriptCore_FORWARDING_HEADERS_DIRECTORIES}) > > > > Why do you need them? Simple include directories should be enough? > > We need them because in a lot of places we use forwarding headers like WebCore/Stuff.h and JavascriptCore/Stuff.h Doesn't the ForwardingHeaders directory work there? > > And if you need them really the should go into the JavaScriptCore/WebCore CMakeLists.txt > > No, it should not. You don't need forwarding headers for building WebCore and JSC. You need them only for WK2. Wrong: Apple ports need them > > Is it possible, that you post some make error messages? > > Yes, I can arrange that for you. But I'm curious how can you build wincairo? Are you really doing a clean build? I never built WK2 with anything else than CMake, but I'll try with a clean build.
Thiago Marcos P. Santos
Comment 9 2012-07-30 11:19:46 PDT
Thiago Marcos P. Santos
Comment 10 2012-07-30 11:41:42 PDT
Thiago Marcos P. Santos
Comment 11 2012-07-30 11:42:10 PDT
(In reply to comment #10) > Created an attachment (id=155329) [details] > Patch Added as a reference of what are the folders needed by EFL port for the new implementation.
Note You need to log in before you can comment on or make changes to this bug.