Title: [243746] trunk
Revision
243746
Author
hironori.fu...@sony.com
Date
2019-04-02 09:33:02 -0700 (Tue, 02 Apr 2019)

Log 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/_javascript_Core:

* CMakeLists.txt: Do not use DERIVED_SOURCE_DIRECTORIES parameter
of WEBKIT_MAKE_FORWARDING_HEADERS. Added generated headers to
_javascript_Core_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.

Modified Paths

Diff

Modified: trunk/ChangeLog (243745 => 243746)


--- trunk/ChangeLog	2019-04-02 16:23:22 UTC (rev 243745)
+++ trunk/ChangeLog	2019-04-02 16:33:02 UTC (rev 243746)
@@ -1,3 +1,24 @@
+2019-04-02  Fujii Hironori  <hironori.fu...@sony.com>
+
+        [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.
+
 2019-04-01  Fujii Hironori  <hironori.fu...@sony.com>
 
         [CMake] Remove EXTRA_DIRECTORIES parameter of WEBKIT_MAKE_FORWARDING_HEADERS

Modified: trunk/Source/_javascript_Core/CMakeLists.txt (243745 => 243746)


--- trunk/Source/_javascript_Core/CMakeLists.txt	2019-04-02 16:23:22 UTC (rev 243745)
+++ trunk/Source/_javascript_Core/CMakeLists.txt	2019-04-02 16:33:02 UTC (rev 243746)
@@ -399,6 +399,13 @@
 )
 
 set(_javascript_Core_PRIVATE_FRAMEWORK_HEADERS
+    ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/Bytecodes.h
+    ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/JSCBuiltins.h
+
+    ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/inspector/InspectorBackendDispatchers.h
+    ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/inspector/InspectorFrontendDispatchers.h
+    ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/inspector/InspectorProtocolObjects.h
+
     API/APICallbackFunction.h
     API/APICast.h
     API/APIUtils.h
@@ -1274,7 +1281,6 @@
 WEBKIT_MAKE_FORWARDING_HEADERS(_javascript_Core
     TARGET_NAME _javascript_CorePrivateForwardingHeaders
     FILES ${_javascript_Core_PRIVATE_FRAMEWORK_HEADERS}
-    DERIVED_SOURCE_DIRECTORIES ${DERIVED_SOURCES_DIR}/_javascript_Core ${DERIVED_SOURCES_DIR}/_javascript_Core/inspector
     FLATTENED
 )
 

Modified: trunk/Source/_javascript_Core/ChangeLog (243745 => 243746)


--- trunk/Source/_javascript_Core/ChangeLog	2019-04-02 16:23:22 UTC (rev 243745)
+++ trunk/Source/_javascript_Core/ChangeLog	2019-04-02 16:33:02 UTC (rev 243746)
@@ -1,3 +1,14 @@
+2019-04-02  Fujii Hironori  <hironori.fu...@sony.com>
+
+        [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.
+
+        * CMakeLists.txt: Do not use DERIVED_SOURCE_DIRECTORIES parameter
+        of WEBKIT_MAKE_FORWARDING_HEADERS. Added generated headers to
+        _javascript_Core_PRIVATE_FRAMEWORK_HEADERS.
+
 2019-04-02  Saam barati  <sbar...@apple.com>
 
         Add a ValueRepReduction phase

Modified: trunk/Source/WebCore/ChangeLog (243745 => 243746)


--- trunk/Source/WebCore/ChangeLog	2019-04-02 16:23:22 UTC (rev 243745)
+++ trunk/Source/WebCore/ChangeLog	2019-04-02 16:33:02 UTC (rev 243746)
@@ -1,3 +1,18 @@
+2019-04-02  Fujii Hironori  <hironori.fu...@sony.com>
+
+        [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.
+
+        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.
+
 2019-04-02  Cathie Chen  <cathiec...@igalia.com>
 
         Update the status of ResizeObserver in features.json.

Modified: trunk/Source/WebCore/PlatformWin.cmake (243745 => 243746)


--- trunk/Source/WebCore/PlatformWin.cmake	2019-04-02 16:23:22 UTC (rev 243745)
+++ trunk/Source/WebCore/PlatformWin.cmake	2019-04-02 16:33:02 UTC (rev 243746)
@@ -320,12 +320,47 @@
     )
 endif ()
 
+set(WebCore_PRIVATE_FRAMEWORK_HEADERS
+    ${DERIVED_SOURCES_WEBCORE_DIR}/CSSPropertyNames.h
+    ${DERIVED_SOURCES_WEBCORE_DIR}/CSSValueKeywords.h
+    ${DERIVED_SOURCES_WEBCORE_DIR}/EventInterfaces.h
+    ${DERIVED_SOURCES_WEBCORE_DIR}/EventTargetInterfaces.h
+    ${DERIVED_SOURCES_WEBCORE_DIR}/HTMLElementTypeHelpers.h
+    ${DERIVED_SOURCES_WEBCORE_DIR}/HTMLNames.h
+    ${DERIVED_SOURCES_WEBCORE_DIR}/HTTPHeaderNames.h
+    ${DERIVED_SOURCES_WEBCORE_DIR}/JSBlob.h
+    ${DERIVED_SOURCES_WEBCORE_DIR}/JSCSSStyleDeclaration.h
+    ${DERIVED_SOURCES_WEBCORE_DIR}/JSDOMBindingInternalsBuiltins.h
+    ${DERIVED_SOURCES_WEBCORE_DIR}/JSDOMWindow.h
+    ${DERIVED_SOURCES_WEBCORE_DIR}/JSDocument.h
+    ${DERIVED_SOURCES_WEBCORE_DIR}/JSElement.h
+    ${DERIVED_SOURCES_WEBCORE_DIR}/JSEventTarget.h
+    ${DERIVED_SOURCES_WEBCORE_DIR}/JSFile.h
+    ${DERIVED_SOURCES_WEBCORE_DIR}/JSHTMLElement.h
+    ${DERIVED_SOURCES_WEBCORE_DIR}/JSNode.h
+    ${DERIVED_SOURCES_WEBCORE_DIR}/JSNotification.h
+    ${DERIVED_SOURCES_WEBCORE_DIR}/JSRange.h
+    ${DERIVED_SOURCES_WEBCORE_DIR}/JSReadableStream.h
+    ${DERIVED_SOURCES_WEBCORE_DIR}/JSReadableStreamDefaultController.h
+    ${DERIVED_SOURCES_WEBCORE_DIR}/RTCPeerConnectionInternalsBuiltins.h
+    ${DERIVED_SOURCES_WEBCORE_DIR}/ReadableByteStreamInternalsBuiltins.h
+    ${DERIVED_SOURCES_WEBCORE_DIR}/ReadableStreamInternalsBuiltins.h
+    ${DERIVED_SOURCES_WEBCORE_DIR}/Settings.h
+    ${DERIVED_SOURCES_WEBCORE_DIR}/StreamInternalsBuiltins.h
+    ${DERIVED_SOURCES_WEBCORE_DIR}/WebCoreJSBuiltinInternals.h
+    ${DERIVED_SOURCES_WEBCORE_DIR}/WebCoreJSBuiltins.h
+    ${DERIVED_SOURCES_WEBCORE_DIR}/WebKitFontFamilyNames.h
+    ${DERIVED_SOURCES_WEBCORE_DIR}/WritableStreamInternalsBuiltins.h
+)
+
 WEBKIT_MAKE_FORWARDING_HEADERS(WebCore
+    FILES ${WebCore_PRIVATE_FRAMEWORK_HEADERS}
     DIRECTORIES ${WebCore_FORWARDING_HEADERS_DIRECTORIES}
-    DERIVED_SOURCE_DIRECTORIES ${DERIVED_SOURCES_WEBCORE_DIR}
     FLATTENED
 )
 
+add_dependencies(WebCoreForwardingHeaders WebCoreBindings)
+
 set(WebCore_OUTPUT_NAME
     WebCore${DEBUG_SUFFIX}
 )

Modified: trunk/Source/WebCore/WebCoreMacros.cmake (243745 => 243746)


--- trunk/Source/WebCore/WebCoreMacros.cmake	2019-04-02 16:23:22 UTC (rev 243745)
+++ trunk/Source/WebCore/WebCoreMacros.cmake	2019-04-02 16:33:02 UTC (rev 243746)
@@ -220,7 +220,7 @@
 
     if (_tags)
         set(_arguments "${_arguments}" --tags ${_tags} --factory --wrapperFactory)
-        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)
+        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)
     endif ()
 
     if (_extradef)

Modified: trunk/Source/WebKitLegacy/ChangeLog (243745 => 243746)


--- trunk/Source/WebKitLegacy/ChangeLog	2019-04-02 16:23:22 UTC (rev 243745)
+++ trunk/Source/WebKitLegacy/ChangeLog	2019-04-02 16:33:02 UTC (rev 243746)
@@ -1,3 +1,14 @@
+2019-04-02  Fujii Hironori  <hironori.fu...@sony.com>
+
+        [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.
+
+        * PlatformWin.cmake: Do not use DERIVED_SOURCE_DIRECTORIES
+        parameter of WEBKIT_MAKE_FORWARDING_HEADERS. Added
+        WebKitLegacyGUID_PRIVATE_FRAMEWORK_HEADERS.
+
 2019-03-13  Youenn Fablet  <you...@apple.com>
 
         Check IDB quota usage through QuotaManager

Modified: trunk/Source/WebKitLegacy/PlatformWin.cmake (243745 => 243746)


--- trunk/Source/WebKitLegacy/PlatformWin.cmake	2019-04-02 16:23:22 UTC (rev 243745)
+++ trunk/Source/WebKitLegacy/PlatformWin.cmake	2019-04-02 16:33:02 UTC (rev 243746)
@@ -478,10 +478,16 @@
 file(MAKE_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
 file(MAKE_DIRECTORY ${DERIVED_SOURCES_WEBKITLEGACY_DIR}/Interfaces)
 
+set(WebKitLegacyGUID_PRIVATE_FRAMEWORK_HEADERS
+    ${DERIVED_SOURCES_WEBKITLEGACY_DIR}/Interfaces/WebKit.h
+
+    win/CFDictionaryPropertyBag.h
+    win/WebKitCOMAPI.h
+)
+
 WEBKIT_MAKE_FORWARDING_HEADERS(WebKitLegacyGUID
     DESTINATION ${FORWARDING_HEADERS_DIR}/WebKitLegacy
-    FILES win/WebKitCOMAPI.h win/CFDictionaryPropertyBag.h
-    DERIVED_SOURCE_DIRECTORIES ${DERIVED_SOURCES_WEBKITLEGACY_DIR}/Interfaces
+    FILES ${WebKitLegacyGUID_PRIVATE_FRAMEWORK_HEADERS}
     FLATTENED
 )
 

Modified: trunk/Source/cmake/WebKitMacros.cmake (243745 => 243746)


--- trunk/Source/cmake/WebKitMacros.cmake	2019-04-02 16:23:22 UTC (rev 243745)
+++ trunk/Source/cmake/WebKitMacros.cmake	2019-04-02 16:33:02 UTC (rev 243746)
@@ -236,7 +236,7 @@
 function(WEBKIT_MAKE_FORWARDING_HEADERS framework)
     set(options FLATTENED)
     set(oneValueArgs DESTINATION TARGET_NAME)
-    set(multiValueArgs DIRECTORIES DERIVED_SOURCE_DIRECTORIES FILES)
+    set(multiValueArgs DIRECTORIES FILES)
     cmake_parse_arguments(opt "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
     set(headers ${opt_FILES})
     if (opt_DESTINATION)
@@ -251,6 +251,11 @@
     endforeach ()
     set(fwd_headers)
     foreach (header IN LISTS headers)
+        if (IS_ABSOLUTE ${header})
+            set(src_header ${header})
+        else ()
+            set(src_header ${CMAKE_CURRENT_SOURCE_DIR}/${header})
+        endif ()
         if (opt_FLATTENED)
             get_filename_component(header_filename ${header} NAME)
             set(fwd_header ${destination}/${header_filename})
@@ -260,7 +265,7 @@
             set(fwd_header ${destination}/${header})
         endif ()
         add_custom_command(OUTPUT ${fwd_header}
-            COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/${header} ${fwd_header}
+            COMMAND ${CMAKE_COMMAND} -E copy ${src_header} ${fwd_header}
             MAIN_DEPENDENCY ${header}
             VERBATIM
         )
@@ -273,27 +278,6 @@
     endif ()
     add_custom_target(${target_name} DEPENDS ${fwd_headers})
     add_dependencies(${framework} ${target_name})
-    if (opt_DERIVED_SOURCE_DIRECTORIES)
-        set(script ${CMAKE_CURRENT_BINARY_DIR}/makeForwardingHeaders.cmake)
-        set(content "")
-        foreach (dir IN LISTS opt_DERIVED_SOURCE_DIRECTORIES)
-            string(CONCAT content ${content}
-                "file(GLOB headers \"${dir}/*.h\")\n"
-                "foreach (header IN LISTS headers)\n"
-                "    get_filename_component(header_filename \${header} NAME)\n"
-                "    execute_process(COMMAND \${CMAKE_COMMAND} -E copy_if_different \${header} ${destination}/\${header_filename} RESULT_VARIABLE result)\n"
-                "    if (NOT \${result} EQUAL 0)\n"
-                "        message(FATAL_ERROR \"Failed to copy \${header}: \${result}\")\n"
-                "    endif ()\n"
-                "endforeach ()\n"
-            )
-        endforeach ()
-        file(WRITE ${script} ${content})
-        add_custom_command(TARGET ${framework} POST_BUILD
-            COMMAND ${CMAKE_COMMAND} -P ${script}
-            VERBATIM
-        )
-    endif ()
 endfunction()
 
 # Helper macros for debugging CMake problems.

Modified: trunk/Tools/ChangeLog (243745 => 243746)


--- trunk/Tools/ChangeLog	2019-04-02 16:23:22 UTC (rev 243745)
+++ trunk/Tools/ChangeLog	2019-04-02 16:33:02 UTC (rev 243746)
@@ -1,3 +1,13 @@
+2019-04-02  Fujii Hironori  <hironori.fu...@sony.com>
+
+        [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.
+
+        * TestWebKitAPI/PlatformGTK.cmake: Removed the workaround of using an intermediate target.
+        * TestWebKitAPI/PlatformWPE.cmake: Ditto.
+
 2019-04-01  Jonathan Bedard  <jbed...@apple.com>
 
         run-api-tests: Upload test results

Modified: trunk/Tools/TestWebKitAPI/PlatformGTK.cmake (243745 => 243746)


--- trunk/Tools/TestWebKitAPI/PlatformGTK.cmake	2019-04-02 16:23:22 UTC (rev 243745)
+++ trunk/Tools/TestWebKitAPI/PlatformGTK.cmake	2019-04-02 16:33:02 UTC (rev 243746)
@@ -133,10 +133,6 @@
 set_tests_properties(TestJSC PROPERTIES TIMEOUT 60)
 set_target_properties(TestJSC PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${TESTWEBKITAPI_RUNTIME_OUTPUT_DIRECTORY}/_javascript_Core)
 
-# Add an intermediate target between TestJSC and _javascript_Core to ensure derived headers are copied into the forwarding header directory.
-add_custom_target(pre-TestJSC DEPENDS _javascript_Core)
-add_dependencies(TestJSC pre-TestJSC)
-
 if (COMPILER_IS_GCC_OR_CLANG)
     WEBKIT_ADD_TARGET_CXX_FLAGS(TestWebKit -Wno-sign-compare
                                            -Wno-undef

Modified: trunk/Tools/TestWebKitAPI/PlatformWPE.cmake (243745 => 243746)


--- trunk/Tools/TestWebKitAPI/PlatformWPE.cmake	2019-04-02 16:23:22 UTC (rev 243745)
+++ trunk/Tools/TestWebKitAPI/PlatformWPE.cmake	2019-04-02 16:33:02 UTC (rev 243746)
@@ -114,10 +114,6 @@
 set_tests_properties(TestJSC PROPERTIES TIMEOUT 60)
 set_target_properties(TestJSC PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${TESTWEBKITAPI_RUNTIME_OUTPUT_DIRECTORY}/_javascript_Core)
 
-# Add an intermediate target between TestJSC and _javascript_Core to ensure derived headers are copied into the forwarding header directory.
-add_custom_target(pre-TestJSC DEPENDS _javascript_Core)
-add_dependencies(TestJSC pre-TestJSC)
-
 if (COMPILER_IS_GCC_OR_CLANG)
     WEBKIT_ADD_TARGET_CXX_FLAGS(TestWebCore -Wno-sign-compare
                                             -Wno-undef
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to