1 include(platform/TextureMapper.cmake)
   2 
   3 set(WebCore_LIBRARY_TYPE SHARED)
   4 
   5 list(APPEND WebCore_INCLUDE_DIRECTORIES
   6     "${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}"
   7     "${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/inspector"
   8     "${JAVASCRIPTCORE_DIR}"
   9     "${JAVASCRIPTCORE_DIR}/ForwardingHeaders"
  10     "${JAVASCRIPTCORE_DIR}/API"
  11     "${JAVASCRIPTCORE_DIR}/assembler"
  12     "${JAVASCRIPTCORE_DIR}/bytecode"
  13     "${JAVASCRIPTCORE_DIR}/bytecompiler"
  14     "${JAVASCRIPTCORE_DIR}/dfg"
  15     "${JAVASCRIPTCORE_DIR}/disassembler"
  16     "${JAVASCRIPTCORE_DIR}/heap"
  17     "${JAVASCRIPTCORE_DIR}/debugger"
  18     "${JAVASCRIPTCORE_DIR}/interpreter"
  19     "${JAVASCRIPTCORE_DIR}/jit"
  20     "${JAVASCRIPTCORE_DIR}/llint"
  21     "${JAVASCRIPTCORE_DIR}/parser"
  22     "${JAVASCRIPTCORE_DIR}/profiler"
  23     "${JAVASCRIPTCORE_DIR}/runtime"
  24     "${JAVASCRIPTCORE_DIR}/yarr"
  25     "${WEBCORE_DIR}/accessibility"
  26     "${WEBCORE_DIR}/platform/java"
  27     "${WEBCORE_DIR}/platform/graphics/java"
  28     "${WEBCORE_DIR}/platform/graphics/freetype"
  29     "${WEBCORE_DIR}/platform/graphics/opengl"
  30     "${WEBCORE_DIR}/platform/graphics/opentype"
  31     "${WEBCORE_DIR}/platform/linux"
  32     "${WEBCORE_DIR}/platform/mediastream/openwebrtc"
  33     "${WEBCORE_DIR}/platform/network"
  34     "${WEBCORE_DIR}/platform/network/java"
  35     "${WEBCORE_DIR}/bindings/java"
  36     "${WEBCORE_DIR}/page/java"
  37     "${WEBCORE_DIR}/platform/graphics"
  38     "${WEBCORE_DIR}/bridge"
  39     "${WEBCORE_DIR}/bridge/c"
  40     "${WEBCORE_DIR}/bridge/jni"
  41     "${WEBCORE_DIR}/bridge/jni/jsc"
  42     "${WEBCORE_DIR}/bridge/jsc"
  43     "${DERIVED_SOURCES_DIR}/ForwardingHeaders/JavaScriptCore"
  44     "${CMAKE_BINARY_DIR}/../../gensrc/headers/javafx.web"
  45     "${CMAKE_BINARY_DIR}/WebCore/generated"
  46     "${WTF_DIR}"
  47     "${WEBKIT_DIR}"
  48     "${THIRDPARTY_DIR}/sqlite"
  49 )
  50 
  51 list(APPEND WebCore_SYSTEM_INCLUDE_DIRECTORIES
  52     ${JAVA_INCLUDE_PATH}
  53     ${JAVA_INCLUDE_PATH2}
  54 )
  55 
  56 list(APPEND WebCore_SOURCES
  57     bridge/jni/JNIUtility.cpp
  58     bridge/jni/JobjectWrapper.cpp
  59     bridge/jni/jsc/JavaArrayJSC.cpp
  60     bridge/jni/jsc/JavaClassJSC.cpp
  61     bridge/jni/jsc/JavaFieldJSC.cpp
  62     bridge/jni/jsc/JavaInstanceJSC.cpp
  63     bridge/jni/jsc/JavaMethodJSC.cpp
  64     bridge/jni/jsc/JavaRuntimeObject.cpp
  65     bridge/jni/jsc/JNIUtilityPrivate.cpp
  66     editing/java/EditorJava.cpp
  67     platform/java/BridgeUtils.cpp
  68     platform/java/ColorChooserJava.cpp
  69     platform/java/ContextMenuClientJava.cpp
  70     platform/java/ContextMenuJava.cpp
  71     platform/java/CursorJava.cpp
  72     platform/java/DragClientJava.cpp
  73     platform/java/DragDataJava.cpp
  74     platform/java/EditorClientJava.cpp
  75     platform/java/EventLoopJava.cpp
  76     platform/java/FileChooserJava.cpp
  77     platform/java/FileSystemJava.cpp
  78     platform/java/FrameLoaderClientJava.cpp
  79     platform/java/VisitedLinkStoreJava.cpp
  80     platform/java/IDNJava.cpp
  81     platform/java/InspectorClientJava.cpp
  82     # platform/java/JavaEnv.cpp
  83     platform/java/KeyboardEventJava.cpp
  84     platform/java/KeyedCodingJava.cpp
  85     platform/java/LanguageJava.cpp
  86     platform/java/LocalizedStringsJava.cpp
  87     platform/java/LoggingJava.cpp
  88     platform/java/MIMETypeRegistryJava.cpp
  89     platform/java/MouseEventJava.cpp
  90     platform/java/PasteboardJava.cpp
  91     platform/java/PasteboardUtilitiesJava.cpp
  92     platform/java/PlatformScreenJava.cpp
  93     platform/java/PlatformStrategiesJava.cpp
  94     platform/KillRingNone.cpp
  95     platform/java/PluginDataJava.cpp
  96     platform/java/PluginInfoStoreJava.cpp
  97     platform/java/PluginViewJava.cpp
  98     platform/java/PluginWidgetJava.cpp
  99     platform/java/PopupMenuJava.cpp
 100     platform/java/RenderThemeJava.cpp
 101     platform/java/ScrollbarThemeJava.cpp
 102     platform/java/SharedBufferJava.cpp
 103     platform/java/MainThreadSharedTimerJava.cpp
 104     platform/java/SoundJava.cpp
 105     platform/java/StringJava.cpp
 106     platform/java/TemporaryLinkStubsJava.cpp
 107     platform/java/TextBreakIteratorInternalICUJava.cpp #ICU_UNICODE=1 //XXX: make switch for ICU_UNICODE
 108     # platform/java/TextBreakIteratorJava.cpp #ICU_UNICODE=0
 109     # platform/java/TextCodecJava.cpp #ICU_UNICODE=0
 110     # platform/java/TextNormalizerJava.cpp #ICU_UNICODE=0
 111     platform/java/TouchEventJava.cpp
 112     platform/java/WebPage.cpp
 113     platform/java/WheelEventJava.cpp
 114     platform/java/WidgetJava.cpp
 115     platform/java/api/BackForwardListJava.cpp
 116     platform/java/api/PageCacheJava.cpp
 117     platform/graphics/java/BitmapImageJava.cpp
 118     platform/graphics/java/BufferImageJava.cpp
 119     # platform/graphics/java/BufferImageSkiaJava.cpp
 120     platform/graphics/java/ChromiumBridge.cpp
 121     platform/graphics/java/FontCacheJava.cpp
 122     platform/graphics/java/FontCustomPlatformData.cpp
 123     platform/graphics/java/FontDataJava.cpp
 124     platform/graphics/java/FontJava.cpp
 125     platform/graphics/java/FontPlatformDataJava.cpp
 126     platform/graphics/java/GlyphPageTreeNodeJava.cpp
 127     platform/graphics/java/GraphicsContextJava.cpp
 128     platform/graphics/java/IconJava.cpp
 129     platform/graphics/java/ImageBufferJava.cpp
 130     platform/graphics/java/ImageJava.cpp
 131     platform/graphics/java/ImageSourceJava.cpp  #//XXX: contains(DEFINES, IMAGEIO=1) {
 132     platform/graphics/java/MediaPlayerPrivateJava.cpp
 133     html/shadow/MediaControlsApple.cpp
 134     platform/graphics/java/PathJava.cpp
 135     # platform/graphics/java/PlatformContextSkiaJava.cpp
 136     platform/graphics/java/RenderingQueue.cpp
 137     platform/graphics/java/RQRef.cpp
 138 
 139     platform/network/java/SocketStreamHandleJava.cpp
 140     platform/network/java/SynchronousLoaderClientJava.cpp
 141     platform/network/java/URLLoader.cpp
 142     platform/network/NetworkStorageSessionStub.cpp
 143 
 144     # FIXME-java:
 145     # platform/text/LocaleICU.cpp
 146     platform/text/LocaleNone.cpp
 147     platform/text/Hyphenation.cpp
 148 
 149     platform/network/java/CookieJarJava.cpp
 150     platform/network/java/DNSJava.cpp
 151     platform/network/java/ResourceHandleJava.cpp
 152     platform/network/java/ResourceRequestJava.cpp
 153 
 154     bindings/java/JavaDOMUtils.cpp
 155     bindings/java/JavaEventListener.cpp
 156 
 157     page/java/ChromeClientJava.cpp
 158     page/java/DragControllerJava.cpp
 159     page/java/EventHandlerJava.cpp
 160 
 161     # FIXME-java: Move WebKit interface specific files into WebKit dir
 162     ../WebKit/Storage/StorageAreaImpl.cpp
 163     ../WebKit/Storage/StorageAreaSync.cpp
 164     ../WebKit/Storage/StorageNamespaceImpl.cpp
 165     ../WebKit/Storage/StorageSyncManager.cpp
 166     ../WebKit/Storage/StorageThread.cpp
 167     ../WebKit/Storage/StorageTracker.cpp
 168     ../WebKit/Storage/WebDatabaseProvider.cpp
 169     ../WebKit/Storage/WebStorageNamespaceProvider.cpp
 170     ../WebKit/WebCoreSupport/WebResourceLoadScheduler.cpp
 171 )
 172 
 173 if (WIN32)
 174     list(APPEND WebCore_SOURCES
 175       platform/win/SystemInfo.cpp
 176     )
 177     list(APPEND WebCore_INCLUDE_DIRECTORIES
 178         ${THIRDPARTY_DIR}/libxml/win32/include
 179         ${THIRDPARTY_DIR}/libxml/src/include
 180         ${THIRDPARTY_DIR}/libxslt
 181     )
 182     list(APPEND WebCore_LIBRARIES
 183         XMLJava
 184         XSLTJava
 185     )
 186 elseif(APPLE)
 187     list(APPEND WebCore_INCLUDE_DIRECTORIES
 188         ${WEBCORE_DIR}/icu
 189         ${WEBCORE_DIR}/platform/mac
 190     )
 191     list(APPEND WebCore_SOURCES
 192         editing/SmartReplaceCF.cpp
 193         # platform/cf/FileSystemCF.cpp
 194         platform/VNodeTracker.cpp
 195         platform/cf/SharedBufferCF.cpp
 196         platform/cf/URLCF.cpp
 197         platform/cf/CFURLExtras.cpp
 198     )
 199     find_library(ACCELERATE_LIBRARY accelerate)
 200     list(APPEND WebCore_LIBRARIES
 201         ${ACCELERATE_LIBRARY}
 202     )
 203 elseif(UNIX)
 204     list(APPEND WebCore_SOURCES
 205       platform/linux/MemoryPressureHandlerLinux.cpp
 206     )
 207 endif()
 208 
 209 # System libraries are used on non windows platform
 210 if (NOT WIN32)
 211     list(APPEND WebCore_LIBRARIES
 212         ${LIBXML2_LIBRARIES}
 213         ${LIBXSLT_LIBRARIES}
 214     )
 215 
 216     list(APPEND WebCore_SYSTEM_INCLUDE_DIRECTORIES
 217         ${LIBXML2_INCLUDE_DIR}
 218         ${LIBXSLT_INCLUDE_DIR}
 219     )
 220 endif ()
 221 
 222 list(APPEND WebCore_USER_AGENT_STYLE_SHEETS
 223     ${WEBCORE_DIR}/css/mediaControlsGtk.css
 224 )
 225 
 226 set(WebCore_USER_AGENT_SCRIPTS
 227     ${WEBCORE_DIR}/English.lproj/mediaControlsLocalizedStrings.js
 228     ${WEBCORE_DIR}/Modules/mediacontrols/mediaControlsBase.js
 229     ${WEBCORE_DIR}/Modules/mediacontrols/mediaControlsGtk.js
 230 )
 231 
 232 add_custom_command(
 233     OUTPUT ${DERIVED_SOURCES_WEBCORE_DIR}/WebKitVersion.h
 234     MAIN_DEPENDENCY ${WEBKIT_DIR}/scripts/generate-webkitversion.pl
 235     DEPENDS ${WEBKIT_DIR}/mac/Configurations/Version.xcconfig
 236     COMMAND ${PERL_EXECUTABLE} ${WEBKIT_DIR}/scripts/generate-webkitversion.pl --config ${WEBKIT_DIR}/mac/Configurations/Version.xcconfig --outputDir ${DERIVED_SOURCES_WEBCORE_DIR}
 237     VERBATIM)
 238 list(APPEND WebCore_SOURCES ${DERIVED_SOURCES_WEBCORE_DIR}/WebKitVersion.h)
 239 
 240 set(WebCore_FORWARDING_HEADERS_FILES
 241     loader/appcache/ApplicationCacheStorage.h
 242 )
 243 
 244 set(WebCore_USER_AGENT_SCRIPTS_DEPENDENCIES ${WEBCORE_DIR}/platform/java/RenderThemeJava.cpp)
 245 
 246 list(APPEND WebCore_LIBRARIES
 247     SqliteJava
 248 )
 249 
 250 include_directories(
 251     "${WebCore_INCLUDE_DIRECTORIES}"
 252     "${DERIVED_SOURCES_DIR}"
 253 )
 254 
 255 include_directories(SYSTEM
 256     ${WebCore_SYSTEM_INCLUDE_DIRECTORIES}
 257 )
 258 
 259 add_definitions(-DIMAGEIO=1)
 260 
 261 list(APPEND WebCore_LIBRARIES
 262     ${JAVA_JVM_LIBRARY}
 263 )
 264 
 265 add_definitions(-DSTATICALLY_LINKED_WITH_JavaScriptCore)
 266 add_definitions(-DSTATICALLY_LINKED_WITH_WTF)
 267 
 268 list(APPEND WebCore_Java_IDL_FILES
 269     css/Counter.idl
 270     css/CSSCharsetRule.idl
 271     css/CSSFontFaceRule.idl
 272     css/CSSImportRule.idl
 273     css/CSSMediaRule.idl
 274     css/CSSPageRule.idl
 275     css/CSSPrimitiveValue.idl
 276     css/CSSRule.idl
 277     css/CSSRuleList.idl
 278     css/CSSStyleDeclaration.idl
 279     css/CSSStyleRule.idl
 280     css/CSSStyleSheet.idl
 281     css/CSSUnknownRule.idl
 282     css/CSSValue.idl
 283     css/CSSValueList.idl
 284     css/MediaList.idl
 285     css/Rect.idl
 286     css/RGBColor.idl
 287     css/StyleSheet.idl
 288     css/StyleSheetList.idl
 289     dom/Attr.idl
 290     dom/CDATASection.idl
 291     dom/CharacterData.idl
 292     dom/Comment.idl
 293     dom/DocumentFragment.idl
 294     dom/Document.idl
 295     dom/DocumentType.idl
 296     dom/DOMImplementation.idl
 297     dom/DOMStringList.idl
 298     dom/Element.idl
 299     dom/Entity.idl
 300     dom/EntityReference.idl
 301     dom/Event.idl
 302     dom/EventTarget.idl
 303     dom/KeyboardEvent.idl
 304     dom/MouseEvent.idl
 305     dom/MutationEvent.idl
 306     dom/NamedNodeMap.idl
 307     dom/Node.idl
 308     dom/NodeFilter.idl
 309     dom/NodeIterator.idl
 310     dom/NodeList.idl
 311     # dom/Notation.idl
 312     dom/ProcessingInstruction.idl
 313     dom/Range.idl
 314     dom/Text.idl
 315     dom/TreeWalker.idl
 316     dom/UIEvent.idl
 317     dom/WheelEvent.idl
 318     html/HTMLAnchorElement.idl
 319     html/HTMLAppletElement.idl
 320     html/HTMLAreaElement.idl
 321     html/HTMLBaseElement.idl
 322     html/HTMLBaseFontElement.idl
 323     html/HTMLBodyElement.idl
 324     html/HTMLBRElement.idl
 325     html/HTMLButtonElement.idl
 326     html/HTMLCollection.idl
 327     html/HTMLDirectoryElement.idl
 328     html/HTMLDivElement.idl
 329     html/HTMLDListElement.idl
 330     html/HTMLDocument.idl
 331     html/HTMLElement.idl
 332     html/HTMLFieldSetElement.idl
 333     html/HTMLFontElement.idl
 334     html/HTMLFormElement.idl
 335     html/HTMLFrameElement.idl
 336     html/HTMLFrameSetElement.idl
 337     html/HTMLHeadElement.idl
 338     html/HTMLHeadingElement.idl
 339     html/HTMLHRElement.idl
 340     html/HTMLHtmlElement.idl
 341     html/HTMLIFrameElement.idl
 342     html/HTMLImageElement.idl
 343     html/HTMLInputElement.idl
 344     html/HTMLLabelElement.idl
 345     html/HTMLLegendElement.idl
 346     html/HTMLLIElement.idl
 347     html/HTMLLinkElement.idl
 348     html/HTMLMapElement.idl
 349     html/HTMLMenuElement.idl
 350     html/HTMLMetaElement.idl
 351     html/HTMLModElement.idl
 352     html/HTMLObjectElement.idl
 353     html/HTMLOListElement.idl
 354     html/HTMLOptGroupElement.idl
 355     html/HTMLOptionElement.idl
 356     html/HTMLOptionsCollection.idl
 357     html/HTMLParagraphElement.idl
 358     html/HTMLParamElement.idl
 359     html/HTMLPreElement.idl
 360     html/HTMLQuoteElement.idl
 361     html/HTMLScriptElement.idl
 362     html/HTMLSelectElement.idl
 363     html/HTMLStyleElement.idl
 364     html/HTMLTableCaptionElement.idl
 365     html/HTMLTableCellElement.idl
 366     html/HTMLTableColElement.idl
 367     html/HTMLTableElement.idl
 368     html/HTMLTableRowElement.idl
 369     html/HTMLTableSectionElement.idl
 370     html/HTMLTextAreaElement.idl
 371     html/HTMLTitleElement.idl
 372     html/HTMLUListElement.idl
 373     page/DOMWindow.idl
 374     page/DOMSelection.idl
 375     xml/XPathExpression.idl
 376     xml/XPathNSResolver.idl
 377     xml/XPathResult.idl
 378 )
 379 
 380 set(FEATURE_DEFINES_JAVA "LANGUAGE_JAVA=1 ${FEATURE_DEFINES_WITH_SPACE_SEPARATOR}")
 381 string(REPLACE "ENABLE_INDEXED_DATABASE=1" "" FEATURE_DEFINES_JAVA ${FEATURE_DEFINES_JAVA})
 382 string(REPLACE REGEX "ENABLE_SVG[A-Z_]+=1" "" FEATURE_DEFINES_JAVA ${FEATURE_DEFINES_JAVA})
 383 
 384 set(ADDITIONAL_BINDINGS_DEPENDENCIES
 385     ${WINDOW_CONSTRUCTORS_FILE}
 386     ${WORKERGLOBALSCOPE_CONSTRUCTORS_FILE}
 387     ${DEDICATEDWORKERGLOBALSCOPE_CONSTRUCTORS_FILE}
 388 )
 389 
 390 foreach (_idl ${WebCore_Java_IDL_FILES})
 391     set(IDL_FILES_LIST "${IDL_FILES_LIST}${WEBCORE_DIR}/${_idl}\n")
 392 endforeach ()
 393 
 394 
 395 GENERATE_BINDINGS(JavaDOMBindings_SOURCES
 396     "${WebCore_Java_IDL_FILES}"
 397     "${WEBCORE_DIR}"
 398     "${IDL_INCLUDES}"
 399     "${FEATURE_DEFINES_JAVA}"
 400     ${DERIVED_SOURCES_WEBCORE_DIR}/nativeJava
 401     Java Java cpp
 402     ${IDL_ATTRIBUTES_FILE}
 403     ${SUPPLEMENTAL_DEPENDENCY_FILE}
 404     ${ADDITIONAL_BINDINGS_DEPENDENCIES})
 405 
 406 list(APPEND WebCore_SOURCES ${JavaDOMBindings_SOURCES})
 407 
 408 set (WebCore_FORWARDING_HEADERS_DIRECTORIES
 409     .
 410     accessibility
 411     bindings
 412     bridge
 413     contentextensions
 414     css
 415     dom
 416     editing
 417     history
 418     html
 419     inspector
 420     loader
 421     page
 422     platform
 423     plugins
 424     rendering
 425     storage
 426     style
 427     svg
 428     websockets
 429     workers
 430     xml
 431 
 432     Modules/geolocation
 433     Modules/indexeddb
 434     Modules/indexeddb/legacy
 435     Modules/indexeddb/shared
 436     Modules/notifications
 437     Modules/webdatabase
 438 
 439     accessibility/java
 440 
 441     bindings/generic
 442     bindings/js
 443 
 444     bridge/c
 445     bridge/jsc
 446 
 447     html/forms
 448     html/parser
 449     html/shadow
 450     html/track
 451 
 452     loader/appcache
 453     loader/archive
 454     loader/cache
 455     loader/icon
 456 
 457     page/animation
 458     page/csp
 459     page/scrolling
 460     page/java
 461 
 462     platform/animation
 463     platform/audio
 464     platform/graphics
 465     platform/network
 466     platform/network/java
 467     platform/sql
 468     platform/text
 469     platform/java
 470 
 471     platform/text/transcoder
 472 
 473     rendering/line
 474     rendering/shapes
 475     rendering/style
 476     rendering/svg
 477 
 478     svg/animation
 479     svg/graphics
 480     svg/properties
 481 
 482     svg/graphics/filters)
 483 
 484 WEBKIT_CREATE_FORWARDING_HEADERS(WebCore DIRECTORIES ${WebCore_FORWARDING_HEADERS_DIRECTORIES})
 485 
 486 if (WIN32)
 487     file(MAKE_DIRECTORY ${DERIVED_SOURCES_DIR}/ForwardingHeaders/WebCore)
 488 
 489     set(WebCore_PRE_BUILD_COMMAND "${CMAKE_BINARY_DIR}/DerivedSources/WebCore/preBuild.cmd")
 490     file(WRITE "${WebCore_PRE_BUILD_COMMAND}" "@xcopy /y /s /d /f \"${WEBCORE_DIR}/ForwardingHeaders/*.h\" \"${DERIVED_SOURCES_DIR}/ForwardingHeaders/WebCore\" >nul 2>nul\n")
 491     foreach (_directory ${WebCore_FORWARDING_HEADERS_DIRECTORIES})
 492         file(APPEND "${WebCore_PRE_BUILD_COMMAND}" "@xcopy /y /d /f \"${WEBCORE_DIR}/${_directory}/*.h\" \"${DERIVED_SOURCES_DIR}/ForwardingHeaders/WebCore\" >nul 2>nul\n")
 493     endforeach ()
 494 
 495     set(WebCore_POST_BUILD_COMMAND "${CMAKE_BINARY_DIR}/DerivedSources/WebCore/postBuild.cmd")
 496     file(WRITE "${WebCore_POST_BUILD_COMMAND}" "@xcopy /y /s /d /f \"${DERIVED_SOURCES_WEBCORE_DIR}/*.h\" \"${DERIVED_SOURCES_DIR}/ForwardingHeaders/WebCore\" >nul 2>nul\n")
 497 endif ()