1. 23 Sep, 2013 1 commit
    • zandobersek@gmail.com's avatar
      [Autotools] Rework the build target selection · bca0b279
      zandobersek@gmail.com authored
      Reviewed by Gustavo Noronha Silva.
      Replace the --with-target configuration flag with target-specific --enable-*-target flags:
      - --enable-x11-target
      - --enable-wayland-target
      - --enable-win32-target
      - --enable-quartz-target
      - --enable-directfb-target
      By default, the X11 target is enabled. This default is preserved only if no --enable-*-target flag
      is passed on the command line. When that occurs, the newly-constructed list of build targets is
      used to determine what build targets should actually be built. So for instance, executing just
      `./configure` would only enable the X11 target as that's the default, and executing
      `./configure --enable-wayland-target` would only enable the Wayland target, as the defaults are
      completely ignored.
      * Source/autotools/CheckSystemAndBasicDependencies.m4: Abort if grep was not found, just in case.
      * Source/autotools/CustomMacros.m4: The new file that contains helpful custom macros.
      * Source/autotools/FindDependencies.m4: Use the appropriate 'enable_*_target' references instead of 'with_*target'.
      * Source/autotools/PrintBuildConfiguration.m4: Use the new AM_APPEND_TO_DESCRIPTION macro to construct a pretty-looking
      description string of what targets will be built.
      * Source/autotools/ReadCommandLineArguments.m4: Replace the --with-target configuration flag and the related
      hacks with the set of --enable-*-target flags. The new AM_DETERMINE_BUILD_TARGET_STATUS macro is used to determine
      whether to enable specific build targets, based indirectly on the passed-in --enable-*-target flags.
      * Source/autotools/SetupAutoconfHeader.m4: Use the appropriate 'enable_*_target' references instead of 'with_*target'.
      * Source/autotools/SetupAutomake.m4: Use the appropriate 'enable_*_target' references instead of 'with_*target'.
      * configure.ac: Include the new CustomMacros.m4 file.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156271 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  2. 11 Sep, 2013 1 commit
  3. 04 Sep, 2013 1 commit
    • zandobersek@gmail.com's avatar
      [GTK] Add support for the Wayland build target · 500ca7b6
      zandobersek@gmail.com authored
      Reviewed by Gustavo Noronha Silva.
      Add support for building the GTK port with Wayland as the target. The Wayland target can be the sole target
      that's enabled, or it can be enabled in parallel with the X11 target.
      Each of those two targets, when enabled, checks for the corresponding GTK+ windowing dependency being present.
      In the case of only the Wayland target being enabled, the accelerated compositing feature is disabled at
      build-time as the feature is not yet supported under the Wayland display protocol. X11-based plugin support is
      also disabled under that configuration, even if the WebKitPluginProcess is still built but is left non-operational.
      GLX support is also disabled if not building the X11 target.
      The Wayland target can be enabled through using the --with-target configuration option that now accepts two
      additional values:
      - 'wayland' - only enables the Wayland target,
      - 'x11,wayland' - enables the X11 and Wayland targets that are to be built in parallel.
      This makes it possible to build the GTK port of WebKit with the Wayland target, relying solely on the GTK+
      dependency that only has the Wayland backend enabled, and removes linking against any X11-related library.
      Note that at the moment there seem to be other dependencies that still link to X11-related libraries.
      Complete functionality is not yet guaranteed, but is of course the goal.
      * Source/autotools/FindDependencies.m4: Store the version of the basic GTK+ dependency that was found.
      This is later used to check that the GTK+ X11 and GTK+ Wayland dependencies are of the same version. The
      X11-specific dependencies are grouped into one section (apart from the XComposite and XDamage dependencies),
      also checking for the GTK+ X11 dependency. If the X11 target is not enabled, the GLX dependency is disabled.
      Additionally check for the GTK+ Wayland dependency if the Wayland target is enabled.
      We only check for the presence and correct version of the GTK+ X11 and Wayland dependencies, if necessary.
      Check for the XComposite and XDamage dependencies if the X11 target is enabled (in addition to the OpenGL
      headers being present).
      In case of the Wayland target being enabled while the X11 target is not, disable the accelerated compositing
      feature as there's no support yet for it under the Wayland display protocol.
      * Source/autotools/PrintBuildConfiguration.m4: The build configuration should now print out 'GDK targets'.
      * Source/autotools/ReadCommandLineArguments.m4: The --with-target option can now take two additional values,
      'wayland' and 'x11,wayland'. The first one enables only the Wayland target, while the second one enables both
      X11 and Wayland targets. This makes it possible to build the GTK port with both X11 and Wayland display protocols
      supported in the same build.
      We must now check the outcoming with_target variable to see if the special case of building one or both of the
      possible parallel targets was chosen. We define with_x11_target and with_wayland_target variables if the
      with_target value applies to that case.
      * Source/autotools/SetupAutoconfHeader.m4: Do not define the XP_UNIX macro on builds that enable the Wayland-only
      target. It should still be defined if we're building both X11 and Wayland targets in parallel.
      * Source/autotools/SetupAutomake.m4: Define TARGET_X11 and TARGET_WAYLAND Automake conditionals if the new
      with_x11_target or with_wayland_target variables were set, respectively. Additionall, define the TARGET_X11_OR_WAYLAND
      Automake conditional if we're building either of the two targets.
      * GNUmakefile.list.am: Reorder the Source/WebCore/plugins/np* source files.
      The X11-specific source files should only be included if the X11 target is being built. PluginPackageNone and
      PluginViewNone source files must be included in non-X11-target builds. Other source files that were previously
      guarded with the TARGET_X11 conditional should also be built for the Wayland target, so the new TARGET_X11_OR_WAYLAND
      conditional is used. If neither of those two targets is being built we fall back to adding source files to the build
      as necessary by the actual build target.
      * platform/gtk/GtkVersioning.c:
      (gdk_screen_get_monitor_workarea): Additionally guard bits of code that depend on the GDK_WINDOWING_X11 macro being
      defined - these should only be built when building the X11 target, checked for with PLATFORM(X11).
      * WebCoreSupport/ChromeClientGtk.cpp:
      (WebKit::createBackingStore): Additionally guard the <gdk/gdkx.h> inclusion and the inclusion and use of
      WidgetBackingStoreGtkX11 with PLATFORM(X11), ensuring this code is built when also building with X11 target
      enabled. GDK_WINDOWING_X11 macro can be defined even if the X11 target is disabled.
      * GNUmakefile.list.am: Build X11-specific NetscapePluginModule and NetscapePlugin classes if building the X11 target,
      fall back to the generic, empty classes otherwise.
      * PluginProcess/unix/PluginProcessMainUnix.cpp:
      (WebKit::PluginProcessMainUnix): Guard the NetscapePluginModule::scanPlugin() invocation with PLUGIN_ARCHITECTURE(X11),
      it's at the moment specific to the X11 implementation of the Netscape plugins.
      * UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp: Guard PluginProcessProxy::scanPlugin() with PLUGIN_ARCHITECTURE(X11),
      just like it's guarded in the PluginProcessProxy class declaration.
      * UIProcess/cairo/BackingStoreCairo.cpp: Additionally guard <gdk/gdkx.h> and WidgetBackingStoreGtkX11 inclusion and use
      with PLATFORM(X11), this code should only be built when building the X11 target.
      * UIProcess/gtk/WebPageProxyGtk.cpp: Guard the createPluginContainer() and windowedPluginGeometryDidChange() methods and their
      helper functions and objects with PLUGIN_ARCHITECTURE(X11), just like they're guarded in the WebPageProxy class declaration.
      * config.h: Only define PLUGIN_ARCHITECTURE_X11 to 1 if we're actually building the X11 target.
      * GNUmakefile.am: Define the additional macros also if building the Wayland target.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@155032 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  4. 28 Aug, 2013 1 commit
    • zandobersek@gmail.com's avatar
      [GTK] Add support for building JSC with FTL JIT enabled · aa396195
      zandobersek@gmail.com authored
      Reviewed by Filip Pizlo.
      * Source/autotools/FindDependencies.m4: Disable FTL JIT if the JIT itself is disabled or if the C++ compiler
      being used is not Clang. Check for llvm-config and use it to properly test for the LLVM >= 3.4 dependency.
      * Source/autotools/PrintBuildConfiguration.m4: Print out the status of the FTL JIT support.
      * Source/autotools/ReadCommandLineArguments.m4: Add a configuration flag for enabling the feature, defaulting
      to 'no' used as the default value for now. This should switch to 'auto' at some point in future.
      * Source/autotools/SetupAutoconfHeader.m4: Define ENABLE_FTL_JIT to a specific value if possible.
      Also define HAVE_LLVM to 1 if the LLVM dependency was satisfied.
      * GNUmakefile.am: Add LLVM_LIBS to the list of linker flags and LLVM_CFLAGS to the list of
      compiler flags for the JSC library.
      * GNUmakefile.list.am: Add the missing build targets.
      * ftl/FTLAbbreviations.h: Include the <cstring> header and use std::strlen. This avoids compilation
      failures when using the Clang compiler with the libstdc++ standard library.
      * wtf/Platform.h: Define ENABLE_FTL_JIT to the value of 1 for the GTK port if building for the x86-64
      architecture with LLVM present and the define not being previously defined. This is applicable when
      configuring the Automake build with '--enable-ftl-jit=auto'.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154747 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  5. 05 Aug, 2013 1 commit
    • zandobersek@gmail.com's avatar
      [Automake] Define ENABLE_JIT through the Autoconf header · a56af6cd
      zandobersek@gmail.com authored
      Reviewed by Martin Robinson.
      Instead of defining the ENABLE_JIT value through JSC_CPPFLAGS, the feature define is
      set to be either enabled or disabled through the Autoconf header, based on the value
      passed through the configuration flag. The 'auto' value is used as default, meaning
      that the feature is enabled or disabled in the Platform.h header based on the platform
      configuration (OS, architecture etc.).
      * Source/autotools/FindDependencies.m4: Remove the JSC_CPPFLAGS definition.
      * Source/autotools/ReadCommandLineArguments.m4: Change the default value to 'auto' instead
      of 'autodetect', as used by other configuration options that take a similar approach to enabling
      a specific feature.
      * Source/autotools/SetupAutoconfHeader.m4: Set a strict value for the ENABLE_JIT define through
      the Autoconf header if the feature was specifically enabled or disabled.
      * GNUmakefile.am: Remove JSC_CPPFLAGS from the cpp flags for the JSC library.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@153703 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  6. 16 Jul, 2013 1 commit
  7. 08 Jul, 2013 1 commit
  8. 01 Jul, 2013 1 commit
    • kov@webkit.org's avatar
      [GTK] Remove unsupported AC backends · 30b49f1f
      kov@webkit.org authored
      Patch by Gustavo Noronha Silva <gustavo.noronha@collabora.com> on 2013-07-01
      Reviewed by Martin Robinson.
      * Source/autotools/FindDependencies.m4: remove checks related to acceleration backend,
      turn them into a check for OpenGL being available, simply.
      * Source/autotools/ReadCommandLineArguments.m4: remove command line option to select
      accelerated backend, it's now auto-detected.
      * Source/autotools/SetupAutoconfHeader.m4: no longer defines USE_CLUTTER and
      * Source/autotools/SetupAutomake.m4: remove checks related to acceleration backend,
      turn them into a check for OpenGL being available, simply.
      * Source/autotools/Versions.m4: no longer check for clutter/clutter-gtk.
      * GNUmakefile.am:
      * GNUmakefile.list.am:
      * Source/WebCore/platform/graphics/PlatformLayer.h: Removed mentions of clutter
      and the texmap cairo backend.
      * platform/graphics/clutter/DrawingBufferClutter.cpp: Removed.
      * platform/graphics/clutter/GraphicsContext3DClutter.cpp: Removed.
      * platform/graphics/clutter/GraphicsContext3DPrivate.cpp: Removed.
      * platform/graphics/clutter/GraphicsContext3DPrivate.h: Removed.
      * platform/graphics/clutter/GraphicsLayerActor.cpp: Removed.
      * platform/graphics/clutter/GraphicsLayerActor.h: Removed.
      * platform/graphics/clutter/GraphicsLayerClutter.cpp: Removed.
      * platform/graphics/clutter/GraphicsLayerClutter.h: Removed.
      * platform/graphics/clutter/PlatformClutterAnimation.cpp: Removed.
      * platform/graphics/clutter/PlatformClutterAnimation.h: Removed.
      * platform/graphics/clutter/PlatformClutterLayerClient.h: Removed.
      * platform/graphics/clutter/TransformationMatrixClutter.cpp: Removed.
      * Source/WebCore/platform/graphics/transforms/TransformationMatrix.h: Removed cogl
      matrix type conversion.
      * GNUmakefile.am:
      * WebCoreSupport/AcceleratedCompositingContext.h: removed clutter and cairo
      * WebCoreSupport/AcceleratedCompositingContextCairo.cpp: Removed.
      * WebCoreSupport/AcceleratedCompositingContextClutter.cpp: Removed.
      * webkit/webkitglobals.cpp:
      (webkitInit): removed clutter-gtk initialization.
      * gtk/jhbuild-optional.modules: no longer needs clutter-gtk, clutter
      and cogl, so removed.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@152275 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  9. 18 Jun, 2013 1 commit
    • commit-queue@webkit.org's avatar
      [GTK][GStreamer] Fullscreen option in video element context menu not working · 8c6441c9
      commit-queue@webkit.org authored
      Fullscreen with native controls is outdated and even broken in
      [GTK][WK2], so they are deactivated for now.
      Patch by Xabier Rodriguez Calvar <calvaris@igalia.com> on 2013-06-18
      Reviewed by Philippe Normand.
      * Source/autotools/SetupAutoconfHeader.m4: Removed the use of
      fullscreen native media controls.
      Patch by Xabier Rodriguez Calvar <calvaris@igalia.com> on 2013-06-18
      Reviewed by Philippe Normand.
      * platform/gtk-wk1/TestExpectations:
      fullscreen/video-controls-drag.html does not time out anymore.
      * platform/gtk-wk2/TestExpectations:
      media/video-display-aspect-ratio.html crashes sometimes.
      * platform/gtk/TestExpectations:
      media/video-playing-and-pause.html was already flaky.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@151674 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  10. 12 May, 2013 1 commit
  11. 22 Apr, 2013 1 commit
    • mrobinson@webkit.org's avatar
      [GTK] Enable introspection always for developer builds · 0547d1d0
      mrobinson@webkit.org authored
      Reviewed by Gustavo Noronha Silva.
      * Source/autotools/SetupAutoconfHeader.m4: No longer expose the ENABLE_INTROSPECTION
      autoconf header variable. It isn't used and it means that when introspection is enabled
      or disabled, there is an unnecessary full rebuild.
      * GNUmakefile.am: Make warnings during gir scanning cause the build to fail. Eliminate
      warnings about deprecated API that the g-ir-scanner uses when generating
      the scanner program. Use --quiet to avoid printing lots of output to
      non-verbose builds.
      * GNUmakefile.am: Make warnings during gir scanning cause the build to fail. Eliminate
      warnings about deprecated API that the g-ir-scanner uses when generating
      the scanner program. Use --quiet.
      * Scripts/webkitdirs.pm:
      (runAutogenForAutotoolsProjectIfNecessary): Always enable introspection
      when using build-webkit.
      * gtk/jhbuildrc: Enable documentation for all jhbuild modules and explicitly
      choose the memory gsettings backend while in the jhbuild. This eliminates
      warnings from programs that fall back to the memory backend.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148916 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  12. 15 Apr, 2013 1 commit
  13. 02 Apr, 2013 1 commit
    • mrobinson@webkit.org's avatar
      [GTK] Make libsecret optional · bbdc4083
      mrobinson@webkit.org authored
      Reviewed by Gustavo Noronha Silva.
      Add a configuration option to disable credential storage and thus remove
      the libsecret dependency. This should make it possible to build WebKit 2.x
      on Windows again.
      * Source/autotools/FindDependencies.m4: Only look for libsecret if credential storage is active.
      * Source/autotools/PrintBuildConfiguration.m4: Print whether or not credential storage is active.
      * Source/autotools/ReadCommandLineArguments.m4: Added an option to control credential storage.
      * Source/autotools/SetupAutoconfHeader.m4: Expose credential storage setting to code.
      Don't try to use libsecret if credential storage is disabled.
      * platform/gtk/GRefPtrGtk.cpp: Protect libsecret sections.
      * platform/gtk/GRefPtrGtk.h: Ditto.
      * platform/network/gtk/CredentialBackingStore.cpp: Ditto.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@147499 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  14. 21 Feb, 2013 1 commit
    • mrobinson@webkit.org's avatar
      [GTK] Move feature overriding to the configure phase · 3e4076e3
      mrobinson@webkit.org authored
      Reviewed by Gustavo Noronha Silva.
      Rework the feature overrides logic so all feature defines go into a
      header rather than the command line. This has a few benefits. Most
      notably, we can reuse the header in the gyp build. Another nice result
      is that changes to the configuration automatically result in a full
      rebuild and Debug and Release builds can have different configurations.
      All feature define processing happens now during the configuration phase,
      instead of when running autogen.sh. This means that we need to distribute
      the feature processing script.
      * GNUmakefile.am: Read feature defines from WebKitFeatures.txt when kicking
      off a build. Also include generate-feature-defines-files in the distribution.
      * Source/autotools/SetupAutoconfHeader.m4: Remove an extra ENABLE_3D_RENDERING
      from the autoconf header, as it is already provided by the feature configuration.
      * Source/autotools/SetupWebKitFeatures.m4: Added.
      * Source/autotools/webkitfeature.m4: Removed. The functionality has been moved
      to SetupWebKitFeatures.m4.
      * autogen.sh: Remove the call to override-feature-defines.
      * configure.ac: Now include SetupWebKitFeatures.
      * GNUmakefile.am: No longer include GNUmakefile.features.am. We don't
      have to process the result of this file or do any modification of
      feature_defines_override, because this variable is gone.
      * Scripts/webkitdirs.pm:
      (runAutogenForAutotoolsProjectIfNecessary): Rename the feature file to
      WebKitFeatureOverrides.txt to better match the other filenames used in
      the new feature processing.
      * gtk/generate-feature-defines-files: Added. A script which takes as an argument
      the default features, overrides them with the contents of WebKitFeatureOverrrides.txt
      and writes WebKitFeatures.txt and WebKitFeatures.h.
      * gtk/override-feature-defines: Removed.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143604 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  15. 13 Feb, 2013 2 commits
  16. 12 Feb, 2013 2 commits
    • commit-queue@webkit.org's avatar
      [GTK] Remove the GLib unicode backend · f9b3c2e3
      commit-queue@webkit.org authored
      Patch by Martin Robinson <mrobinson@igalia.com> on 2013-02-12
      Reviewed by Benjamin Poulain.
      Remove references to the GLib unicode backend from configuration.
      * Source/autotools/FindDependencies.m4:
      * Source/autotools/ReadCommandLineArguments.m4:
      * Source/autotools/SetupAutoconfHeader.m4:
      * Source/autotools/SetupAutomake.m4:
      Remove references to the GLib unicode backend from WebCore.
      * GNUmakefile.list.am: Update the source list.
      * platform/text/gtk/TextBreakIteratorGtk.cpp: Removed.
      * platform/text/gtk/TextCodecGtk.cpp: Removed.
      * platform/text/gtk/TextCodecGtk.h: Removed.
      Remove references to the GLib unicode backend from WTF.
      * GNUmakefile.list.am: Remove GLib unicode files from the source list.
      * wtf/unicode/glib/UnicodeGLib.cpp: Removed.
      * wtf/unicode/glib/UnicodeGLib.h: Removed.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142724 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • mrobinson@webkit.org's avatar
      [GTK] Remove the enable-debug-feature configuration option · afae6164
      mrobinson@webkit.org authored
      Reviewed by Philippe Normand.
      Remove the --enable-debug-feature option from configuration. It doesn't
      do anything that --enable-debug doesn't.
      * Source/autotools/PrintBuildConfiguration.m4: Remove references to --enable-debug-features.
      * Source/autotools/ReadCommandLineArguments.m4: Ditto.
      * Source/autotools/SetupAutoconfHeader.m4: Ditto.
      * Source/autotools/SetupAutomake.m4: Ditto.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142634 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  17. 10 Feb, 2013 1 commit
    • commit-queue@webkit.org's avatar
      Rename ENABLE(GLIB_SUPPORT) to USE(GLIB) · 245e4846
      commit-queue@webkit.org authored
      Patch by Jae Hyun Park <jae.park08@gmail.com> on 2013-02-10
      Reviewed by Philippe Normand.
      Using USE(GLIB) instead of ENABLE(GLIB_SUPPORT) is more consistent with
      the existing macro naming conventions.
      From Platform.h
      USE() - use a particular third-party library or optional OS service
      ENABLE() - turn on a specific feature of WebKit
      * Source/autotools/SetupAutoconfHeader.m4:
      * Source/cmake/OptionsEfl.cmake:
      No new tests, no new functionality.
      * WebCore.pri:
      * gyp/Configuration.gypi:
      * WebView/WebView.mm:
      (-[WebView _commonInitializationWithFrameName:groupName:]):
      (-[WebView _close]):
      * WebView/WebViewData.h:
      * WebView/WebViewInternal.h:
      * WTF.pri:
      * wtf/Platform.h:
      * wtf/gobject/GOwnPtr.cpp:
      * wtf/gobject/GOwnPtr.h:
      * wtf/gobject/GRefPtr.cpp:
      * wtf/gobject/GRefPtr.h:
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142395 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  18. 08 Feb, 2013 1 commit
    • mrobinson@webkit.org's avatar
      [GTK] Split configure.ac into reusable portions · 38e753c5
      mrobinson@webkit.org authored
      Reviewed by Philippe Normand.
      Split up configure.ac into sections based on different "phases"
      of configuration. This should make it easier to find what you are
      looking for as well as creating a "right" place to put things.
      A nice side effect of this is that we can share the different
      modules with a gyp build.
      * Source/autotools/CheckSystemAndBasicDependencies.m4: Added.
      * Source/autotools/FindDependencies.m4: Added.
      * Source/autotools/PrintBuildConfiguration.m4: Added.
      * Source/autotools/ReadCommandLineArguments.m4: Added.
      * Source/autotools/SetupAutoconfHeader.m4: Added.
      * Source/autotools/SetupAutomake.m4: Added.
      * Source/autotools/SetupCompilerFlags.m4: Added.
      * Source/autotools/SetupLibtool.m4: Added.
      * Source/autotools/Versions.m4: Added.
      * configure.ac:
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142284 268f45cc-cd09-0410-ab3c-d52691b4dbfc