Changeset 244712 in webkit


Ignore:
Timestamp:
Apr 26, 2019 5:06:38 PM (5 years ago)
Author:
don.olmstead@sony.com
Message:

[CMake] Add WEBKIT_EXECUTABLE macro
https://bugs.webkit.org/show_bug.cgi?id=197206

Reviewed by Konstantin Tokarev.

.:

Add WEBKIT_EXECUTABLE macro for creating executable targets. This wraps the creation of
executable targets using the same conventions of WEBKIT_FRAMEWORK.

Common code from the two macros were moved to WEBKIT_TARGET which is meant as an internal
macro.

Add WEBKIT_WRAP_EXECUTABLE macro to support Windows targets which use a DLLLauncherMain to
launch the executable.

  • Source/cmake/WebKitMacros.cmake:

Source/JavaScriptCore:

Migrate to WEBKIT_EXECUTABLE for the jsc and test targets.

  • b3/air/testair.cpp:
  • b3/testb3.cpp:
  • dfg/testdfg.cpp:
  • shell/CMakeLists.txt:
  • shell/PlatformGTK.cmake:
  • shell/PlatformJSCOnly.cmake: Removed.
  • shell/PlatformMac.cmake:
  • shell/PlatformPlayStation.cmake:
  • shell/PlatformWPE.cmake:
  • shell/PlatformWin.cmake:
Location:
trunk
Files:
1 deleted
12 edited

Legend:

Unmodified
Added
Removed
  • trunk/ChangeLog

    r244676 r244712  
     12019-04-26  Don Olmstead  <don.olmstead@sony.com>
     2
     3        [CMake] Add WEBKIT_EXECUTABLE macro
     4        https://bugs.webkit.org/show_bug.cgi?id=197206
     5
     6        Reviewed by Konstantin Tokarev.
     7
     8        Add WEBKIT_EXECUTABLE macro for creating executable targets. This wraps the creation of
     9        executable targets using the same conventions of WEBKIT_FRAMEWORK.
     10
     11        Common code from the two macros were moved to WEBKIT_TARGET which is meant as an internal
     12        macro.
     13
     14        Add WEBKIT_WRAP_EXECUTABLE macro to support Windows targets which use a DLLLauncherMain to
     15        launch the executable.
     16
     17        * Source/cmake/WebKitMacros.cmake:
     18
    1192019-04-25  Fujii Hironori  <Hironori.Fujii@sony.com>
    220
  • trunk/Source/JavaScriptCore/ChangeLog

    r244711 r244712  
     12019-04-26  Don Olmstead  <don.olmstead@sony.com>
     2
     3        [CMake] Add WEBKIT_EXECUTABLE macro
     4        https://bugs.webkit.org/show_bug.cgi?id=197206
     5
     6        Reviewed by Konstantin Tokarev.
     7
     8        Migrate to WEBKIT_EXECUTABLE for the jsc and test targets.
     9
     10        * b3/air/testair.cpp:
     11        * b3/testb3.cpp:
     12        * dfg/testdfg.cpp:
     13        * shell/CMakeLists.txt:
     14        * shell/PlatformGTK.cmake:
     15        * shell/PlatformJSCOnly.cmake: Removed.
     16        * shell/PlatformMac.cmake:
     17        * shell/PlatformPlayStation.cmake:
     18        * shell/PlatformWPE.cmake:
     19        * shell/PlatformWin.cmake:
     20
    1212019-04-25  Yusuke Suzuki  <ysuzuki@apple.com>
    222
  • trunk/Source/JavaScriptCore/b3/air/testair.cpp

    r244694 r244712  
    22172217    return 0;
    22182218}
     2219
     2220#if OS(WINDOWS)
     2221extern "C" __declspec(dllexport) int WINAPI dllLauncherEntryPoint(int argc, const char* argv[])
     2222{
     2223    return main(argc, const_cast<char**>(argv));
     2224}
     2225#endif
  • trunk/Source/JavaScriptCore/b3/testb3.cpp

    r244694 r244712  
    1880118801}
    1880218802
     18803#if OS(WINDOWS)
     18804extern "C" __declspec(dllexport) int WINAPI dllLauncherEntryPoint(int argc, const char* argv[])
     18805{
     18806    return main(argc, const_cast<char**>(argv));
     18807}
     18808#endif
  • trunk/Source/JavaScriptCore/dfg/testdfg.cpp

    r244694 r244712  
    119119    return 0;
    120120}
     121
     122#if OS(WINDOWS)
     123extern "C" __declspec(dllexport) int WINAPI dllLauncherEntryPoint(int argc, const char* argv[])
     124{
     125    return main(argc, const_cast<char**>(argv));
     126}
     127#endif
  • trunk/Source/JavaScriptCore/shell/CMakeLists.txt

    r243934 r244712  
    1 set(JSC_SOURCES
     1set(jsc_SOURCES
    22    ../jsc.cpp
    33)
    44
    5 set(JSC_LIBRARIES
     5if ("${JavaScriptCore_LIBRARY_TYPE}" MATCHES "STATIC")
     6    set(jsc_PRIVATE_DEFINITIONS STATICALLY_LINKED_WITH_JavaScriptCore)
     7endif ()
     8
     9set(jsc_LIBRARIES
    610    ${CMAKE_DL_LIBS}
    711    JavaScriptCore${DEBUG_SUFFIX}
     
    913)
    1014
     15set(jsc_PRIVATE_INCLUDE_DIRECTORIES
     16    ${JavaScriptCore_INCLUDE_DIRECTORIES}
     17    ${JavaScriptCore_PRIVATE_INCLUDE_DIRECTORIES}
     18    ${JavaScriptCore_PRIVATE_FRAMEWORK_HEADERS_DIR}
     19    ${JavaScriptCore_SYSTEM_INCLUDE_DIRECTORIES}
     20)
     21
    1122if (WTF_OS_MAC_OS_X)
    12     list(APPEND JSC_LIBRARIES edit)
     23    list(APPEND jsc_LIBRARIES edit)
    1324endif ()
    1425
    15 if ("${JavaScriptCore_LIBRARY_TYPE}" MATCHES "STATIC")
    16     add_definitions(-DSTATICALLY_LINKED_WITH_JavaScriptCore)
     26WEBKIT_EXECUTABLE_DECLARE(jsc)
     27
     28if (DEVELOPER_MODE)
     29    set(testapi_SOURCES
     30        ../API/tests/CompareAndSwapTest.cpp
     31        ../API/tests/CustomGlobalObjectClassTest.c
     32        ../API/tests/ExecutionTimeLimitTest.cpp
     33        ../API/tests/FunctionOverridesTest.cpp
     34        ../API/tests/GlobalContextWithFinalizerTest.cpp
     35        ../API/tests/JSONParseTest.cpp
     36        ../API/tests/JSObjectGetProxyTargetTest.cpp
     37        ../API/tests/MultithreadedMultiVMExecutionTest.cpp
     38        ../API/tests/PingPongStackOverflowTest.cpp
     39        ../API/tests/TypedArrayCTest.cpp
     40        ../API/tests/testapi.c
     41        ../API/tests/testapi.cpp
     42    )
     43    set(testapi_DEFINITIONS ${jsc_PRIVATE_DEFINITIONS})
     44    set(testapi_PRIVATE_INCLUDE_DIRECTORIES ${jsc_PRIVATE_INCLUDE_DIRECTORIES})
     45    set(testapi_LIBRARIES JavaScriptCore)
     46
     47    set(testmasm_SOURCES ../assembler/testmasm.cpp)
     48    set(testmasm_DEFINITIONS ${jsc_PRIVATE_DEFINITIONS})
     49    set(testmasm_PRIVATE_INCLUDE_DIRECTORIES ${jsc_PRIVATE_INCLUDE_DIRECTORIES})
     50    set(testmasm_LIBRARIES JavaScriptCore)
     51
     52    set(testRegExp_SOURCES ../testRegExp.cpp)
     53    set(testRegExp_DEFINITIONS ${jsc_PRIVATE_DEFINITIONS})
     54    set(testRegExp_PRIVATE_INCLUDE_DIRECTORIES ${jsc_PRIVATE_INCLUDE_DIRECTORIES})
     55    set(testRegExp_LIBRARIES JavaScriptCore)
     56
     57    set(testb3_SOURCES ../b3/testb3.cpp)
     58    set(testb3_DEFINITIONS ${jsc_PRIVATE_DEFINITIONS})
     59    set(testb3_PRIVATE_INCLUDE_DIRECTORIES ${jsc_PRIVATE_INCLUDE_DIRECTORIES})
     60    set(testb3_LIBRARIES JavaScriptCore)
     61
     62    set(testair_SOURCES ../b3/air/testair.cpp)
     63    set(testair_DEFINITIONS ${jsc_PRIVATE_DEFINITIONS})
     64    set(testair_PRIVATE_INCLUDE_DIRECTORIES ${jsc_PRIVATE_INCLUDE_DIRECTORIES})
     65    set(testair_LIBRARIES JavaScriptCore)
     66
     67    set(testdfg_SOURCES ../dfg/testdfg.cpp)
     68    set(testdfg_DEFINITIONS ${jsc_PRIVATE_DEFINITIONS})
     69    set(testdfg_PRIVATE_INCLUDE_DIRECTORIES ${jsc_PRIVATE_INCLUDE_DIRECTORIES})
     70    set(testdfg_LIBRARIES JavaScriptCore)
     71
     72    WEBKIT_EXECUTABLE_DECLARE(testapi)
     73    WEBKIT_EXECUTABLE_DECLARE(testRegExp)
     74    WEBKIT_EXECUTABLE_DECLARE(testmasm)
     75    WEBKIT_EXECUTABLE_DECLARE(testb3)
     76    WEBKIT_EXECUTABLE_DECLARE(testair)
     77    WEBKIT_EXECUTABLE_DECLARE(testdfg)
    1778endif ()
    18 
    19 set(TESTAPI_SOURCES
    20     ../API/tests/CompareAndSwapTest.cpp
    21     ../API/tests/CustomGlobalObjectClassTest.c
    22     ../API/tests/ExecutionTimeLimitTest.cpp
    23     ../API/tests/FunctionOverridesTest.cpp
    24     ../API/tests/GlobalContextWithFinalizerTest.cpp
    25     ../API/tests/JSONParseTest.cpp
    26     ../API/tests/JSObjectGetProxyTargetTest.cpp
    27     ../API/tests/MultithreadedMultiVMExecutionTest.cpp
    28     ../API/tests/PingPongStackOverflowTest.cpp
    29     ../API/tests/TypedArrayCTest.cpp
    30     ../API/tests/testapi.c
    31     ../API/tests/testapi.cpp
    32 )
    3379
    3480WEBKIT_INCLUDE_CONFIG_FILES_IF_EXISTS()
    3581
    36 WEBKIT_WRAP_SOURCELIST(${JSC_SOURCES})
    37 WEBKIT_WRAP_SOURCELIST(${TESTAPI_SOURCES})
    38 include_directories(./ ${JavaScriptCore_INCLUDE_DIRECTORIES} ${JavaScriptCore_PRIVATE_INCLUDE_DIRECTORIES})
    39 include_directories(SYSTEM ${JavaScriptCore_SYSTEM_INCLUDE_DIRECTORIES})
    40 add_executable(jsc ${JSC_SOURCES})
    41 target_link_libraries(jsc ${JSC_LIBRARIES})
    42 
    43 if (JSC_OUTPUT_NAME)
    44     set_target_properties(jsc PROPERTIES OUTPUT_NAME ${JSC_OUTPUT_NAME})
    45 endif ()
    46 
    47 if (JSC_LINK_FLAGS)
    48     WEBKIT_ADD_TARGET_PROPERTIES(jsc LINK_FLAGS "${JSC_LINK_FLAGS}")
    49 endif ()
     82WEBKIT_EXECUTABLE(jsc)
    5083
    5184if (SHOULD_INSTALL_JS_SHELL)
     
    5386endif ()
    5487
    55 if (TARGET jscLib)
    56     add_dependencies(jsc jscLib)
     88if (DEVELOPER_MODE)
     89    WEBKIT_EXECUTABLE(testapi)
     90    WEBKIT_EXECUTABLE(testRegExp)
     91    WEBKIT_EXECUTABLE(testmasm)
     92    WEBKIT_EXECUTABLE(testb3)
     93    WEBKIT_EXECUTABLE(testair)
     94    WEBKIT_EXECUTABLE(testdfg)
     95
     96    file(COPY
     97        "${JAVASCRIPTCORE_DIR}/API/tests/testapi.js"
     98        DESTINATION
     99        ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/testapiScripts
     100    )
     101    file(COPY
     102        "${JAVASCRIPTCORE_DIR}/API/tests/testapi-function-overrides.js"
     103        DESTINATION
     104        ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/testapiScripts
     105    )
    57106endif ()
    58 
    59 set(TESTMASM_SOURCES
    60     ../assembler/testmasm.cpp
    61 )
    62 
    63 set(TESTB3_SOURCES
    64     ../b3/testb3.cpp
    65 )
    66 
    67 set(TESTAIR_SOURCES
    68     ../b3/air/testair.cpp
    69 )
    70 
    71 set(TESTDFG_SOURCES
    72     ../dfg/testdfg.cpp
    73 )
    74 
    75 if (DEVELOPER_MODE AND NOT WIN32)
    76     add_executable(testmasm ${TESTMASM_SOURCES})
    77     target_link_libraries(testmasm ${JSC_LIBRARIES})
    78 
    79     add_executable(testb3 ${TESTB3_SOURCES})
    80     target_link_libraries(testb3 ${JSC_LIBRARIES})
    81 
    82     add_executable(testair ${TESTAIR_SOURCES})
    83     target_link_libraries(testair ${JSC_LIBRARIES})
    84 
    85     add_executable(testdfg ${TESTDFG_SOURCES})
    86     target_link_libraries(testdfg ${JSC_LIBRARIES})
    87 
    88     add_executable(testapi ${TESTAPI_SOURCES})
    89     target_link_libraries(testapi ${JSC_LIBRARIES})
    90 endif ()
    91 
    92 file(COPY
    93     "${JAVASCRIPTCORE_DIR}/API/tests/testapi.js"
    94     DESTINATION
    95     ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/testapiScripts
    96 )
    97 file(COPY
    98     "${JAVASCRIPTCORE_DIR}/API/tests/testapi-function-overrides.js"
    99     DESTINATION
    100     ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/testapiScripts
    101 )
  • trunk/Source/JavaScriptCore/shell/PlatformGTK.cmake

    r150220 r244712  
    1 list(APPEND JSC_LIBRARIES
     1list(APPEND jsc_LIBRARIES
    22    ${GLIB_LIBRARIES}
    33)
  • trunk/Source/JavaScriptCore/shell/PlatformMac.cmake

    r217182 r244712  
    1 set(TESTAPI_OBJC_SOURCES
     1set(testapi_OBJC_SOURCES
    22    ../API/tests/CurrentThisInsideBlockGetterTest.mm
    33    ../API/tests/DateTests.mm
     
    77    ../API/tests/testapi.mm
    88)
    9 list(APPEND TESTAPI_SOURCES ${TESTAPI_OBJC_SOURCES})
    10 
    11 set_source_files_properties(${TESTAPI_OBJC_SOURCES} PROPERTIES COMPILE_FLAGS -fobjc-arc)
     9list(APPEND testapi_SOURCES ${testapi_OBJC_SOURCES})
     10set_source_files_properties(${testapi_OBJC_SOURCES} PROPERTIES COMPILE_FLAGS -fobjc-arc)
  • trunk/Source/JavaScriptCore/shell/PlatformPlayStation.cmake

    r243700 r244712  
    1 
    2 list(APPEND JSC_SOURCES
     1list(APPEND jsc_SOURCES
    32    ${JAVASCRIPTCORE_DIR}/shell/playstation/Initializer.cpp
    43)
     
    98set(PLAYSTATION_jsc_MAIN_THREAD_NAME "JSCShell")
    109set(PLAYSTATION_jsc_WRAP fopen getcwd main)
    11 list(APPEND JSC_LIBRARIES ${LIBTESTWRAPPERS})
     10list(APPEND jsc_LIBRARIES ${LIBTESTWRAPPERS})
  • trunk/Source/JavaScriptCore/shell/PlatformWPE.cmake

    r236873 r244712  
    1 list(APPEND JSC_LIBRARIES
     1list(APPEND jsc_LIBRARIES
    22    ${GLIB_LIBRARIES}
    33    ${GLIB_GMODULE_LIBRARIES}
  • trunk/Source/JavaScriptCore/shell/PlatformWin.cmake

    r244065 r244712  
    1 include_directories(./ PRIVATE ${JavaScriptCore_INCLUDE_DIRECTORIES} ${JavaScriptCore_PRIVATE_INCLUDE_DIRECTORIES} ${JavaScriptCore_PRIVATE_FRAMEWORK_HEADERS_DIR})
    2 include_directories(SYSTEM ${JavaScriptCore_SYSTEM_INCLUDE_DIRECTORIES})
    3 add_library(jscLib SHARED ${JSC_SOURCES})
    4 
    5 list(APPEND JSC_LIBRARIES
    6     Winmm
    7 )
    8 
    9 target_link_libraries(jscLib ${JSC_LIBRARIES})
     1set(wrapper_DEFINITIONS USE_CONSOLE_ENTRY_POINT)
    102
    113if (${WTF_PLATFORM_WIN_CAIRO})
    12     add_definitions(-DWIN_CAIRO)
     4    list(APPEND wrapper_DEFINITIONS WIN_CAIRO)
    135endif ()
    146
    15 set(JSC_SOURCES ${JAVASCRIPTCORE_DIR}/shell/DLLLauncherMain.cpp)
    16 set(JSC_LIBRARIES shlwapi)
    17 add_definitions(-DUSE_CONSOLE_ENTRY_POINT)
     7WEBKIT_WRAP_EXECUTABLE(jsc
     8    SOURCES DLLLauncherMain.cpp
     9    LIBRARIES shlwapi
     10)
     11target_compile_definitions(jsc PRIVATE ${wrapper_DEFINITIONS})
     12set(jsc_OUTPUT_NAME jsc${DEBUG_SUFFIX})
    1813
    19 set(JSC_OUTPUT_NAME "jsc${DEBUG_SUFFIX}")
     14if (DEVELOPER_MODE)
     15    WEBKIT_WRAP_EXECUTABLE(testapi
     16        SOURCES DLLLauncherMain.cpp
     17        LIBRARIES shlwapi
     18    )
     19    target_compile_definitions(testapi PRIVATE ${wrapper_DEFINITIONS})
     20    set(testapi_OUTPUT_NAME testapi${DEBUG_SUFFIX})
    2021
    21 add_library(testRegExpLib SHARED ../testRegExp.cpp)
    22 add_executable(testRegExp ${JSC_SOURCES})
    23 set_target_properties(testRegExp PROPERTIES OUTPUT_NAME "testRegExp${DEBUG_SUFFIX}")
    24 target_link_libraries(testRegExp shlwapi)
    25 add_dependencies(testRegExp testRegExpLib)
    26 target_link_libraries(testRegExpLib JavaScriptCore)
     22    WEBKIT_WRAP_EXECUTABLE(testRegExp
     23        SOURCES DLLLauncherMain.cpp
     24        LIBRARIES shlwapi
     25    )
     26    target_compile_definitions(testRegExp PRIVATE ${wrapper_DEFINITIONS})
     27    set(testRegExp_OUTPUT_NAME testRegExp${DEBUG_SUFFIX})
    2728
    28 add_library(testapiLib SHARED ${TESTAPI_SOURCES})
    29 add_executable(testapi ${JSC_SOURCES})
    30 set_target_properties(testapi PROPERTIES OUTPUT_NAME "testapi${DEBUG_SUFFIX}")
    31 target_link_libraries(testapi shlwapi)
    32 add_dependencies(testapi testapiLib)
    33 target_link_libraries(testapiLib JavaScriptCore)
     29    WEBKIT_WRAP_EXECUTABLE(testmasm
     30        SOURCES DLLLauncherMain.cpp
     31        LIBRARIES shlwapi
     32    )
     33    target_compile_definitions(testmasm PRIVATE ${wrapper_DEFINITIONS})
     34    set(testmasm_OUTPUT_NAME testmasm${DEBUG_SUFFIX})
    3435
    35 add_library(testmasmLib SHARED ../assembler/testmasm.cpp)
    36 add_executable(testmasm ${JSC_SOURCES})
    37 set_target_properties(testmasm PROPERTIES OUTPUT_NAME "testmasm${DEBUG_SUFFIX}")
    38 target_link_libraries(testmasm shlwapi)
    39 add_dependencies(testmasm testmasmLib)
    40 target_link_libraries(testmasmLib JavaScriptCore)
     36    WEBKIT_WRAP_EXECUTABLE(testb3
     37        SOURCES DLLLauncherMain.cpp
     38        LIBRARIES shlwapi
     39    )
     40    target_compile_definitions(testb3 PRIVATE ${wrapper_DEFINITIONS})
     41    set(testb3_OUTPUT_NAME testb3${DEBUG_SUFFIX})
     42
     43    WEBKIT_WRAP_EXECUTABLE(testair
     44        SOURCES DLLLauncherMain.cpp
     45        LIBRARIES shlwapi
     46    )
     47    target_compile_definitions(testair PRIVATE ${wrapper_DEFINITIONS})
     48    set(testair_OUTPUT_NAME testair${DEBUG_SUFFIX})
     49
     50    WEBKIT_WRAP_EXECUTABLE(testdfg
     51        SOURCES DLLLauncherMain.cpp
     52        LIBRARIES shlwapi
     53    )
     54    target_compile_definitions(testdfg PRIVATE ${wrapper_DEFINITIONS})
     55    set(testdfg_OUTPUT_NAME testdfg${DEBUG_SUFFIX})
     56endif ()
  • trunk/Source/cmake/WebKitMacros.cmake

    r244349 r244712  
    143143endmacro()
    144144
     145macro(WEBKIT_EXECUTABLE_DECLARE _target)
     146    add_executable(${_target} "${CMAKE_BINARY_DIR}/cmakeconfig.h")
     147endmacro()
     148
     149# Private macro for setting the properties of a target.
     150# Rather than just having _target like WEBKIT_FRAMEWORK and WEBKIT_EXECUTABLE the parameters are
     151# split into _target_logical_name, which is used for variable expansion, and _target_cmake_name.
     152# This is done to support WEBKIT_WRAP_EXECUTABLE which uses the _target_logical_name variables
     153# but requires a different _target_cmake_name.
     154macro(_WEBKIT_TARGET _target_logical_name _target_cmake_name)
     155    target_sources(${_target_cmake_name} PRIVATE
     156        ${${_target_logical_name}_HEADERS}
     157        ${${_target_logical_name}_SOURCES}
     158    )
     159    target_include_directories(${_target_cmake_name} PUBLIC "$<BUILD_INTERFACE:${${_target_logical_name}_INCLUDE_DIRECTORIES}>")
     160    target_include_directories(${_target_cmake_name} SYSTEM PRIVATE "$<BUILD_INTERFACE:${${_target_logical_name}_SYSTEM_INCLUDE_DIRECTORIES}>")
     161    target_include_directories(${_target_cmake_name} PRIVATE "$<BUILD_INTERFACE:${${_target_logical_name}_PRIVATE_INCLUDE_DIRECTORIES}>")
     162
     163    target_compile_definitions(${_target_cmake_name} PRIVATE "BUILDING_${_target_logical_name}")
     164    if (${_target_logical_name}_DEFINITIONS)
     165        target_compile_definitions(${_target_cmake_name} PUBLIC ${${_target_logical_name}_DEFINITIONS})
     166    endif ()
     167    if (${_target_logical_name}_PRIVATE_DEFINITIONS)
     168        target_compile_definitions(${_target_cmake_name} PRIVATE ${${_target_logical_name}_PRIVATE_DEFINITIONS})
     169    endif ()
     170
     171    target_link_libraries(${_target_cmake_name} ${${_target_logical_name}_LIBRARIES})
     172
     173    if (${_target}_DEPENDENCIES)
     174        add_dependencies(${_target_cmake_name} ${${_target}_DEPENDENCIES})
     175    endif ()
     176endmacro()
     177
    145178macro(WEBKIT_FRAMEWORK _target)
    146     target_sources(${_target} PRIVATE
    147         ${${_target}_HEADERS}
    148         ${${_target}_SOURCES}
    149     )
    150     target_include_directories(${_target} PUBLIC "$<BUILD_INTERFACE:${${_target}_INCLUDE_DIRECTORIES}>")
    151     target_include_directories(${_target} SYSTEM PRIVATE "$<BUILD_INTERFACE:${${_target}_SYSTEM_INCLUDE_DIRECTORIES}>")
    152     target_include_directories(${_target} PRIVATE "$<BUILD_INTERFACE:${${_target}_PRIVATE_INCLUDE_DIRECTORIES}>")
    153     target_link_libraries(${_target} ${${_target}_LIBRARIES})
    154     set_target_properties(${_target} PROPERTIES COMPILE_DEFINITIONS "BUILDING_${_target}")
     179    _WEBKIT_TARGET(${_target} ${_target})
    155180
    156181    if (${_target}_OUTPUT_NAME)
     
    171196        install(TARGETS ${_target} FRAMEWORK DESTINATION ${LIB_INSTALL_DIR})
    172197    endif ()
     198endmacro()
     199
     200macro(WEBKIT_EXECUTABLE _target)
     201    _WEBKIT_TARGET(${_target} ${_target})
     202
     203    if (${_target}_OUTPUT_NAME)
     204        set_target_properties(${_target} PROPERTIES OUTPUT_NAME ${${_target}_OUTPUT_NAME})
     205    endif ()
     206endmacro()
     207
     208macro(WEBKIT_WRAP_EXECUTABLE _target)
     209    set(oneValueArgs TARGET_NAME)
     210    set(multiValueArgs SOURCES LIBRARIES)
     211    cmake_parse_arguments(opt "" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
     212
     213    if (opt_TARGET_NAME)
     214        set(_wrapped_target_name ${opt_TARGET_NAME})
     215    else ()
     216        set(_wrapped_target_name ${_target}Lib)
     217    endif ()
     218
     219    add_library(${_wrapped_target_name} SHARED "${CMAKE_BINARY_DIR}/cmakeconfig.h")
     220
     221    _WEBKIT_TARGET(${_target} ${_wrapped_target_name})
     222
     223    # Unset values
     224    unset(${_target}_HEADERS)
     225    unset(${_target}_DEFINITIONS)
     226    unset(${_target}_PRIVATE_DEFINITIONS)
     227    unset(${_target}_INCLUDE_DIRECTORIES)
     228    unset(${_target}_SYSTEM_INCLUDE_DIRECTORIES)
     229    unset(${_target}_PRIVATE_INCLUDE_DIRECTORIES)
     230
     231    # Reset the sources
     232    set(${_target}_SOURCES ${opt_SOURCES})
     233    set(${_target}_LIBRARIES ${opt_LIBRARIES})
     234    set(${_target}_DEPENDENCIES ${_wrapped_target_name})
    173235endmacro()
    174236
Note: See TracChangeset for help on using the changeset viewer.