Changeset 270652 in webkit for trunk/Source/JavaScriptCore/shell


Ignore:
Timestamp:
Dec 10, 2020, 1:28:18 PM (4 years ago)
Author:
[email protected]
Message:

[CMake] Determine when to use $<TARGET_OBJECTS> for executables
https://bugs.webkit.org/show_bug.cgi?id=219648

Reviewed by Michael Catanzaro.

.:

When a WebKit framework is declared as an OBJECT library the WebKit::${framework} ALIAS
does not propagate the objects to the executable being built. As a workaround ports will
explicitly add $<TARGET_OBJECTS> to the list of libraries being linked. There is already
enough information to determine when $<TARGET_OBJECTS> is needed so this decision is moved
into the WEBKIT_EXECUTABLE macros.

An additional ${taget_name}_FRAMEWORKS variable is added which specifies the WebKit
frameworks being used. This will link the WebKit::${framework} alias and if necessary the
associated $<TARGET_OBJECTS>.

This functionality will be expanded upon when support for ${target_name}_FRAMEWORKS is
added to WebKit frameworks to support hidden visibility across ports.

  • Source/cmake/WebKitMacros.cmake:

Source/JavaScriptCore:

Use ${taget_name}_FRAMEWORKS to specify WebKit frameworks when linking executables.

  • CMakeLists.txt:
  • shell/CMakeLists.txt:

Source/WebDriver:

Use ${taget_name}_FRAMEWORKS to specify WebKit frameworks when linking executables.
Remove use of $<TARGET_OBJECTS>.

  • CMakeLists.txt:
  • PlatformPlayStation.cmake:
  • PlatformWin.cmake:

Tools:

Use ${taget_name}_FRAMEWORKS to specify WebKit frameworks when linking executables.
Remove use of $<TARGET_OBJECTS>.

  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/PlatformPlayStation.cmake:
  • TestWebKitAPI/PlatformWin.cmake:
  • WebKitTestRunner/CMakeLists.txt:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/shell/CMakeLists.txt

    r270634 r270652  
    1 set(jsc_SOURCES
    2     ../jsc.cpp
    3 )
    4 
    51if ("${JavaScriptCore_LIBRARY_TYPE}" MATCHES "STATIC")
    62    set(jsc_PRIVATE_DEFINITIONS STATICALLY_LINKED_WITH_JavaScriptCore)
    73endif ()
    84
    9 set(jsc_LIBRARIES
    10     ${CMAKE_DL_LIBS}
    11     WebKit::JavaScriptCore
    12 )
     5set(jsc_SOURCES ../jsc.cpp)
     6set(jsc_LIBRARIES ${CMAKE_DL_LIBS})
     7set(jsc_FRAMEWORKS JavaScriptCore)
    138
    149set(jsc_PRIVATE_INCLUDE_DIRECTORIES
     
    4338    set(testapi_DEFINITIONS ${jsc_PRIVATE_DEFINITIONS})
    4439    set(testapi_PRIVATE_INCLUDE_DIRECTORIES ${jsc_PRIVATE_INCLUDE_DIRECTORIES})
    45     set(testapi_LIBRARIES WebKit::JavaScriptCore)
     40    set(testapi_FRAMEWORKS ${jsc_FRAMEWORKS})
    4641
    4742    set(testmasm_SOURCES ../assembler/testmasm.cpp)
    4843    set(testmasm_DEFINITIONS ${jsc_PRIVATE_DEFINITIONS})
    4944    set(testmasm_PRIVATE_INCLUDE_DIRECTORIES ${jsc_PRIVATE_INCLUDE_DIRECTORIES})
    50     set(testmasm_LIBRARIES WebKit::JavaScriptCore)
     45    set(testmasm_FRAMEWORKS ${jsc_FRAMEWORKS})
    5146
    5247    set(testRegExp_SOURCES ../testRegExp.cpp)
    5348    set(testRegExp_DEFINITIONS ${jsc_PRIVATE_DEFINITIONS})
    5449    set(testRegExp_PRIVATE_INCLUDE_DIRECTORIES ${jsc_PRIVATE_INCLUDE_DIRECTORIES})
    55     set(testRegExp_LIBRARIES WebKit::JavaScriptCore)
     50    set(testRegExp_FRAMEWORKS ${jsc_FRAMEWORKS})
    5651
    5752    set(testb3_SOURCES
     
    6762    set(testb3_DEFINITIONS ${jsc_PRIVATE_DEFINITIONS})
    6863    set(testb3_PRIVATE_INCLUDE_DIRECTORIES ${jsc_PRIVATE_INCLUDE_DIRECTORIES})
    69     set(testb3_LIBRARIES WebKit::JavaScriptCore)
     64    set(testb3_FRAMEWORKS ${jsc_FRAMEWORKS})
    7065
    7166    set(testair_SOURCES ../b3/air/testair.cpp)
    7267    set(testair_DEFINITIONS ${jsc_PRIVATE_DEFINITIONS})
    7368    set(testair_PRIVATE_INCLUDE_DIRECTORIES ${jsc_PRIVATE_INCLUDE_DIRECTORIES})
    74     set(testair_LIBRARIES WebKit::JavaScriptCore)
     69    set(testair_FRAMEWORKS ${jsc_FRAMEWORKS})
    7570
    7671    set(testdfg_SOURCES ../dfg/testdfg.cpp)
    7772    set(testdfg_DEFINITIONS ${jsc_PRIVATE_DEFINITIONS})
    7873    set(testdfg_PRIVATE_INCLUDE_DIRECTORIES ${jsc_PRIVATE_INCLUDE_DIRECTORIES})
    79     set(testdfg_LIBRARIES WebKit::JavaScriptCore)
     74    set(testdfg_FRAMEWORKS ${jsc_FRAMEWORKS})
    8075
    8176    WEBKIT_EXECUTABLE_DECLARE(testapi)
Note: See TracChangeset for help on using the changeset viewer.