Changeset 243746 in webkit


Ignore:
Timestamp:
Apr 2, 2019 9:33:02 AM (5 years ago)
Author:
Fujii Hironori
Message:

[CMake] WEBKIT_MAKE_FORWARDING_HEADERS shouldn't use POST_BUILD to copy generated headers
https://bugs.webkit.org/show_bug.cgi?id=182757

Reviewed by Don Olmstead.

.:

Some generated headers need to be exported to its client modules.
Before this change, WEBKIT_MAKE_FORWARDING_HEADERS copies all *.h
files in the directory specified by DERIVED_SOURCE_DIRECTORIES
parameter. The copy operation was triggered by POST_BUILD event.

This caused build dependency issues for Ninja builds. This change
remove the DERIVED_SOURCE_DIRECTORIES parameter. And list all
generated headers explicitly which need to be copied.

  • Source/cmake/WebKitMacros.cmake: Removed

DERIVED_SOURCE_DIRECTORIES parameter of
WEBKIT_MAKE_FORWARDING_HEADERS. Accept absolute paths for FILES
parameter.

Source/JavaScriptCore:

  • CMakeLists.txt: Do not use DERIVED_SOURCE_DIRECTORIES parameter

of WEBKIT_MAKE_FORWARDING_HEADERS. Added generated headers to
JavaScriptCore_PRIVATE_FRAMEWORK_HEADERS.

Source/WebCore:

No new tests because no behavior changes.

  • PlatformWin.cmake: Do not use DERIVED_SOURCE_DIRECTORIES of

WEBKIT_MAKE_FORWARDING_HEADERS. Added
WebCore_PRIVATE_FRAMEWORK_HEADERS.

  • WebCoreMacros.cmake (GENERATE_DOM_NAMES): Added

${_namespace}ElementTypeHelpers.h to _outputfiles.

Source/WebKitLegacy:

  • PlatformWin.cmake: Do not use DERIVED_SOURCE_DIRECTORIES

parameter of WEBKIT_MAKE_FORWARDING_HEADERS. Added
WebKitLegacyGUID_PRIVATE_FRAMEWORK_HEADERS.

Tools:

  • TestWebKitAPI/PlatformGTK.cmake: Removed the workaround of using an intermediate target.
  • TestWebKitAPI/PlatformWPE.cmake: Ditto.
Location:
trunk
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • trunk/ChangeLog

    r243729 r243746  
     12019-04-02  Fujii Hironori  <Hironori.Fujii@sony.com>
     2
     3        [CMake] WEBKIT_MAKE_FORWARDING_HEADERS shouldn't use POST_BUILD to copy generated headers
     4        https://bugs.webkit.org/show_bug.cgi?id=182757
     5
     6        Reviewed by Don Olmstead.
     7
     8        Some generated headers need to be exported to its client modules.
     9        Before this change, WEBKIT_MAKE_FORWARDING_HEADERS copies all *.h
     10        files in the directory specified by DERIVED_SOURCE_DIRECTORIES
     11        parameter. The copy operation was triggered by POST_BUILD event.
     12
     13        This caused build dependency issues for Ninja builds. This change
     14        remove the DERIVED_SOURCE_DIRECTORIES parameter. And list all
     15        generated headers explicitly which need to be copied.
     16
     17        * Source/cmake/WebKitMacros.cmake: Removed
     18        DERIVED_SOURCE_DIRECTORIES parameter of
     19        WEBKIT_MAKE_FORWARDING_HEADERS. Accept absolute paths for FILES
     20        parameter.
     21
    1222019-04-01  Fujii Hironori  <Hironori.Fujii@sony.com>
    223
  • trunk/Source/JavaScriptCore/CMakeLists.txt

    r243365 r243746  
    400400
    401401set(JavaScriptCore_PRIVATE_FRAMEWORK_HEADERS
     402    ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/Bytecodes.h
     403    ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/JSCBuiltins.h
     404
     405    ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/inspector/InspectorBackendDispatchers.h
     406    ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/inspector/InspectorFrontendDispatchers.h
     407    ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/inspector/InspectorProtocolObjects.h
     408
    402409    API/APICallbackFunction.h
    403410    API/APICast.h
     
    12751282    TARGET_NAME JavaScriptCorePrivateForwardingHeaders
    12761283    FILES ${JavaScriptCore_PRIVATE_FRAMEWORK_HEADERS}
    1277     DERIVED_SOURCE_DIRECTORIES ${DERIVED_SOURCES_DIR}/JavaScriptCore ${DERIVED_SOURCES_DIR}/JavaScriptCore/inspector
    12781284    FLATTENED
    12791285)
  • trunk/Source/JavaScriptCore/ChangeLog

    r243744 r243746  
     12019-04-02  Fujii Hironori  <Hironori.Fujii@sony.com>
     2
     3        [CMake] WEBKIT_MAKE_FORWARDING_HEADERS shouldn't use POST_BUILD to copy generated headers
     4        https://bugs.webkit.org/show_bug.cgi?id=182757
     5
     6        Reviewed by Don Olmstead.
     7
     8        * CMakeLists.txt: Do not use DERIVED_SOURCE_DIRECTORIES parameter
     9        of WEBKIT_MAKE_FORWARDING_HEADERS. Added generated headers to
     10        JavaScriptCore_PRIVATE_FRAMEWORK_HEADERS.
     11
    1122019-04-02  Saam barati  <sbarati@apple.com>
    213
  • trunk/Source/WebCore/ChangeLog

    r243739 r243746  
     12019-04-02  Fujii Hironori  <Hironori.Fujii@sony.com>
     2
     3        [CMake] WEBKIT_MAKE_FORWARDING_HEADERS shouldn't use POST_BUILD to copy generated headers
     4        https://bugs.webkit.org/show_bug.cgi?id=182757
     5
     6        Reviewed by Don Olmstead.
     7
     8        No new tests because no behavior changes.
     9
     10        * PlatformWin.cmake: Do not use DERIVED_SOURCE_DIRECTORIES of
     11        WEBKIT_MAKE_FORWARDING_HEADERS. Added
     12        WebCore_PRIVATE_FRAMEWORK_HEADERS.
     13        * WebCoreMacros.cmake (GENERATE_DOM_NAMES): Added
     14        ${_namespace}ElementTypeHelpers.h to _outputfiles.
     15
    1162019-04-02  Cathie Chen  <cathiechen@igalia.com>
    217
  • trunk/Source/WebCore/PlatformWin.cmake

    r241876 r243746  
    321321endif ()
    322322
     323set(WebCore_PRIVATE_FRAMEWORK_HEADERS
     324    ${DERIVED_SOURCES_WEBCORE_DIR}/CSSPropertyNames.h
     325    ${DERIVED_SOURCES_WEBCORE_DIR}/CSSValueKeywords.h
     326    ${DERIVED_SOURCES_WEBCORE_DIR}/EventInterfaces.h
     327    ${DERIVED_SOURCES_WEBCORE_DIR}/EventTargetInterfaces.h
     328    ${DERIVED_SOURCES_WEBCORE_DIR}/HTMLElementTypeHelpers.h
     329    ${DERIVED_SOURCES_WEBCORE_DIR}/HTMLNames.h
     330    ${DERIVED_SOURCES_WEBCORE_DIR}/HTTPHeaderNames.h
     331    ${DERIVED_SOURCES_WEBCORE_DIR}/JSBlob.h
     332    ${DERIVED_SOURCES_WEBCORE_DIR}/JSCSSStyleDeclaration.h
     333    ${DERIVED_SOURCES_WEBCORE_DIR}/JSDOMBindingInternalsBuiltins.h
     334    ${DERIVED_SOURCES_WEBCORE_DIR}/JSDOMWindow.h
     335    ${DERIVED_SOURCES_WEBCORE_DIR}/JSDocument.h
     336    ${DERIVED_SOURCES_WEBCORE_DIR}/JSElement.h
     337    ${DERIVED_SOURCES_WEBCORE_DIR}/JSEventTarget.h
     338    ${DERIVED_SOURCES_WEBCORE_DIR}/JSFile.h
     339    ${DERIVED_SOURCES_WEBCORE_DIR}/JSHTMLElement.h
     340    ${DERIVED_SOURCES_WEBCORE_DIR}/JSNode.h
     341    ${DERIVED_SOURCES_WEBCORE_DIR}/JSNotification.h
     342    ${DERIVED_SOURCES_WEBCORE_DIR}/JSRange.h
     343    ${DERIVED_SOURCES_WEBCORE_DIR}/JSReadableStream.h
     344    ${DERIVED_SOURCES_WEBCORE_DIR}/JSReadableStreamDefaultController.h
     345    ${DERIVED_SOURCES_WEBCORE_DIR}/RTCPeerConnectionInternalsBuiltins.h
     346    ${DERIVED_SOURCES_WEBCORE_DIR}/ReadableByteStreamInternalsBuiltins.h
     347    ${DERIVED_SOURCES_WEBCORE_DIR}/ReadableStreamInternalsBuiltins.h
     348    ${DERIVED_SOURCES_WEBCORE_DIR}/Settings.h
     349    ${DERIVED_SOURCES_WEBCORE_DIR}/StreamInternalsBuiltins.h
     350    ${DERIVED_SOURCES_WEBCORE_DIR}/WebCoreJSBuiltinInternals.h
     351    ${DERIVED_SOURCES_WEBCORE_DIR}/WebCoreJSBuiltins.h
     352    ${DERIVED_SOURCES_WEBCORE_DIR}/WebKitFontFamilyNames.h
     353    ${DERIVED_SOURCES_WEBCORE_DIR}/WritableStreamInternalsBuiltins.h
     354)
     355
    323356WEBKIT_MAKE_FORWARDING_HEADERS(WebCore
     357    FILES ${WebCore_PRIVATE_FRAMEWORK_HEADERS}
    324358    DIRECTORIES ${WebCore_FORWARDING_HEADERS_DIRECTORIES}
    325     DERIVED_SOURCE_DIRECTORIES ${DERIVED_SOURCES_WEBCORE_DIR}
    326359    FLATTENED
    327360)
     361
     362add_dependencies(WebCoreForwardingHeaders WebCoreBindings)
    328363
    329364set(WebCore_OUTPUT_NAME
  • trunk/Source/WebCore/WebCoreMacros.cmake

    r233443 r243746  
    221221    if (_tags)
    222222        set(_arguments "${_arguments}" --tags ${_tags} --factory --wrapperFactory)
    223         set(_outputfiles "${_outputfiles}" ${DERIVED_SOURCES_WEBCORE_DIR}/${_namespace}ElementFactory.cpp ${DERIVED_SOURCES_WEBCORE_DIR}/${_namespace}ElementFactory.h ${DERIVED_SOURCES_WEBCORE_DIR}/JS${_namespace}ElementWrapperFactory.cpp ${DERIVED_SOURCES_WEBCORE_DIR}/JS${_namespace}ElementWrapperFactory.h)
     223        set(_outputfiles "${_outputfiles}" ${DERIVED_SOURCES_WEBCORE_DIR}/${_namespace}ElementFactory.cpp ${DERIVED_SOURCES_WEBCORE_DIR}/${_namespace}ElementFactory.h ${DERIVED_SOURCES_WEBCORE_DIR}/${_namespace}ElementTypeHelpers.h ${DERIVED_SOURCES_WEBCORE_DIR}/JS${_namespace}ElementWrapperFactory.cpp ${DERIVED_SOURCES_WEBCORE_DIR}/JS${_namespace}ElementWrapperFactory.h)
    224224    endif ()
    225225
  • trunk/Source/WebKitLegacy/ChangeLog

    r242911 r243746  
     12019-04-02  Fujii Hironori  <Hironori.Fujii@sony.com>
     2
     3        [CMake] WEBKIT_MAKE_FORWARDING_HEADERS shouldn't use POST_BUILD to copy generated headers
     4        https://bugs.webkit.org/show_bug.cgi?id=182757
     5
     6        Reviewed by Don Olmstead.
     7
     8        * PlatformWin.cmake: Do not use DERIVED_SOURCE_DIRECTORIES
     9        parameter of WEBKIT_MAKE_FORWARDING_HEADERS. Added
     10        WebKitLegacyGUID_PRIVATE_FRAMEWORK_HEADERS.
     11
    1122019-03-13  Youenn Fablet  <youenn@apple.com>
    213
  • trunk/Source/WebKitLegacy/PlatformWin.cmake

    r239097 r243746  
    479479file(MAKE_DIRECTORY ${DERIVED_SOURCES_WEBKITLEGACY_DIR}/Interfaces)
    480480
     481set(WebKitLegacyGUID_PRIVATE_FRAMEWORK_HEADERS
     482    ${DERIVED_SOURCES_WEBKITLEGACY_DIR}/Interfaces/WebKit.h
     483
     484    win/CFDictionaryPropertyBag.h
     485    win/WebKitCOMAPI.h
     486)
     487
    481488WEBKIT_MAKE_FORWARDING_HEADERS(WebKitLegacyGUID
    482489    DESTINATION ${FORWARDING_HEADERS_DIR}/WebKitLegacy
    483     FILES win/WebKitCOMAPI.h win/CFDictionaryPropertyBag.h
    484     DERIVED_SOURCE_DIRECTORIES ${DERIVED_SOURCES_WEBKITLEGACY_DIR}/Interfaces
     490    FILES ${WebKitLegacyGUID_PRIVATE_FRAMEWORK_HEADERS}
    485491    FLATTENED
    486492)
  • trunk/Source/cmake/WebKitMacros.cmake

    r243729 r243746  
    237237    set(options FLATTENED)
    238238    set(oneValueArgs DESTINATION TARGET_NAME)
    239     set(multiValueArgs DIRECTORIES DERIVED_SOURCE_DIRECTORIES FILES)
     239    set(multiValueArgs DIRECTORIES FILES)
    240240    cmake_parse_arguments(opt "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
    241241    set(headers ${opt_FILES})
     
    252252    set(fwd_headers)
    253253    foreach (header IN LISTS headers)
     254        if (IS_ABSOLUTE ${header})
     255            set(src_header ${header})
     256        else ()
     257            set(src_header ${CMAKE_CURRENT_SOURCE_DIR}/${header})
     258        endif ()
    254259        if (opt_FLATTENED)
    255260            get_filename_component(header_filename ${header} NAME)
     
    261266        endif ()
    262267        add_custom_command(OUTPUT ${fwd_header}
    263             COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/${header} ${fwd_header}
     268            COMMAND ${CMAKE_COMMAND} -E copy ${src_header} ${fwd_header}
    264269            MAIN_DEPENDENCY ${header}
    265270            VERBATIM
     
    274279    add_custom_target(${target_name} DEPENDS ${fwd_headers})
    275280    add_dependencies(${framework} ${target_name})
    276     if (opt_DERIVED_SOURCE_DIRECTORIES)
    277         set(script ${CMAKE_CURRENT_BINARY_DIR}/makeForwardingHeaders.cmake)
    278         set(content "")
    279         foreach (dir IN LISTS opt_DERIVED_SOURCE_DIRECTORIES)
    280             string(CONCAT content ${content}
    281                 "file(GLOB headers \"${dir}/*.h\")\n"
    282                 "foreach (header IN LISTS headers)\n"
    283                 "    get_filename_component(header_filename \${header} NAME)\n"
    284                 "    execute_process(COMMAND \${CMAKE_COMMAND} -E copy_if_different \${header} ${destination}/\${header_filename} RESULT_VARIABLE result)\n"
    285                 "    if (NOT \${result} EQUAL 0)\n"
    286                 "        message(FATAL_ERROR \"Failed to copy \${header}: \${result}\")\n"
    287                 "    endif ()\n"
    288                 "endforeach ()\n"
    289             )
    290         endforeach ()
    291         file(WRITE ${script} ${content})
    292         add_custom_command(TARGET ${framework} POST_BUILD
    293             COMMAND ${CMAKE_COMMAND} -P ${script}
    294             VERBATIM
    295         )
    296     endif ()
    297281endfunction()
    298282
  • trunk/Tools/ChangeLog

    r243732 r243746  
     12019-04-02  Fujii Hironori  <Hironori.Fujii@sony.com>
     2
     3        [CMake] WEBKIT_MAKE_FORWARDING_HEADERS shouldn't use POST_BUILD to copy generated headers
     4        https://bugs.webkit.org/show_bug.cgi?id=182757
     5
     6        Reviewed by Don Olmstead.
     7
     8        * TestWebKitAPI/PlatformGTK.cmake: Removed the workaround of using an intermediate target.
     9        * TestWebKitAPI/PlatformWPE.cmake: Ditto.
     10
    1112019-04-01  Jonathan Bedard  <jbedard@apple.com>
    212
  • trunk/Tools/TestWebKitAPI/PlatformGTK.cmake

    r241261 r243746  
    134134set_target_properties(TestJSC PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${TESTWEBKITAPI_RUNTIME_OUTPUT_DIRECTORY}/JavaScriptCore)
    135135
    136 # Add an intermediate target between TestJSC and JavaScriptCore to ensure derived headers are copied into the forwarding header directory.
    137 add_custom_target(pre-TestJSC DEPENDS JavaScriptCore)
    138 add_dependencies(TestJSC pre-TestJSC)
    139 
    140136if (COMPILER_IS_GCC_OR_CLANG)
    141137    WEBKIT_ADD_TARGET_CXX_FLAGS(TestWebKit -Wno-sign-compare
  • trunk/Tools/TestWebKitAPI/PlatformWPE.cmake

    r241866 r243746  
    115115set_target_properties(TestJSC PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${TESTWEBKITAPI_RUNTIME_OUTPUT_DIRECTORY}/JavaScriptCore)
    116116
    117 # Add an intermediate target between TestJSC and JavaScriptCore to ensure derived headers are copied into the forwarding header directory.
    118 add_custom_target(pre-TestJSC DEPENDS JavaScriptCore)
    119 add_dependencies(TestJSC pre-TestJSC)
    120 
    121117if (COMPILER_IS_GCC_OR_CLANG)
    122118    WEBKIT_ADD_TARGET_CXX_FLAGS(TestWebCore -Wno-sign-compare
Note: See TracChangeset for help on using the changeset viewer.