Ignore:
Timestamp:
Mar 3, 2021, 8:02:09 AM (4 years ago)
Author:
[email protected]
Message:

[CMake] JavaScriptCore GLib headers should be copies
https://bugs.webkit.org/show_bug.cgi?id=222625

Reviewed by Michael Catanzaro.

.:

Specify the directories for JavaScriptCore GLib headers and derived sources.

  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsWPE.cmake:

Source/JavaScriptCore:

Copy the headers rather than creating a symbolic link to structure the JavaScriptCore Glib
headers into a jsc directory. This follows the convention used in JavaScriptCore where
there are public and private headers.

The public JavaScriptCore GLib headers are copied before building JavaScriptCore. The
private JavaScriptCore were modified to include the public GLib headers through
<jsc/Header.h> rather than "Header.h" which is convention for the private C APIs in
JavaScriptCore.

APICast.h was being erroneously included in JSCClassPrivate.h because its not a
JavaScriptCore GLib header. Instead forward declarations were added to the private headers
and APICast.h was used as necessary in the .cpp files.

  • API/glib/JSCClassPrivate.h:
  • API/glib/JSCContext.cpp:
  • API/glib/JSCContextPrivate.h:
  • API/glib/JSCExceptionPrivate.h:
  • API/glib/JSCValuePrivate.h:
  • API/glib/JSCVirtualMachine.cpp:
  • API/glib/JSCVirtualMachinePrivate.h:
  • API/glib/JSCWrapperMap.cpp:
  • GLib.cmake:
  • PlatformGTK.cmake:

Source/WebKit:

Update the includes for the GLib ports.

  • PlatformGTK.cmake:
  • PlatformWPE.cmake:
  • WebProcess/InjectedBundle/API/glib/DOM/WebKitDOMNode.cpp:
  • WebProcess/InjectedBundle/API/glib/WebKitFrame.cpp:

Tools:

Update the includes for the GLib ports.

  • MiniBrowser/wpe/CMakeLists.txt:
  • TestWebKitAPI/PlatformGTK.cmake:
  • TestWebKitAPI/PlatformWPE.cmake:
  • TestWebKitAPI/Tests/JavaScriptCore/glib/TestJSC.cpp:
  • TestWebKitAPI/glib/CMakeLists.txt:
  • TestWebKitAPI/glib/PlatformGTK.cmake:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/GLib.cmake

    r240431 r273814  
    1 file(MAKE_DIRECTORY ${FORWARDING_HEADERS_DIR}/JavaScriptCore/glib)
    2 file(MAKE_DIRECTORY ${DERIVED_SOURCES_JAVASCRIPCORE_GLIB_API_DIR})
    3 
    41list(APPEND JavaScriptCore_SOURCES
    52    API/glib/JSAPIWrapperGlobalObject.cpp
     
    1714)
    1815
     16list(APPEND JavaScriptCore_INCLUDE_DIRECTORIES
     17    "${JavaScriptCoreGLib_FRAMEWORK_HEADERS_DIR}"
     18)
     19
    1920list(APPEND JavaScriptCore_PRIVATE_INCLUDE_DIRECTORIES
    20     "${FORWARDING_HEADERS_DIR}/JavaScriptCore/glib"
    21     "${DERIVED_SOURCES_JAVASCRIPCORE_GLIB_API_DIR}"
     21    "${JavaScriptCoreGLib_DERIVED_SOURCES_DIR}"
    2222    "${JAVASCRIPTCORE_DIR}/API/glib"
    2323)
    2424
     25configure_file(API/glib/JSCVersion.h.in ${JavaScriptCoreGLib_DERIVED_SOURCES_DIR}/JSCVersion.h)
     26
     27set(JavaScriptCoreGLib_FRAMEWORK_HEADERS
     28    ${JavaScriptCoreGLib_DERIVED_SOURCES_DIR}/JSCVersion.h
     29
     30    API/glib/JSCAutocleanups.h
     31    API/glib/JSCClass.h
     32    API/glib/JSCContext.h
     33    API/glib/JSCDefines.h
     34    API/glib/JSCException.h
     35    API/glib/JSCOptions.h
     36    API/glib/JSCValue.h
     37    API/glib/JSCVirtualMachine.h
     38    API/glib/JSCWeakValue.h
     39    API/glib/jsc.h
     40)
     41
     42WEBKIT_COPY_FILES(JavaScriptCoreGLib_CopyHeaders
     43    DESTINATION ${JavaScriptCoreGLib_FRAMEWORK_HEADERS_DIR}/jsc
     44    FILES ${JavaScriptCoreGLib_FRAMEWORK_HEADERS}
     45    FLATTENED
     46)
     47list(APPEND JavaScriptCore_DEPENDENCIES JavaScriptCoreGLib_CopyHeaders)
     48
     49set(JavaScriptCoreGLib_PRIVATE_FRAMEWORK_HEADERS
     50    API/glib/JSCContextPrivate.h
     51    API/glib/JSCValuePrivate.h
     52)
     53WEBKIT_COPY_FILES(JavaScriptCoreGLib_CopyPrivateHeaders
     54    DESTINATION ${JavaScriptCoreGLib_PRIVATE_FRAMEWORK_HEADERS_DIR}/jsc
     55    FILES ${JavaScriptCoreGLib_PRIVATE_FRAMEWORK_HEADERS}
     56    FLATTENED
     57)
     58
     59list(APPEND JavaScriptCore_INTERFACE_INCLUDE_DIRECTORIES
     60    ${JavaScriptCoreGLib_FRAMEWORK_HEADERS_DIR}
     61    ${JavaScriptCoreGLib_PRIVATE_FRAMEWORK_HEADERS_DIR}
     62)
     63list(APPEND JavaScriptCore_INTERFACE_DEPENDENCIES
     64    JavaScriptCoreGLib_CopyHeaders
     65    JavaScriptCoreGLib_CopyPrivateHeaders
     66)
     67
    2568set(JavaScriptCore_INSTALLED_HEADERS
    26     ${DERIVED_SOURCES_JAVASCRIPCORE_GLIB_API_DIR}/JSCVersion.h
     69    ${JavaScriptCoreGLib_DERIVED_SOURCES_DIR}/JSCVersion.h
    2770    ${JAVASCRIPTCORE_DIR}/API/glib/JSCAutocleanups.h
    2871    ${JAVASCRIPTCORE_DIR}/API/glib/JSCClass.h
     
    3679    ${JAVASCRIPTCORE_DIR}/API/glib/jsc.h
    3780)
    38 
    39 configure_file(API/glib/JSCVersion.h.in ${DERIVED_SOURCES_JAVASCRIPCORE_GLIB_API_DIR}/JSCVersion.h)
    40 
    41 # These symbolic link allows includes like #include <jsc/jsc.h> which simulates installed headers.
    42 add_custom_command(
    43     OUTPUT ${FORWARDING_HEADERS_DIR}/JavaScriptCore/glib/jsc
    44     DEPENDS ${JAVASCRIPTCORE_DIR}/API/glib
    45     COMMAND ln -n -s -f ${JAVASCRIPTCORE_DIR}/API/glib ${FORWARDING_HEADERS_DIR}/JavaScriptCore/glib/jsc
    46     VERBATIM
    47 )
    48 add_custom_target(JSC-fake-api-headers
    49     DEPENDS ${FORWARDING_HEADERS_DIR}/JavaScriptCore/glib/jsc
    50 )
    51 set(JavaScriptCore_EXTRA_DEPENDENCIES
    52     JSC-fake-api-headers
    53 )
Note: See TracChangeset for help on using the changeset viewer.