Changeset 256419 in webkit


Ignore:
Timestamp:
Feb 11, 2020 5:50:19 PM (4 years ago)
Author:
Fujii Hironori
Message:

[Win][CMake][WK1] WebKitLegacyGUID doesn't get recompiled by updating IDL files
https://bugs.webkit.org/show_bug.cgi?id=207456

Reviewed by Don Olmstead.

In GENERATE_INTERFACE macro, only *.h files were specified to
OUTPUT of add_custom_command. Generated *_i.c files were just
marked GENERATED source file property. So, WebKitLegacyGUID didn't
know which command generates *_i.c files.

Added a new option HEADER_ONLY to GENERATE_INTERFACE. If
HEADER_ONLY is not specified, append ${_filewe}_i.c to the OUTPUT.
Only AccessibleStates.idl and IA2CommonTypes.idl are marked with
HEADER_ONLY.

Removed _defines and _depends options to simplify
GENERATE_INTERFACE.

  • PlatformWin.cmake:
Location:
trunk/Source/WebKitLegacy
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKitLegacy/ChangeLog

    r256184 r256419  
     12020-02-11  Fujii Hironori  <Hironori.Fujii@sony.com>
     2
     3        [Win][CMake][WK1] WebKitLegacyGUID doesn't get recompiled by updating IDL files
     4        https://bugs.webkit.org/show_bug.cgi?id=207456
     5
     6        Reviewed by Don Olmstead.
     7
     8        In GENERATE_INTERFACE macro, only *.h files were specified to
     9        OUTPUT of add_custom_command. Generated *_i.c files were just
     10        marked GENERATED source file property. So, WebKitLegacyGUID didn't
     11        know which command generates *_i.c files.
     12
     13        Added a new option HEADER_ONLY to GENERATE_INTERFACE. If
     14        HEADER_ONLY is not specified, append ${_filewe}_i.c to the OUTPUT.
     15        Only AccessibleStates.idl and IA2CommonTypes.idl are marked with
     16        HEADER_ONLY.
     17
     18        Removed _defines and _depends options to simplify
     19        GENERATE_INTERFACE.
     20
     21        * PlatformWin.cmake:
     22
    1232020-02-10  Truitt Savell  <tsavell@apple.com>
    224
  • trunk/Source/WebKitLegacy/PlatformWin.cmake

    r255670 r256419  
    274274source_group(Classes FILES ${WebKitLegacy_SOURCES_Classes})
    275275source_group(WebCoreSupport FILES ${WebKitLegacy_SOURCES_WebCoreSupport})
    276 
    277 # Build the COM interface:
    278 macro(GENERATE_INTERFACE _infile _defines _depends)
    279     get_filename_component(_filewe ${_infile} NAME_WE)
    280     add_custom_command(
    281         OUTPUT  ${WebKitLegacy_DERIVED_SOURCES_DIR}/Interfaces/${_filewe}.h
    282         MAIN_DEPENDENCY ${_infile}
    283         DEPENDS ${_depends}
    284         COMMAND midl.exe /I "${CMAKE_CURRENT_SOURCE_DIR}/win/Interfaces" /I "${CMAKE_CURRENT_SOURCE_DIR}/win/Interfaces/Accessible2" /I "${WebKitLegacy_DERIVED_SOURCES_DIR}/include" /I "${CMAKE_CURRENT_SOURCE_DIR}/win" /WX /char signed /env win32 /tlb "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${_filewe}.tlb" /out "${WebKitLegacy_DERIVED_SOURCES_DIR}/Interfaces" /h "${WebKitLegacy_DERIVED_SOURCES_DIR}/Interfaces/${_filewe}.h" /iid "${_filewe}_i.c" ${_defines} "${CMAKE_CURRENT_SOURCE_DIR}/${_infile}"
    285         USES_TERMINAL VERBATIM)
    286     set_source_files_properties(${WebKitLegacy_DERIVED_SOURCES_DIR}/Interfaces/${_filewe}.h PROPERTIES GENERATED TRUE)
    287     set_source_files_properties(${WebKitLegacy_DERIVED_SOURCES_DIR}/Interfaces/${_filewe}_i.c PROPERTIES GENERATED TRUE)
    288 endmacro()
    289276
    290277set(MIDL_DEFINES /D\ \"__PRODUCTION__=01\")
     
    385372)
    386373
     374# Build the COM interface:
     375function(GENERATE_INTERFACE _infile)
     376    cmake_parse_arguments(opt "HEADER_ONLY" "" "" ${ARGN})
     377    get_filename_component(_filewe ${_infile} NAME_WE)
     378    set(output ${WebKitLegacy_DERIVED_SOURCES_DIR}/Interfaces/${_filewe}.h)
     379    if (NOT ${opt_HEADER_ONLY})
     380        list(APPEND output ${WebKitLegacy_DERIVED_SOURCES_DIR}/Interfaces/${_filewe}_i.c)
     381    endif ()
     382    add_custom_command(
     383        OUTPUT ${output}
     384        MAIN_DEPENDENCY ${_infile}
     385        DEPENDS ${WEBKITLEGACY_IDL_DEPENDENCIES}
     386        COMMAND midl.exe /I "${CMAKE_CURRENT_SOURCE_DIR}/win/Interfaces" /I "${CMAKE_CURRENT_SOURCE_DIR}/win/Interfaces/Accessible2" /I "${WebKitLegacy_DERIVED_SOURCES_DIR}/include" /I "${CMAKE_CURRENT_SOURCE_DIR}/win" /WX /char signed /env win32 /tlb "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${_filewe}.tlb" /out "${WebKitLegacy_DERIVED_SOURCES_DIR}/Interfaces" /h "${WebKitLegacy_DERIVED_SOURCES_DIR}/Interfaces/${_filewe}.h" /iid "${_filewe}_i.c" ${MIDL_DEFINES} "${CMAKE_CURRENT_SOURCE_DIR}/${_infile}"
     387        USES_TERMINAL VERBATIM)
     388endfunction()
     389
    387390add_custom_command(
    388391    OUTPUT ${WebKitLegacy_DERIVED_SOURCES_DIR}/include/autoversion.h
     
    391394    VERBATIM)
    392395
    393 GENERATE_INTERFACE(win/Interfaces/WebKit.idl ${MIDL_DEFINES} "${WEBKITLEGACY_IDL_DEPENDENCIES}")
    394 GENERATE_INTERFACE(win/Interfaces/Accessible2/AccessibleApplication.idl ${MIDL_DEFINES} "${WEBKITLEGACY_IDL_DEPENDENCIES}")
    395 GENERATE_INTERFACE(win/Interfaces/Accessible2/Accessible2.idl ${MIDL_DEFINES} "${WEBKITLEGACY_IDL_DEPENDENCIES}")
    396 GENERATE_INTERFACE(win/Interfaces/Accessible2/Accessible2_2.idl ${MIDL_DEFINES} "${WEBKITLEGACY_IDL_DEPENDENCIES}")
    397 GENERATE_INTERFACE(win/Interfaces/Accessible2/AccessibleRelation.idl ${MIDL_DEFINES} "${WEBKITLEGACY_IDL_DEPENDENCIES}")
    398 GENERATE_INTERFACE(win/Interfaces/Accessible2/AccessibleStates.idl ${MIDL_DEFINES} "${WEBKITLEGACY_IDL_DEPENDENCIES}")
    399 GENERATE_INTERFACE(win/Interfaces/Accessible2/IA2CommonTypes.idl ${MIDL_DEFINES} "${WEBKITLEGACY_IDL_DEPENDENCIES}")
    400 GENERATE_INTERFACE(win/Interfaces/Accessible2/AccessibleEditableText.idl ${MIDL_DEFINES} "${WEBKITLEGACY_IDL_DEPENDENCIES}")
    401 GENERATE_INTERFACE(win/Interfaces/Accessible2/AccessibleText.idl ${MIDL_DEFINES} "${WEBKITLEGACY_IDL_DEPENDENCIES}")
    402 GENERATE_INTERFACE(win/Interfaces/Accessible2/AccessibleText2.idl ${MIDL_DEFINES} "${WEBKITLEGACY_IDL_DEPENDENCIES}")
     396GENERATE_INTERFACE(win/Interfaces/WebKit.idl)
     397GENERATE_INTERFACE(win/Interfaces/Accessible2/AccessibleApplication.idl)
     398GENERATE_INTERFACE(win/Interfaces/Accessible2/Accessible2.idl)
     399GENERATE_INTERFACE(win/Interfaces/Accessible2/Accessible2_2.idl)
     400GENERATE_INTERFACE(win/Interfaces/Accessible2/AccessibleRelation.idl)
     401GENERATE_INTERFACE(win/Interfaces/Accessible2/AccessibleStates.idl HEADER_ONLY)
     402GENERATE_INTERFACE(win/Interfaces/Accessible2/IA2CommonTypes.idl HEADER_ONLY)
     403GENERATE_INTERFACE(win/Interfaces/Accessible2/AccessibleEditableText.idl)
     404GENERATE_INTERFACE(win/Interfaces/Accessible2/AccessibleText.idl)
     405GENERATE_INTERFACE(win/Interfaces/Accessible2/AccessibleText2.idl)
    403406
    404407add_library(WebKitLegacyGUID STATIC
     
    436439    Usp10
    437440    Version
    438     WebKitGUID${DEBUG_SUFFIX}
     441    WebKitLegacyGUID
    439442    WindowsCodecs
    440443    Winmm
Note: See TracChangeset for help on using the changeset viewer.