Bug 183251

Summary: [CMake] Split JSC header copying into public and private targets
Product: WebKit Reporter: Don Olmstead <don.olmstead>
Component: Tools / TestsAssignee: Don Olmstead <don.olmstead>
Status: RESOLVED FIXED    
Severity: Normal CC: achristensen, annulen, commit-queue, Hironori.Fujii, lforschler, mcatanzaro, pvollan, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch
none
Patch
none
Patch annulen: review+, commit-queue: commit-queue-

Description Don Olmstead 2018-03-01 11:37:48 PST
Currently there is no way to set the name of the target for copying of headers.
Comment 1 Don Olmstead 2018-03-01 11:38:59 PST
Created attachment 334830 [details]
Patch

Add TARGET_NAME parameter
Comment 2 Konstantin Tokarev 2018-03-01 11:52:07 PST
Please add usage to the patch to demonstrate need of such complications
Comment 3 Don Olmstead 2018-03-01 12:02:32 PST
Created attachment 334835 [details]
Patch

This patch splits the copying of headers into 2 separate targets, one for public and one for private.

JavaScriptCore and WebKit have both public and private headers that need to be installed. In this case LLIntOffsets technically needs access to the public headers of JavaScriptCore before it is built. This makes the dependencies more explicit.
Comment 4 Don Olmstead 2018-03-01 12:25:06 PST
Created attachment 334837 [details]
Patch

Rename target in Tools
Comment 5 Fujii Hironori 2018-03-01 16:32:07 PST
I don't like this TARGET_NAME idea.

How do you think a following style?

WEBKIT_MAKE_FORWARDING_HEADERS(JavaScriptCore
    PUBLIC_HEADERS ${JavaScriptCore_PUBLIC_FRAMEWORK_HEADERS}
    PRIVATE_HEADERS ${JavaScriptCore_PRIVATE_FRAMEWORK_HEADERS}
    DERIVED_SOURCE_DIRECTORIES
        ${DERIVED_SOURCES_DIR}/JavaScriptCore
        ${DERIVED_SOURCES_DIR}/JavaScriptCore/inspector
    FLATTENED)

And, it should be unified into WEBKIT_FRAMEWORK in the future (Bug 182593 Comment 8).
Comment 6 Don Olmstead 2018-03-01 16:36:00 PST
(In reply to Fujii Hironori from comment #5)
> I don't like this TARGET_NAME idea.
> 
> How do you think a following style?
> 
> WEBKIT_MAKE_FORWARDING_HEADERS(JavaScriptCore
>     PUBLIC_HEADERS ${JavaScriptCore_PUBLIC_FRAMEWORK_HEADERS}
>     PRIVATE_HEADERS ${JavaScriptCore_PRIVATE_FRAMEWORK_HEADERS}
>     DERIVED_SOURCE_DIRECTORIES
>         ${DERIVED_SOURCES_DIR}/JavaScriptCore
>         ${DERIVED_SOURCES_DIR}/JavaScriptCore/inspector
>     FLATTENED)
> 
> And, it should be unified into WEBKIT_FRAMEWORK in the future (Bug 182593
> Comment 8).

I was thinking that at a later time the current WEBKIT_MAKE_FORWARDING_HEADERS is turned into a private CMake function that would be invoked either in WEBKIT_FRAMEWORK or in something like what you are suggesting here.
Comment 7 WebKit Commit Bot 2018-03-05 05:28:49 PST
Comment on attachment 334837 [details]
Patch

Rejecting attachment 334837 [details] from commit-queue.

Failed to run "['/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch', '--status-host=webkit-queues.webkit.org', '--bot-id=webkit-cq-01', 'land-attachment', '--force-clean', '--non-interactive', '--parent-command=commit-queue', 334837, '--port=mac']" exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
rdparty/autoinstalled/mechanize/_urllib2_fork.py", line 332, in _call_chain
    result = func(*args)
  File "/Volumes/Data/EWS/WebKit/Tools/Scripts/webkitpy/thirdparty/autoinstalled/mechanize/_urllib2_fork.py", line 1170, in https_open
    return self.do_open(conn_factory, req)
  File "/Volumes/Data/EWS/WebKit/Tools/Scripts/webkitpy/thirdparty/autoinstalled/mechanize/_urllib2_fork.py", line 1118, in do_open
    raise URLError(err)
urllib2.URLError: <urlopen error [Errno 60] Operation timed out>

Full output: http://webkit-queues.webkit.org/results/6812439
Comment 8 Konstantin Tokarev 2018-03-05 10:47:04 PST
Committed https://trac.webkit.org/r229282
Comment 9 Radar WebKit Bug Importer 2018-03-05 10:48:59 PST
<rdar://problem/38145595>