From cad810f21b803229eb11403f9209855525a25d57 Mon Sep 17 00:00:00 2001 From: Steve Block Date: Fri, 6 May 2011 11:45:16 +0100 Subject: Merge WebKit at r75315: Initial merge by git. Change-Id: I570314b346ce101c935ed22a626b48c2af266b84 --- Source/cmake/FindCFLite.cmake | 22 +++ Source/cmake/FindCairo.cmake | 33 +++++ Source/cmake/FindEFL.cmake | 16 +++ Source/cmake/FindFontconfig.cmake | 69 ++++++++++ Source/cmake/FindFreetype.cmake | 31 +++++ Source/cmake/FindGDK-PixBuf.cmake | 32 +++++ Source/cmake/FindGDK.cmake | 43 ++++++ Source/cmake/FindGIO.cmake | 27 ++++ Source/cmake/FindGStreamer-App.cmake | 34 +++++ Source/cmake/FindGStreamer-Base.cmake | 33 +++++ Source/cmake/FindGStreamer-Interfaces.cmake | 33 +++++ Source/cmake/FindGStreamer-Pbutils.cmake | 33 +++++ Source/cmake/FindGStreamer-Plugins-Base.cmake | 33 +++++ Source/cmake/FindGStreamer-Video.cmake | 34 +++++ Source/cmake/FindGStreamer.cmake | 31 +++++ Source/cmake/FindGlib.cmake | 43 ++++++ Source/cmake/FindGperf.cmake | 19 +++ Source/cmake/FindGthread.cmake | 4 + Source/cmake/FindICU.cmake | 77 +++++++++++ Source/cmake/FindLibSoup2.cmake | 191 ++++++++++++++++++++++++++ Source/cmake/FindLibXlst.cmake | 68 +++++++++ Source/cmake/FindPango.cmake | 34 +++++ Source/cmake/FindSqlite.cmake | 50 +++++++ Source/cmake/LibFindMacros.cmake | 99 +++++++++++++ Source/cmake/OptionsCommon.cmake | 20 +++ Source/cmake/OptionsEfl.cmake | 170 +++++++++++++++++++++++ Source/cmake/OptionsWinCE.cmake | 59 ++++++++ Source/cmake/OptionsWindows.cmake | 14 ++ Source/cmake/WebKitEfl.cmake | 6 + Source/cmake/WebKitFS.cmake | 6 + Source/cmake/WebKitFeatures.cmake | 91 ++++++++++++ Source/cmake/WebKitHelpers.cmake | 79 +++++++++++ Source/cmake/WebKitMacros.cmake | 130 ++++++++++++++++++ Source/cmake/WebKitPackaging.cmake | 181 ++++++++++++++++++++++++ Source/cmake/eflsymbols.filter | 6 + 35 files changed, 1851 insertions(+) create mode 100644 Source/cmake/FindCFLite.cmake create mode 100644 Source/cmake/FindCairo.cmake create mode 100644 Source/cmake/FindEFL.cmake create mode 100644 Source/cmake/FindFontconfig.cmake create mode 100644 Source/cmake/FindFreetype.cmake create mode 100644 Source/cmake/FindGDK-PixBuf.cmake create mode 100644 Source/cmake/FindGDK.cmake create mode 100644 Source/cmake/FindGIO.cmake create mode 100644 Source/cmake/FindGStreamer-App.cmake create mode 100644 Source/cmake/FindGStreamer-Base.cmake create mode 100644 Source/cmake/FindGStreamer-Interfaces.cmake create mode 100644 Source/cmake/FindGStreamer-Pbutils.cmake create mode 100644 Source/cmake/FindGStreamer-Plugins-Base.cmake create mode 100644 Source/cmake/FindGStreamer-Video.cmake create mode 100644 Source/cmake/FindGStreamer.cmake create mode 100644 Source/cmake/FindGlib.cmake create mode 100644 Source/cmake/FindGperf.cmake create mode 100644 Source/cmake/FindGthread.cmake create mode 100644 Source/cmake/FindICU.cmake create mode 100644 Source/cmake/FindLibSoup2.cmake create mode 100644 Source/cmake/FindLibXlst.cmake create mode 100644 Source/cmake/FindPango.cmake create mode 100644 Source/cmake/FindSqlite.cmake create mode 100644 Source/cmake/LibFindMacros.cmake create mode 100644 Source/cmake/OptionsCommon.cmake create mode 100644 Source/cmake/OptionsEfl.cmake create mode 100644 Source/cmake/OptionsWinCE.cmake create mode 100644 Source/cmake/OptionsWindows.cmake create mode 100644 Source/cmake/WebKitEfl.cmake create mode 100644 Source/cmake/WebKitFS.cmake create mode 100644 Source/cmake/WebKitFeatures.cmake create mode 100644 Source/cmake/WebKitHelpers.cmake create mode 100644 Source/cmake/WebKitMacros.cmake create mode 100644 Source/cmake/WebKitPackaging.cmake create mode 100644 Source/cmake/eflsymbols.filter (limited to 'Source/cmake') diff --git a/Source/cmake/FindCFLite.cmake b/Source/cmake/FindCFLite.cmake new file mode 100644 index 0000000..ea2c2f3 --- /dev/null +++ b/Source/cmake/FindCFLite.cmake @@ -0,0 +1,22 @@ +# - Try to find the CFLite library +# Once done this will define +# +# CFLITE_FOUND - System has CFLite +# CFLITE_INCLUDE_DIR - The CFLite include directory +# CFLITE_LIBRARIES - The libraries needed to use CFLite + +# use pkg-config to get the directories and then use these values +# in the FIND_PATH() and FIND_LIBRARY() calls +FIND_PACKAGE(PkgConfig) + +FIND_PATH(CFLITE_INCLUDE_DIR NAMES CoreFoundation/CoreFoundation.h) + +FIND_LIBRARY(CFLITE_LIBRARIES NAMES CFLite.lib) + +INCLUDE(FindPackageHandleStandardArgs) + +# handle the QUIETLY and REQUIRED arguments and set COREFOUNDATION_FOUND to TRUE if +# all listed variables are TRUE +FIND_PACKAGE_HANDLE_STANDARD_ARGS(CFLite DEFAULT_MSG CFLITE_LIBRARIES CFLITE_INCLUDE_DIR) + +MARK_AS_ADVANCED(CFLITE_INCLUDE_DIR CFLITE_LIBRARIES) diff --git a/Source/cmake/FindCairo.cmake b/Source/cmake/FindCairo.cmake new file mode 100644 index 0000000..db8981e --- /dev/null +++ b/Source/cmake/FindCairo.cmake @@ -0,0 +1,33 @@ +# - Try to find Cairo +# Once done, this will define +# +# Cairo_FOUND - system has Cairo +# Cairo_INCLUDE_DIRS - the Cairo include directories +# Cairo_LIBRARIES - link these to use Cairo + +include(LibFindMacros) + +# Dependencies +libfind_package(Cairo Freetype) + +# Use pkg-config to get hints about paths +libfind_pkg_check_modules(Cairo_PKGCONF cairo) + +# Include dir +find_path(Cairo_INCLUDE_DIR + NAMES cairo.h + PATHS ${Cairo_PKGCONF_INCLUDE_DIRS} +) + +# Finally the library itself +find_library(Cairo_LIBRARY + NAMES cairo + PATHS ${Cairo_PKGCONF_LIBRARY_DIRS} +) + +# Set the include dir variables and the libraries and let libfind_process do the rest. +# NOTE: Singular variables for this library, plural for libraries this this lib depends on. +set(Cairo_PROCESS_INCLUDES Cairo_INCLUDE_DIR Freetype_INCLUDE_DIRS) +set(Cairo_PROCESS_LIBS Cairo_LIBRARY Freetype_LIBRARIES) +libfind_process(Cairo) + diff --git a/Source/cmake/FindEFL.cmake b/Source/cmake/FindEFL.cmake new file mode 100644 index 0000000..eb309b1 --- /dev/null +++ b/Source/cmake/FindEFL.cmake @@ -0,0 +1,16 @@ +INCLUDE(FindPkgConfig) + +PKG_CHECK_MODULES (EDJE REQUIRED edje>=1.0.0) +PKG_CHECK_MODULES (ECORE REQUIRED ecore>=1.0.0) +PKG_CHECK_MODULES (ECORE_EVAS REQUIRED ecore-evas>=1.0.0) +PKG_CHECK_MODULES (EFLDEPS REQUIRED + eina>=1.0.0 + evas>=1.0.0 + ecore>=1.0.0 + ecore-file>=1.0.0 + ecore-evas>=1.0.0 + edje>=1.0.0) +PKG_CHECK_MODULES (EINA REQUIRED eina>=1.0.0) +PKG_CHECK_MODULES (ECORE_X ecore-x>=1.0.0) +PKG_CHECK_MODULES (EVAS REQUIRED evas>=1.0.0) + diff --git a/Source/cmake/FindFontconfig.cmake b/Source/cmake/FindFontconfig.cmake new file mode 100644 index 0000000..e6fa81d --- /dev/null +++ b/Source/cmake/FindFontconfig.cmake @@ -0,0 +1,69 @@ +# - Try to find the Fontconfig +# Once done this will define +# +# FONTCONFIG_FOUND - system has Fontconfig +# FONTCONFIG_INCLUDE_DIR - The include directory to use for the fontconfig headers +# FONTCONFIG_LIBRARIES - Link these to use FONTCONFIG +# FONTCONFIG_DEFINITIONS - Compiler switches required for using FONTCONFIG + +# Copyright (c) 2006,2007 Laurent Montel, +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. The name of the author may not be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +if (FONTCONFIG_LIBRARIES AND FONTCONFIG_INCLUDE_DIR) + + # in cache already + set(FONTCONFIG_FOUND TRUE) + +else (FONTCONFIG_LIBRARIES AND FONTCONFIG_INCLUDE_DIR) + + if (NOT WIN32) + # use pkg-config to get the directories and then use these values + # in the FIND_PATH() and FIND_LIBRARY() calls + find_package(PkgConfig) + pkg_check_modules(PC_FONTCONFIG fontconfig) + + set(FONTCONFIG_DEFINITIONS ${PC_FONTCONFIG_CFLAGS_OTHER}) + endif (NOT WIN32) + + find_path(FONTCONFIG_INCLUDE_DIR fontconfig/fontconfig.h + PATHS + ${PC_FONTCONFIG_INCLUDEDIR} + ${PC_FONTCONFIG_INCLUDE_DIRS} + /usr/X11/include + ) + + find_library(FONTCONFIG_LIBRARIES NAMES fontconfig + PATHS + ${PC_FONTCONFIG_LIBDIR} + ${PC_FONTCONFIG_LIBRARY_DIRS} + ) + + include(FindPackageHandleStandardArgs) + FIND_PACKAGE_HANDLE_STANDARD_ARGS(Fontconfig DEFAULT_MSG FONTCONFIG_LIBRARIES FONTCONFIG_INCLUDE_DIR ) + + mark_as_advanced(FONTCONFIG_LIBRARIES FONTCONFIG_INCLUDE_DIR) + +endif (FONTCONFIG_LIBRARIES AND FONTCONFIG_INCLUDE_DIR) diff --git a/Source/cmake/FindFreetype.cmake b/Source/cmake/FindFreetype.cmake new file mode 100644 index 0000000..b4c1685 --- /dev/null +++ b/Source/cmake/FindFreetype.cmake @@ -0,0 +1,31 @@ +# - Try to find Freetype2 +# Once done, this will define +# +# Freetype_FOUND - system has Freetype +# Freetype_INCLUDE_DIRS - the Freetype include directories +# Freetype_LIBRARIES - link these to use Freetype + +include(LibFindMacros) + +# Use pkg-config to get hints about paths +libfind_pkg_check_modules(Freetype_PKGCONF freetype2) + +# Include dir +find_path(Freetype_INCLUDE_DIR + NAMES freetype/freetype.h + PATHS ${Freetype_PKGCONF_INCLUDE_DIRS} + PATH_SUFFIXES freetype2 +) + +# Finally the library itself +find_library(Freetype_LIBRARY + NAMES freetype + PATHS ${Freetype_PKGCONF_LIBRARY_DIRS} +) + +# Set the include dir variables and the libraries and let libfind_process do the rest. +# NOTE: Singular variables for this library, plural for libraries this this lib depends on. +set(Freetype_PROCESS_INCLUDES Freetype_INCLUDE_DIR) +set(Freetype_PROCESS_LIBS Freetype_LIBRARY) +libfind_process(Freetype) + diff --git a/Source/cmake/FindGDK-PixBuf.cmake b/Source/cmake/FindGDK-PixBuf.cmake new file mode 100644 index 0000000..d21d87a --- /dev/null +++ b/Source/cmake/FindGDK-PixBuf.cmake @@ -0,0 +1,32 @@ +# - Try to find gdk-pixbuf 2.0 +# Once done, this will define +# +# GDK-PixBuf_FOUND - system has GDK-PixBuf +# GDK-PixBuf_INCLUDE_DIRS - the GDK-PixBuf include directories +# GDK-PixBuf_LIBRARIES - link these to use GDK-PixBuf + +include(LibFindMacros) + +# Use pkg-config to get hints about paths +libfind_pkg_check_modules(GDK-PixBuf_PKGCONF gdk-pixbuf-2.0) + +# Main include dir +find_path(GDK-PixBuf_INCLUDE_DIR + NAMES gdk-pixbuf/gdk-pixbuf.h + PATHS ${GDK-PixBuf_PKGCONF_INCLUDE_DIRS} + PATH_SUFFIXES gtk-2.0 +) + +# Finally the library itself +find_library(GDK-PixBuf_LIBRARY + NAMES gdk_pixbuf-2.0 + PATHS ${GDK-PixBuf_PKGCONF_LIBRARY_DIRS} +) + +# Set the include dir variables and the libraries and let libfind_process do the rest. +# NOTE: Singular variables for this library, plural for libraries this this lib depends on. +set(GDK-PixBuf_PROCESS_INCLUDES GDK-PixBuf_INCLUDE_DIR) +set(GDK-PixBuf_PROCESS_LIBS GDK-PixBuf_LIBRARY) +libfind_process(GDK-PixBuf) + + diff --git a/Source/cmake/FindGDK.cmake b/Source/cmake/FindGDK.cmake new file mode 100644 index 0000000..f7c469e --- /dev/null +++ b/Source/cmake/FindGDK.cmake @@ -0,0 +1,43 @@ +# - Try to find GDK 2.0 +# Once done, this will define +# +# GDK_FOUND - system has GDK +# GDK_INCLUDE_DIRS - the GDK include directories +# GDK_LIBRARIES - link these to use GDK + +include(LibFindMacros) + +# Dependencies +libfind_package(GDK GDK-PixBuf) +libfind_package(GDK Pango) +libfind_package(GDK GIO) + +# Use pkg-config to get hints about paths +libfind_pkg_check_modules(GDK_PKGCONF gdk-2.0) + +# Main include dir +find_path(GDK_INCLUDE_DIR + NAMES gdk/gdk.h + PATHS ${GDK_PKGCONF_INCLUDE_DIRS} + PATH_SUFFIXES gtk-2.0 +) + +# Glib-related libraries also use a separate config header, which is in lib dir +find_path(GDKConfig_INCLUDE_DIR + NAMES gdkconfig.h + PATHS ${GDK_PKGCONF_INCLUDE_DIRS} /usr + PATH_SUFFIXES lib/gtk-2.0/include +) + +# Finally the library itself +find_library(GDK_LIBRARY + NAMES gdk-x11-2.0 gdk-win32-2.0 + PATHS ${GDK_PKGCONF_LIBRARY_DIRS} +) + +# Set the include dir variables and the libraries and let libfind_process do the rest. +# NOTE: Singular variables for this library, plural for libraries this this lib depends on. +set(GDK_PROCESS_INCLUDES GDK_INCLUDE_DIR GDKConfig_INCLUDE_DIR GDK-PixBuf_INCLUDE_DIRS Pango_INCLUDE_DIRS GIO_INCLUDE_DIRS) +set(GDK_PROCESS_LIBS GDK_LIBRARY GDK-PixBuf_LIBRARIES Pango_LIBRARIES GIO_LIBRARIES) +libfind_process(GDK) + diff --git a/Source/cmake/FindGIO.cmake b/Source/cmake/FindGIO.cmake new file mode 100644 index 0000000..c32a3bf --- /dev/null +++ b/Source/cmake/FindGIO.cmake @@ -0,0 +1,27 @@ +# - Try to find GIO 2.0 +# Once done, this will define +# +# GIO_FOUND - system has GIO +# GIO_INCLUDE_DIRS - the GIO include directories +# GIO_LIBRARIES - link these to use GIO + +include(LibFindMacros) + +# Dependencies +libfind_package(GIO Glib) + +# Use pkg-config to get hints about paths +libfind_pkg_check_modules(GIO_PKGCONF gio-2.0) + +# Find the library +find_library(GIO_LIBRARY + NAMES gio-2.0 + PATHS ${GIO_PKGCONF_LIBRARY_DIRS} +) + +# Set the include dir variables and the libraries and let libfind_process do the rest. +# NOTE: Singular variables for this library, plural for libraries this this lib depends on. +set(GIO_PROCESS_INCLUDES Glib_INCLUDE_DIRS) +set(GIO_PROCESS_LIBS GIO_LIBRARY Glib_LIBRARIES) +libfind_process(GIO) + diff --git a/Source/cmake/FindGStreamer-App.cmake b/Source/cmake/FindGStreamer-App.cmake new file mode 100644 index 0000000..7193db0 --- /dev/null +++ b/Source/cmake/FindGStreamer-App.cmake @@ -0,0 +1,34 @@ +# - Try to find GStreamer-App +# Once done, this will define +# +# GStreamer-App_FOUND - system has GStreamer +# GStreamer-App_INCLUDE_DIRS - the GStreamer include directories +# GStreamer-App_LIBRARIES - link these to use GStreamer + +include(LibFindMacros) + +# Dependencies +libfind_package(GStreamer-App GStreamer) +libfind_package(GStreamer-App GStreamer-Base) + +# Use pkg-config to get hints about paths +libfind_pkg_check_modules(GStreamer-App_PKGCONF gstreamer-app-0.10) + +# Include dir +find_path(GStreamer-App_INCLUDE_DIR + NAMES gst/gst.h + PATHS ${GStreamer-App_PKGCONF_INCLUDE_DIRS} + PATH_SUFFIXES gstreamer-0.10 +) + +# Finally the library itself +find_library(GStreamer-App_LIBRARY + NAMES gstapp-0.10 + PATHS ${GStreamer-App_PKGCONF_LIBRARY_DIRS} +) + +# Set the include dir variables and the libraries and let libfind_process do the rest. +# NOTE: Singular variables for this library, plural for libraries this this lib depends on. +set(GStreamer-App_PROCESS_INCLUDES GStreamer-App_INCLUDE_DIR GStreamer_INCLUDE_DIR GStreamer-Base_INCLUDE_DIR) +set(GStreamer-App_PROCESS_LIBS GStreamer-App_LIBRARY GStreamer_LIBRARIES GStreamer-Base_LIBRARIES) +libfind_process(GStreamer-App) diff --git a/Source/cmake/FindGStreamer-Base.cmake b/Source/cmake/FindGStreamer-Base.cmake new file mode 100644 index 0000000..e73da05 --- /dev/null +++ b/Source/cmake/FindGStreamer-Base.cmake @@ -0,0 +1,33 @@ +# - Try to find GStreamer-Base +# Once done, this will define +# +# GStreamer-Base_FOUND - system has GStreamer-Base +# GStreamer-Base_INCLUDE_DIRS - the GStreamer-Base include directories +# GStreamer-Base_LIBRARIES - link these to use GStreamer-Base + +include(LibFindMacros) + +# Dependencies +libfind_package(GStreamer-Base GStreamer) + +# Use pkg-config to get hints about paths +libfind_pkg_check_modules(GStreamer-Base_PKGCONF gstreamer-base-0.10) + +# Include dir +find_path(GStreamer-Base_INCLUDE_DIR + NAMES gst/gst.h + PATHS ${GStreamer-Base_PKGCONF_INCLUDE_DIRS} + PATH_SUFFIXES gstreamer-0.10 +) + +# Finally the library itself +find_library(GStreamer-Base_LIBRARY + NAMES gstbase-0.10 + PATHS ${GStreamer-Base_PKGCONF_LIBRARY_DIRS} +) + +# Set the include dir variables and the libraries and let libfind_process do the rest. +# NOTE: Singular variables for this library, plural for libraries this this lib depends on. +set(GStreamer-Base_PROCESS_INCLUDES GStreamer-Base_INCLUDE_DIR GStreamer_INCLUDE_DIR) +set(GStreamer-Base_PROCESS_LIBS GStreamer-Base_LIBRARY GStreamer_LIBRARIES) +libfind_process(GStreamer-Base) diff --git a/Source/cmake/FindGStreamer-Interfaces.cmake b/Source/cmake/FindGStreamer-Interfaces.cmake new file mode 100644 index 0000000..9483545 --- /dev/null +++ b/Source/cmake/FindGStreamer-Interfaces.cmake @@ -0,0 +1,33 @@ +# - Try to find GStreamer-Interfaces +# Once done, this will define +# +# GStreamer-Interfaces_FOUND - system has GStreamer-Interfaces +# GStreamer-Interfaces_INCLUDE_DIRS - the GStreamer-Interfaces include directories +# GStreamer-Interfaces_LIBRARIES - link these to use GStreamer-Interfaces + +include(LibFindMacros) + +# Dependencies +libfind_package(GStreamer-Interfaces GStreamer) + +# Use pkg-config to get hints about paths +libfind_pkg_check_modules(GStreamer-Interfaces_PKGCONF gstreamer-interfaces-0.10) + +# Include dir +find_path(GStreamer-Interfaces_INCLUDE_DIR + NAMES gst/gst.h + PATHS ${GStreamer-Interfaces_PKGCONF_INCLUDE_DIRS} + PATH_SUFFIXES gstreamer-0.10 +) + +# Finally the library itself +find_library(GStreamer-Interfaces_LIBRARY + NAMES gstinterfaces-0.10 + PATHS ${GStreamer-Interfaces_PKGCONF_LIBRARY_DIRS} +) + +# Set the include dir variables and the libraries and let libfind_process do the rest. +# NOTE: Singular variables for this library, plural for libraries this this lib depends on. +set(GStreamer-Interfaces_PROCESS_INCLUDES GStreamer-Interfaces_INCLUDE_DIR GStreamer_INCLUDE_DIR) +set(GStreamer-Interfaces_PROCESS_LIBS GStreamer-Interfaces_LIBRARY GStreamer_LIBRARIES) +libfind_process(GStreamer-Interfaces) diff --git a/Source/cmake/FindGStreamer-Pbutils.cmake b/Source/cmake/FindGStreamer-Pbutils.cmake new file mode 100644 index 0000000..c1c3103 --- /dev/null +++ b/Source/cmake/FindGStreamer-Pbutils.cmake @@ -0,0 +1,33 @@ +# - Try to find GStreamer-Pbutils +# Once done, this will define +# +# GStreamer-Pbutils_FOUND - system has GStreamer-Pbutils +# GStreamer-Pbutils_INCLUDE_DIRS - the GStreamer-Pbutils include directories +# GStreamer-Pbutils_LIBRARIES - link these to use GStreamer-Pbutils + +include(LibFindMacros) + +# Dependencies +libfind_package(GStreamer-Pbutils GStreamer) + +# Use pkg-config to get hints about paths +libfind_pkg_check_modules(GStreamer-Pbutils_PKGCONF gstreamer-pbutils-0.10) + +# Include dir +find_path(GStreamer-Pbutils_INCLUDE_DIR + NAMES gst/gst.h + PATHS ${GStreamer-Pbutils_PKGCONF_INCLUDE_DIRS} + PATH_SUFFIXES gstreamer-0.10 +) + +# Finally the library itself +find_library(GStreamer-Pbutils_LIBRARY + NAMES gstpbutils-0.10 + PATHS ${GStreamer-Pbutils_PKGCONF_LIBRARY_DIRS} +) + +# Set the include dir variables and the libraries and let libfind_process do the rest. +# NOTE: Singular variables for this library, plural for libraries this this lib depends on. +set(GStreamer-Pbutils_PROCESS_INCLUDES GStreamer-Pbutils_INCLUDE_DIR GStreamer_INCLUDE_DIR) +set(GStreamer-Pbutils_PROCESS_LIBS GStreamer-Pbutils_LIBRARY GStreamer_LIBRARY) +libfind_process(GStreamer-Pbutils) diff --git a/Source/cmake/FindGStreamer-Plugins-Base.cmake b/Source/cmake/FindGStreamer-Plugins-Base.cmake new file mode 100644 index 0000000..931a7d9 --- /dev/null +++ b/Source/cmake/FindGStreamer-Plugins-Base.cmake @@ -0,0 +1,33 @@ +# - Try to find GStreamer-Plugins-Base +# Once done, this will define +# +# GStreamer-Plugins-Base_FOUND - system has GStreamer-Plugins-Base +# GStreamer-Plugins-Base_INCLUDE_DIRS - the GStreamer-Plugins-Base include directories +# GStreamer-Plugins-Base_LIBRARIES - link these to use GStreamer-Plugins-Base + +include(LibFindMacros) + +# Dependencies +libfind_package(GStreamer-Plugins-Base GStreamer) + +# Use pkg-config to get hints about paths +libfind_pkg_check_modules(GStreamer-Plugins-Base_PKGCONF gstreamer-plugins-base-0.10) + +# Include dir +find_path(GStreamer-Plugins-Base_INCLUDE_DIR + NAMES gst/gst.h + PATHS ${GStreamer-Plugins-Base_PKGCONF_INCLUDE_DIRS} + PATH_SUFFIXES gstreamer-0.10 +) + +# Finally the library itself +find_library(GStreamer-Plugins-Base_LIBRARY + NAMES gstreamer-0.10 + PATHS ${GStreamer-Plugins-Base_PKGCONF_LIBRARY_DIRS} +) + +# Set the include dir variables and the libraries and let libfind_process do the rest. +# NOTE: Singular variables for this library, plural for libraries this this lib depends on. +set(GStreamer-Plugins-Base_PROCESS_INCLUDES GStreamer-Plugins-Base_INCLUDE_DIR GStreamer_INCLUDE_DIR) +set(GStreamer-Plugins-Base_PROCESS_LIBS GStreamer-Plugins-Base_LIBRARY GStreamer_LIBRARIES) +libfind_process(GStreamer-Plugins-Base) diff --git a/Source/cmake/FindGStreamer-Video.cmake b/Source/cmake/FindGStreamer-Video.cmake new file mode 100644 index 0000000..1617947 --- /dev/null +++ b/Source/cmake/FindGStreamer-Video.cmake @@ -0,0 +1,34 @@ +# - Try to find GStreamer-Video +# Once done, this will define +# +# GStreamer-Video_FOUND - system has GStreamer-Video +# GStreamer-Video_INCLUDE_DIRS - the GStreamer-Video include directories +# GStreamer-Video_LIBRARIES - link these to use GStreamer-Video + +include(LibFindMacros) + +# Dependencies +libfind_package(GStreamer-Video GStreamer) +libfind_package(GStreamer-Video GStreamer-Base) + +# Use pkg-config to get hints about paths +libfind_pkg_check_modules(GStreamer-Video_PKGCONF gstreamer-video-0.10) + +# Include dir +find_path(GStreamer-Video_INCLUDE_DIR + NAMES gst/gst.h + PATHS ${GStreamer-Video_PKGCONF_INCLUDE_DIRS} + PATH_SUFFIXES gstreamer-0.10 +) + +# Finally the library itself +find_library(GStreamer-Video_LIBRARY + NAMES gstvideo-0.10 + PATHS ${GStreamer-Video_PKGCONF_LIBRARY_DIRS} +) + +# Set the include dir variables and the libraries and let libfind_process do the rest. +# NOTE: Singular variables for this library, plural for libraries this this lib depends on. +set(GStreamer-Video_PROCESS_INCLUDES GStreamer-Video_INCLUDE_DIR GStreamer_INCLUDE_DIR GStreamer-Base_INCLUDE_DIR) +set(GStreamer-Video_PROCESS_LIBS GStreamer-Video_LIBRARY GStreamer_LIBRARIES GStreamer-Base_LIBRARIES) +libfind_process(GStreamer-Video) diff --git a/Source/cmake/FindGStreamer.cmake b/Source/cmake/FindGStreamer.cmake new file mode 100644 index 0000000..7fe8364 --- /dev/null +++ b/Source/cmake/FindGStreamer.cmake @@ -0,0 +1,31 @@ +# - Try to find GStreamer +# Once done, this will define +# +# GStreamer_FOUND - system has GStreamer +# GStreamer_INCLUDE_DIRS - the GStreamer include directories +# GStreamer_LIBRARIES - link these to use GStreamer + +include(LibFindMacros) + +# Use pkg-config to get hints about paths +libfind_pkg_check_modules(GStreamer_PKGCONF gstreamer-0.10) + +# Include dir +find_path(GStreamer_INCLUDE_DIR + NAMES gst/gst.h + PATHS ${GStreamer_PKGCONF_INCLUDE_DIRS} + PATH_SUFFIXES gstreamer-0.10 +) + +# Finally the library itself +find_library(GStreamer_LIBRARY + NAMES gstreamer-0.10 + PATHS ${GStreamer_PKGCONF_LIBRARY_DIRS} +) + +# Set the include dir variables and the libraries and let libfind_process do the rest. +# NOTE: Singular variables for this library, plural for libraries this this lib depends on. +set(GStreamer_PROCESS_INCLUDES GStreamer_INCLUDE_DIR) +set(GStreamer_PROCESS_LIBS GStreamer_LIBRARY) +libfind_process(GStreamer) + diff --git a/Source/cmake/FindGlib.cmake b/Source/cmake/FindGlib.cmake new file mode 100644 index 0000000..d4b73af --- /dev/null +++ b/Source/cmake/FindGlib.cmake @@ -0,0 +1,43 @@ +# - Try to find Glib-2.0 (with gobject) +# Once done, this will define +# +# Glib_FOUND - system has Glib +# Glib_INCLUDE_DIRS - the Glib include directories +# Glib_LIBRARIES - link these to use Glib + +include(LibFindMacros) + +# Use pkg-config to get hints about paths +libfind_pkg_check_modules(Glib_PKGCONF glib-2.0) + +# Main include dir +find_path(Glib_INCLUDE_DIR + NAMES glib.h + PATHS ${Glib_PKGCONF_INCLUDE_DIRS} + PATH_SUFFIXES glib-2.0 +) + +# Glib-related libraries also use a separate config header, which is in lib dir +find_path(GlibConfig_INCLUDE_DIR + NAMES glibconfig.h + PATHS ${Glib_PKGCONF_INCLUDE_DIRS} /usr + PATH_SUFFIXES lib/glib-2.0/include +) + +# Finally the library itself +find_library(Glib_LIBRARY + NAMES glib-2.0 + PATHS ${Glib_PKGCONF_LIBRARY_DIRS} +) +find_library(Gobject_LIBRARY + NAMES gobject-2.0 + PATHS ${Glib_PKGCONF_LIBRARY_DIRS} +) + +# Set the include dir variables and the libraries and let libfind_process do the rest. +# NOTE: Singular variables for this library, plural for libraries this this lib depends on. +set(Glib_PROCESS_INCLUDES Glib_INCLUDE_DIR GlibConfig_INCLUDE_DIR) +set(Glib_PROCESS_LIBS Glib_LIBRARY Gobject_LIBRARY) +libfind_process(Glib) + + diff --git a/Source/cmake/FindGperf.cmake b/Source/cmake/FindGperf.cmake new file mode 100644 index 0000000..0e53912 --- /dev/null +++ b/Source/cmake/FindGperf.cmake @@ -0,0 +1,19 @@ +# - Find gperf +# This module looks for gperf. This module defines the +# following values: +# GPERF_EXECUTABLE: the full path to the gperf tool. +# GPERF_FOUND: True if gperf has been found. + +INCLUDE(FindCygwin) + +FIND_PROGRAM(GPERF_EXECUTABLE + gperf + ${CYGWIN_INSTALL_PATH}/bin +) + +# handle the QUIETLY and REQUIRED arguments and set GPERF_FOUND to TRUE if +# all listed variables are TRUE +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(Gperf DEFAULT_MSG GPERF_EXECUTABLE) + +MARK_AS_ADVANCED(GPERF_EXECUTABLE) diff --git a/Source/cmake/FindGthread.cmake b/Source/cmake/FindGthread.cmake new file mode 100644 index 0000000..281e657 --- /dev/null +++ b/Source/cmake/FindGthread.cmake @@ -0,0 +1,4 @@ +# Find include and libraries for Gthread library + +INCLUDE(FindPkgConfig) +PKG_CHECK_MODULES (Gthread REQUIRED gthread-2.0>=2.20.0) diff --git a/Source/cmake/FindICU.cmake b/Source/cmake/FindICU.cmake new file mode 100644 index 0000000..225c731 --- /dev/null +++ b/Source/cmake/FindICU.cmake @@ -0,0 +1,77 @@ +# Finds the International Components for Unicode (ICU) Library +# +# ICU_FOUND - True if ICU found. +# ICU_I18N_FOUND - True if ICU's internationalization library found. +# ICU_INCLUDE_DIRS - Directory to include to get ICU headers +# Note: always include ICU headers as, e.g., +# unicode/utypes.h +# ICU_LIBRARIES - Libraries to link against for the common ICU +# ICU_I18N_LIBRARIES - Libraries to link against for ICU internationaliation +# (note: in addition to ICU_LIBRARIES) + +# Look for the header file. +FIND_PATH( + ICU_INCLUDE_DIR + NAMES unicode/utypes.h + DOC "Include directory for the ICU library") +MARK_AS_ADVANCED(ICU_INCLUDE_DIR) + +# Look for the library. +FIND_LIBRARY( + ICU_LIBRARY + NAMES icuuc cygicuuc cygicuuc32 + DOC "Libraries to link against for the common parts of ICU") +MARK_AS_ADVANCED(ICU_LIBRARY) + +# Copy the results to the output variables. +IF (ICU_INCLUDE_DIR AND ICU_LIBRARY) + SET(ICU_FOUND 1) + SET(ICU_LIBRARIES ${ICU_LIBRARY}) + SET(ICU_INCLUDE_DIRS ${ICU_INCLUDE_DIR}) + + SET(ICU_VERSION 0) + SET(ICU_MAJOR_VERSION 0) + SET(ICU_MINOR_VERSION 0) + FILE(READ "${ICU_INCLUDE_DIR}/unicode/uversion.h" _ICU_VERSION_CONENTS) + STRING(REGEX REPLACE ".*#define U_ICU_VERSION_MAJOR_NUM ([0-9]+).*" "\\1" ICU_MAJOR_VERSION "${_ICU_VERSION_CONENTS}") + STRING(REGEX REPLACE ".*#define U_ICU_VERSION_MINOR_NUM ([0-9]+).*" "\\1" ICU_MINOR_VERSION "${_ICU_VERSION_CONENTS}") + + SET(ICU_VERSION "${ICU_MAJOR_VERSION}.${ICU_MINOR_VERSION}") + + # Look for the ICU internationalization libraries + FIND_LIBRARY( + ICU_I18N_LIBRARY + NAMES icuin icui18n cygicuin cygicuin32 + DOC "Libraries to link against for ICU internationalization") + MARK_AS_ADVANCED(ICU_I18N_LIBRARY) + IF (ICU_I18N_LIBRARY) + SET(ICU_I18N_FOUND 1) + SET(ICU_I18N_LIBRARIES ${ICU_I18N_LIBRARY}) + ELSE () + SET(ICU_I18N_FOUND 0) + SET(ICU_I18N_LIBRARIES) + ENDIF () +ELSE () + SET(ICU_FOUND 0) + SET(ICU_I18N_FOUND 0) + SET(ICU_LIBRARIES) + SET(ICU_I18N_LIBRARIES) + SET(ICU_INCLUDE_DIRS) + SET(ICU_VERSION) + SET(ICU_MAJOR_VERSION) + SET(ICU_MINOR_VERSION) +ENDIF () + +IF (ICU_FOUND) + IF (NOT ICU_FIND_QUIETLY) + MESSAGE(STATUS "Found ICU header files in ${ICU_INCLUDE_DIRS}") + MESSAGE(STATUS "Found ICU libraries: ${ICU_LIBRARIES}") + ENDIF () +ELSE () + IF (ICU_FIND_REQUIRED) + MESSAGE(FATAL_ERROR "Could not find ICU") + ELSE () + MESSAGE(STATUS "Optional package ICU was not found") + ENDIF () +ENDIF () + diff --git a/Source/cmake/FindLibSoup2.cmake b/Source/cmake/FindLibSoup2.cmake new file mode 100644 index 0000000..e023a63 --- /dev/null +++ b/Source/cmake/FindLibSoup2.cmake @@ -0,0 +1,191 @@ +# - Try to find libsoup +# Find libsoup headers, libraries and the answer to all questions. +# +# LIBSOUP2_FOUND True if libsoup2 got found +# LIBSOUP2_INCLUDE_DIRS Location of libsoup2 headers +# LIBSOUP2_LIBRARIES List of libaries to use libsoup2 +# LIBSOUP2_LIBRARY_DIRS Location of libsoup2 library +# +# LIBSOUP22_FOUND True if libsoup2.2 got found +# LIBSOUP22_INCLUDE_DIRS Location of libsoup2.2 headers +# LIBSOUP22_LIBRARIES List of libaries to use libsoup2.2 +# LIBSOUP22_LIBRARY_DIRS Location of libsoup2.2 library +# +# LIBSOUP24_FOUND True if libsoup2.4 got found +# LIBSOUP24_INCLUDE_DIRS Location of libsoup2.4 headers +# LIBSOUP24_LIBRARIES List of libaries to use libsoup2.4 +# LIBSOUP24_LIBRARY_DIRS Location of libsoup2.4 library +# +# Set LIBSOUP2_MIN_VERSION to find libsoup2.2 or libsoup2.4 if only +# one of both libraries is supported +# +# Don't use LIBSOUP2_MIN_VERSION if you want to support +# libsoup2.2 and libsoup2.4. +# Instead use LIBSPOUP22_MIN_VERSION and LIBSPOUP24_MIN_VERSION. +# +# Set LIBSPOUP22_MIN_VERSION to find libsoup2.2 which version is +# greater than LIBSPOUP22_MIN_VERSION +# +# Set LIBSPOUP24_MIN_VERSION to find libsoup2.4 which version is +# greater than LIBSPOUP24_MIN_VERSION +# +# WARNING: It is not possible to set LIBSPOUP22_MIN_VERSION +# and support any version of libsoup2.4 at the same time. +# In this situation you have to set LIBSPOUP24_MIN_VERSION also. +# The same applies to LIBSPOUP24_MIN_VERSION and libsoup2.2. +# +# Copyright (c) 2007 Daniel Gollub +# Copyright (c) 2008 Bjoern Ricks +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. The name of the author may not be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +INCLUDE( FindPkgConfig ) + +IF ( LibSoup2_FIND_VERSION AND NOT LIBSOUP2_MIN_VERSION AND NOT LIBSOUP24_MIN_VERSION ) + SET( LIBSOUP2_MIN_VERSION "${LibSoup2_FIND_VERSION}" ) + SET( LIBSOUP24_MIN_VERSION "${LibSoup2_FIND_VERSION}" ) +ENDIF ( LibSoup2_FIND_VERSION AND NOT LIBSOUP2_MIN_VERSION AND NOT LIBSOUP24_MIN_VERSION ) + +IF ( LibSoup2_FIND_REQUIRED ) + SET( _pkgconfig_REQUIRED "REQUIRED" ) +ELSE( LibSoup2_FIND_REQUIRED ) + SET( _pkgconfig_REQUIRED "" ) +ENDIF ( LibSoup2_FIND_REQUIRED ) + +IF ( LIBSOUP2_MIN_VERSION ) + STRING(REGEX REPLACE "^(2)(\\.)([0-9]*)(\\.?)(.*)" "\\3" LIBSOUP2_VERSION_MINOR "${LIBSOUP2_MIN_VERSION}") + IF ( LIBSOUP2_VERSION_MINOR EQUAL "2" ) + SET( LIBSOUP22_MIN_VERSION "${LIBSOUP2_MIN_VERSION}" ) + ELSE ( LIBSOUP2_VERSION_MINOR EQUAL "2" ) + SET( LIBSOUP24_MIN_VERSION "${LIBSOUP2_MIN_VERSION}" ) + ENDIF ( LIBSOUP2_VERSION_MINOR EQUAL "2" ) +ENDIF ( LIBSOUP2_MIN_VERSION ) + +# try to find libsoup2.2>=LIBSOUP22_MIN_VERSION +IF ( LIBSOUP22_MIN_VERSION ) + PKG_SEARCH_MODULE( LIBSOUP22 libsoup-2.2>=${LIBSOUP22_MIN_VERSION} libsoup2>=${LIBSOUP22_MIN_VERSION} ) +ENDIF ( LIBSOUP22_MIN_VERSION ) + +# try to find libsoup2.4>=LIBSOUP24_MIN_VERSION +IF ( LIBSOUP24_MIN_VERSION ) + PKG_SEARCH_MODULE( LIBSOUP24 libsoup-2.4>=${LIBSOUP24_MIN_VERSION} libsoup2>=${LIBSOUP24_MIN_VERSION} ) +ENDIF ( LIBSOUP24_MIN_VERSION ) + +# try to find any version of libsoup2.4 if LIBSOUP22_MIN_VERSION is not set +IF ( NOT LIBSOUP24_FOUND AND NOT LIBSOUP22_MIN_VERSION AND NOT LIBSOUP24_MIN_VERSION ) + PKG_SEARCH_MODULE( LIBSOUP24 libsoup-2.4 libsoup2 ) +ENDIF ( NOT LIBSOUP24_FOUND AND NOT LIBSOUP22_MIN_VERSION AND NOT LIBSOUP24_MIN_VERSION ) + +# try to find any version of libsoup2.2 if LIBSOUP24_MIN_VERSION is not set +IF ( NOT LIBSOUP22_FOUND AND NOT LIBSOUP24_MIN_VERSION AND NOT LIBSOUP24_MIN_VERSION ) + PKG_SEARCH_MODULE( LIBSOUP22 libsoup-2.2 libsoup2 ) +ENDIF ( NOT LIBSOUP22_FOUND AND NOT LIBSOUP24_MIN_VERSION AND NOT LIBSOUP24_MIN_VERSION ) + +# set LIBSOUP2_ variables +IF ( LIBSOUP24_FOUND ) + # prefer libsoup2.4 to libsoup2.2 if both are found + SET( LIBSOUP2_FOUND ${LIBSOUP24_FOUND} CACHE INTERNAL "" ) + SET( LIBSOUP2_INCLUDE_DIRS ${LIBSOUP24_INCLUDE_DIRS} CACHE INTERNAL "" ) + SET( LIBSOUP2_LIBRARIES ${LIBSOUP24_LIBRARIES} CACHE INTERNAL "" ) + SET( LIBSOUP2_LIBRARY_DIRS ${LIBSOUP24_LIBRARY_DIRS} CACHE INTERNAL "" ) + SET( LIBSOUP2_VERSION ${LIBSOUP24_VERSION} CACHE INTERNAL "" ) +ELSEIF ( LIBSOUP22_FOUND ) + SET( LIBSOUP2_FOUND ${LIBSOUP22_FOUND} CACHE INTERNAL "" ) + SET( LIBSOUP2_INCLUDE_DIRS ${LIBSOUP22_INCLUDE_DIRS} CACHE INTERNAL "" ) + SET( LIBSOUP2_LIBRARIES ${LIBSOUP22_LIBRARIES} CACHE INTERNAL "" ) + SET( LIBSOUP2_LIBRARY_DIRS ${LIBSOUP22_LIBRARY_DIRS} CACHE INTERNAL "" ) + SET( LIBSOUP2_VERSION ${LIBSOUP22_VERSION} CACHE INTERNAL "" ) +ELSEIF( PKG_CONFIG_FOUND AND LibSoup2_FIND_REQUIRED ) + # raise an error if both libs are not found + # and FIND_PACKAGE( LibSoup2 REQUIRED ) was called + MESSAGE( FATAL_ERROR "package libsoup2 not found" ) +ENDIF ( LIBSOUP24_FOUND ) + +IF( NOT LIBSOUP2_FOUND AND NOT PKG_CONFIG_FOUND ) + # WARNING: + # This case is executed if pkg-config isn't installed. + # Currently in this case it is only checked if libsoup2.2 is available. + # Therefore please don't use this cmake module without pkg-config! + FIND_PATH( _libsoup2_include_DIR libsoup/soup.h PATH_SUFFIXES libsoup libsoup-2.2 ) + FIND_LIBRARY( _libsoup2_LIBRARY soup-2.2) + + IF ( _libsoup2_include_DIR AND _libsoup2_LIBRARY ) + SET ( _libsoup2_FOUND TRUE ) + ENDIF ( _libsoup2_include_DIR AND _libsoup2_LIBRARY ) + + IF ( _libsoup2_FOUND ) + SET ( LIBSOUP2_INCLUDE_DIRS ${_libsoup2_include_DIR} ) + SET ( LIBSOUP2_LIBRARIES ${_libsoup2_LIBRARY} ) + + # find requited glib2 + IF( NOT GLIB2_FOUND ) + FIND_PACKAGE( GLIB2 REQUIRED ) + IF ( GLIB2_FOUND ) + SET ( LIBSOUP2_INCLUDE_DIRS ${LIBSOUP2_INCLUDE_DIRS} ${GLIB2_INCLUDE_DIRS} ) + SET ( LIBSOUP2_LIBRARIES ${LIBSOUP2_LIBRARIES} ${GLIB2_LIBRARIES} ) + ENDIF ( GLIB2_FOUND ) + ENDIF( NOT GLIB2_FOUND ) + + # find required libxml2 + IF( NOT LIBXML2_FOUND ) + FIND_PACKAGE( LibXml2 REQUIRED ) + IF ( LIBXML2_FOUND ) + SET ( LIBSOUP2_INCLUDE_DIRS ${LIBSOUP2_INCLUDE_DIRS} ${LIBXML2_INCLUDE_DIRS} ) + SET ( LIBSOUP2_LIBRARIES ${LIBSOUP2_LIBRARIES} ${LIBXML2_LIBRARIES} ) + ENDIF( LIBXML2_FOUND ) + ENDIF( NOT LIBXML2_FOUND ) + + # find required gnutls + IF( NOT GNUTLS_FOUND ) + FIND_PACKAGE( GNUTLS REQUIRED ) + IF ( GNUTLS_FOUND ) + SET ( LIBSOUP2_INCLUDE_DIRS ${LIBSOUP2_INCLUDE_DIRS} ${GNUTLS_INCLUDE_DIRS} ) + SET ( LIBSOUP2_LIBRARIES ${LIBSOUP2_LIBRARIES} ${GNUTLS_LIBRARIES} ) + ENDIF( GNUTLS_FOUND ) + ENDIF( NOT GNUTLS_FOUND ) + ENDIF ( _libsoup2_FOUND ) + + MARK_AS_ADVANCED( _libsoup2_include_DIR _libsoup2_LIBRARY ) + + # Report results + IF ( LIBSOUP2_LIBRARIES AND LIBSOUP2_INCLUDE_DIRS AND _libsoup2_FOUND ) + SET( LIBSOUP2_FOUND 1 ) + IF ( NOT LibSoup2_FIND_QUIETLY ) + MESSAGE( STATUS "Found libsoup2: ${_libsoup2_LIBRARY}" ) + ENDIF ( NOT LibSoup2_FIND_QUIETLY ) + ELSE ( LIBSOUP2_LIBRARIES AND LIBSOUP_INCLUDE_DIRS AND _libsoup2_FOUND ) + IF ( LibSoup2_FIND_REQUIRED ) + MESSAGE( SEND_ERROR "Could NOT find libsoup2" ) + ELSE ( LibSoup2_FIND_REQUIRED ) + IF ( NOT LibSoup2_FIND_QUIETLY ) + MESSAGE( STATUS "Could NOT find libsoup2" ) + ENDIF ( NOT LibSoup2_FIND_QUIETLY ) + ENDIF ( LibSoup2_FIND_REQUIRED ) + ENDIF ( LIBSOUP2_LIBRARIES AND LIBSOUP2_INCLUDE_DIRS AND _libsoup2_FOUND ) +ENDIF( NOT LIBSOUP2_FOUND AND NOT PKG_CONFIG_FOUND ) + +# Hide advanced variables from CMake GUIs +MARK_AS_ADVANCED( LIBSOUP2_LIBRARIES LIBSOUP2_INCLUDE_DIRS ) + diff --git a/Source/cmake/FindLibXlst.cmake b/Source/cmake/FindLibXlst.cmake new file mode 100644 index 0000000..1c55c4c --- /dev/null +++ b/Source/cmake/FindLibXlst.cmake @@ -0,0 +1,68 @@ +# - Try to find LibXslt +# Once done this will define +# +# LIBXSLT_FOUND - system has LibXslt +# LIBXSLT_INCLUDE_DIR - the LibXslt include directory +# LIBXSLT_LIBRARIES - Link these to LibXslt +# LIBXSLT_DEFINITIONS - Compiler switches required for using LibXslt +# LIBXSLT_XSLTPROC_EXECUTABLE - path to the xsltproc tool + +# Copyright (c) 2006, Alexander Neundorf, +# +# Redistribution and use is allowed according to the terms of the BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. + + +IF (LIBXSLT_INCLUDE_DIR AND LIBXSLT_LIBRARIES) + # in cache already + SET(LibXslt_FIND_QUIETLY TRUE) +ENDIF (LIBXSLT_INCLUDE_DIR AND LIBXSLT_LIBRARIES) + +IF (NOT WIN32) + # use pkg-config to get the directories and then use these values + # in the FIND_PATH() and FIND_LIBRARY() calls + find_package(PkgConfig) + pkg_check_modules(PC_XSLT QUIET libxslt) + SET(LIBXSLT_DEFINITIONS ${PC_XSLT_CFLAGS_OTHER}) +ENDIF (NOT WIN32) + +FIND_PATH(LIBXSLT_INCLUDE_DIR libxslt/xslt.h + PATHS + ${PC_XSLT_INCLUDEDIR} + ${PC_XSLT_INCLUDE_DIRS} + ) + +FIND_LIBRARY(LIBXSLT_LIBRARIES NAMES xslt libxslt + PATHS + ${PC_XSLT_LIBDIR} + ${PC_XSLT_LIBRARY_DIRS} + ) + +FIND_LIBRARY(LIBEXSLT_LIBRARIES NAMES exslt libexslt + PATHS + ${PC_XSLT_LIBDIR} + ${PC_XSLT_LIBRARY_DIRS} + ) + +IF (LIBXSLT_INCLUDE_DIR AND LIBXSLT_LIBRARIES) + SET(LIBXSLT_FOUND TRUE) +ELSE (LIBXSLT_INCLUDE_DIR AND LIBXSLT_LIBRARIES) + SET(LIBXSLT_FOUND FALSE) +ENDIF (LIBXSLT_INCLUDE_DIR AND LIBXSLT_LIBRARIES) + +FIND_PROGRAM(LIBXSLT_XSLTPROC_EXECUTABLE xsltproc) +# For compatibility with FindLibXslt.cmake from KDE 4.[01].x +SET(XSLTPROC_EXECUTABLE ${LIBXSLT_XSLTPROC_EXECUTABLE}) + +IF (LIBXSLT_FOUND) + IF (NOT LibXslt_FIND_QUIETLY) + MESSAGE(STATUS "Found LibXslt: ${LIBXSLT_LIBRARIES}") + ENDIF (NOT LibXslt_FIND_QUIETLY) +ELSE (LIBXSLT_FOUND) + IF (LibXslt_FIND_REQUIRED) + MESSAGE(FATAL_ERROR "Could NOT find LibXslt") + ENDIF (LibXslt_FIND_REQUIRED) +ENDIF (LIBXSLT_FOUND) + +MARK_AS_ADVANCED(LIBXSLT_INCLUDE_DIR LIBXSLT_LIBRARIES LIBEXSLT_LIBRARIES LIBXSLT_XSLTPROC_EXECUTABLE) + diff --git a/Source/cmake/FindPango.cmake b/Source/cmake/FindPango.cmake new file mode 100644 index 0000000..0df547f --- /dev/null +++ b/Source/cmake/FindPango.cmake @@ -0,0 +1,34 @@ +# - Try to find Pango +# Once done, this will define +# +# Pango_FOUND - system has Pango +# Pango_INCLUDE_DIRS - the Pango include directories +# Pango_LIBRARIES - link these to use Pango + +include(LibFindMacros) + +# Dependencies +libfind_package(Pango Freetype) + +# Use pkg-config to get hints about paths +libfind_pkg_check_modules(Pango_PKGCONF pango) + +# Include dir +find_path(Pango_INCLUDE_DIR + NAMES pango/pango.h + PATHS ${Pango_PKGCONF_INCLUDE_DIRS} + PATH_SUFFIXES pango-1.0 +) + +# Finally the library itself +find_library(Pango_LIBRARY + NAMES pango-1.0 + PATHS ${Pango_PKGCONF_LIBRARY_DIRS} +) + +# Set the include dir variables and the libraries and let libfind_process do the rest. +# NOTE: Singular variables for this library, plural for libraries this this lib depends on. +set(Pango_PROCESS_INCLUDES Pango_INCLUDE_DIR Freetype_INCLUDE_DIRS) +set(Pango_PROCESS_LIBS Pango_LIBRARY Freetype_LIBRARIES) +libfind_process(Pango) + diff --git a/Source/cmake/FindSqlite.cmake b/Source/cmake/FindSqlite.cmake new file mode 100644 index 0000000..2fa7633 --- /dev/null +++ b/Source/cmake/FindSqlite.cmake @@ -0,0 +1,50 @@ +# - Try to find Sqlite +# Once done this will define +# +# SQLITE_FOUND - system has Sqlite +# SQLITE_INCLUDE_DIR - the Sqlite include directory +# SQLITE_LIBRARIES - Link these to use Sqlite +# SQLITE_DEFINITIONS - Compiler switches required for using Sqlite +# Redistribution and use is allowed according to the terms of the BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. +# + + +# Copyright (c) 2008, Gilles Caulier, +# +# Redistribution and use is allowed according to the terms of the BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. + +if ( SQLITE_INCLUDE_DIR AND SQLITE_LIBRARIES ) + # in cache already + SET(Sqlite_FIND_QUIETLY TRUE) +endif ( SQLITE_INCLUDE_DIR AND SQLITE_LIBRARIES ) + +# use pkg-config to get the directories and then use these values +# in the FIND_PATH() and FIND_LIBRARY() calls +if( NOT WIN32 ) + find_package(PkgConfig) + + pkg_check_modules(PC_SQLITE sqlite3) + + set(SQLITE_DEFINITIONS ${PC_SQLITE_CFLAGS_OTHER}) +endif( NOT WIN32 ) + +FIND_PATH(SQLITE_INCLUDE_DIR NAMES sqlite3.h + PATHS + ${PC_SQLITE_INCLUDEDIR} + ${PC_SQLITE_INCLUDE_DIRS} +) + +FIND_LIBRARY(SQLITE_LIBRARIES NAMES sqlite3 + PATHS + ${PC_SQLITE_LIBDIR} + ${PC_SQLITE_LIBRARY_DIRS} +) + +include(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(Sqlite DEFAULT_MSG SQLITE_INCLUDE_DIR SQLITE_LIBRARIES ) + +# show the SQLITE_INCLUDE_DIR and SQLITE_LIBRARIES variables only in the advanced view +MARK_AS_ADVANCED(SQLITE_INCLUDE_DIR SQLITE_LIBRARIES ) + diff --git a/Source/cmake/LibFindMacros.cmake b/Source/cmake/LibFindMacros.cmake new file mode 100644 index 0000000..69975c5 --- /dev/null +++ b/Source/cmake/LibFindMacros.cmake @@ -0,0 +1,99 @@ +# Works the same as find_package, but forwards the "REQUIRED" and "QUIET" arguments +# used for the current package. For this to work, the first parameter must be the +# prefix of the current package, then the prefix of the new package etc, which are +# passed to find_package. +macro (libfind_package PREFIX) + set (LIBFIND_PACKAGE_ARGS ${ARGN}) + if (${PREFIX}_FIND_QUIETLY) + set (LIBFIND_PACKAGE_ARGS ${LIBFIND_PACKAGE_ARGS} QUIET) + endif (${PREFIX}_FIND_QUIETLY) + if (${PREFIX}_FIND_REQUIRED) + set (LIBFIND_PACKAGE_ARGS ${LIBFIND_PACKAGE_ARGS} REQUIRED) + endif (${PREFIX}_FIND_REQUIRED) + find_package(${LIBFIND_PACKAGE_ARGS}) +endmacro (libfind_package) + +# CMake developers made the UsePkgConfig system deprecated in the same release (2.6) +# where they added pkg_check_modules. Consequently I need to support both in my scripts +# to avoid those deprecated warnings. Here's a helper that does just that. +# Works identically to pkg_check_modules, except that no checks are needed prior to use. +macro (libfind_pkg_check_modules PREFIX PKGNAME) + if (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4) + include(UsePkgConfig) + pkgconfig(${PKGNAME} ${PREFIX}_INCLUDE_DIRS ${PREFIX}_LIBRARY_DIRS ${PREFIX}_LDFLAGS ${PREFIX}_CFLAGS) + else (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4) + find_package(PkgConfig) + if (PKG_CONFIG_FOUND) + pkg_check_modules(${PREFIX} ${PKGNAME}) + endif (PKG_CONFIG_FOUND) + endif (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4) +endmacro (libfind_pkg_check_modules) + +# Do the final processing once the paths have been detected. +# If include dirs are needed, ${PREFIX}_PROCESS_INCLUDES should be set to contain +# all the variables, each of which contain one include directory. +# Ditto for ${PREFIX}_PROCESS_LIBS and library files. +# Will set ${PREFIX}_FOUND, ${PREFIX}_INCLUDE_DIRS and ${PREFIX}_LIBRARIES. +# Also handles errors in case library detection was required, etc. +macro (libfind_process PREFIX) + # Skip processing if already processed during this run + if (NOT ${PREFIX}_FOUND) + # Start with the assumption that the library was found + set (${PREFIX}_FOUND TRUE) + + # Process all includes and set _FOUND to false if any are missing + foreach (i ${${PREFIX}_PROCESS_INCLUDES}) + if (${i}) + set (${PREFIX}_INCLUDE_DIRS ${${PREFIX}_INCLUDE_DIRS} ${${i}}) + mark_as_advanced(${i}) + else (${i}) + set (${PREFIX}_FOUND FALSE) + endif (${i}) + endforeach (i) + + # Process all libraries and set _FOUND to false if any are missing + foreach (i ${${PREFIX}_PROCESS_LIBS}) + if (${i}) + set (${PREFIX}_LIBRARIES ${${PREFIX}_LIBRARIES} ${${i}}) + mark_as_advanced(${i}) + else (${i}) + set (${PREFIX}_FOUND FALSE) + endif (${i}) + endforeach (i) + + # Print message and/or exit on fatal error + if (${PREFIX}_FOUND) + if (NOT ${PREFIX}_FIND_QUIETLY) + message (STATUS "Found ${PREFIX} ${${PREFIX}_VERSION}") + endif (NOT ${PREFIX}_FIND_QUIETLY) + else (${PREFIX}_FOUND) + if (${PREFIX}_FIND_REQUIRED) + foreach (i ${${PREFIX}_PROCESS_INCLUDES} ${${PREFIX}_PROCESS_LIBS}) + message("${i}=${${i}}") + endforeach (i) + message (FATAL_ERROR "Required library ${PREFIX} NOT FOUND.\nInstall the library (dev version) and try again. If the library is already installed, use ccmake to set the missing variables manually.") + endif (${PREFIX}_FIND_REQUIRED) + endif (${PREFIX}_FOUND) + endif (NOT ${PREFIX}_FOUND) +endmacro (libfind_process) + +macro(libfind_library PREFIX basename) + set(TMP "") + if(MSVC80) + set(TMP -vc80) + endif(MSVC80) + if(MSVC90) + set(TMP -vc90) + endif(MSVC90) + set(${PREFIX}_LIBNAMES ${basename}${TMP}) + if(${ARGC} GREATER 2) + set(${PREFIX}_LIBNAMES ${basename}${TMP}-${ARGV2}) + string(REGEX REPLACE "\\." "_" TMP ${${PREFIX}_LIBNAMES}) + set(${PREFIX}_LIBNAMES ${${PREFIX}_LIBNAMES} ${TMP}) + endif(${ARGC} GREATER 2) + find_library(${PREFIX}_LIBRARY + NAMES ${${PREFIX}_LIBNAMES} + PATHS ${${PREFIX}_PKGCONF_LIBRARY_DIRS} + ) +endmacro(libfind_library) + diff --git a/Source/cmake/OptionsCommon.cmake b/Source/cmake/OptionsCommon.cmake new file mode 100644 index 0000000..0331df8 --- /dev/null +++ b/Source/cmake/OptionsCommon.cmake @@ -0,0 +1,20 @@ +ADD_DEFINITIONS(-DBUILDING_WITH_CMAKE=1) +ADD_DEFINITIONS(-DHAVE_CONFIG_H=1) + +SET(WTF_INCLUDE_DIRECTORIES + "${JAVASCRIPTCORE_DIR}" + "${JAVASCRIPTCORE_DIR}/wtf" + "${JAVASCRIPTCORE_DIR}/wtf/unicode" + "${CMAKE_SOURCE_DIR}/Source" + "${DERIVED_SOURCES_DIR}" +) + +IF (WTF_OS_UNIX) + ADD_DEFINITIONS(-DXP_UNIX) +ENDIF (WTF_OS_UNIX) + +IF (MSVC) + SET(CODE_GENERATOR_PREPROCESSOR "${CMAKE_CXX_COMPILER} /nologo /EP") +ELSE () + SET(CODE_GENERATOR_PREPROCESSOR "${CMAKE_CXX_COMPILER} -E -P -x c++") +ENDIF () diff --git a/Source/cmake/OptionsEfl.cmake b/Source/cmake/OptionsEfl.cmake new file mode 100644 index 0000000..3f846fe --- /dev/null +++ b/Source/cmake/OptionsEfl.cmake @@ -0,0 +1,170 @@ +SET(PROJECT_VERSION_MAJOR 0) +SET(PROJECT_VERSION_MINOR 1) +SET(PROJECT_VERSION_PATCH 0) +SET(PROJECT_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}) + +# ----------------------------------------------------------------------------- +# We mention Safari version because many sites check for it. +# Sync with Source/WebCore/Configurations/Version.xcconfig whenever Safari is +# version up. +# ----------------------------------------------------------------------------- +SET(USER_AGENT_VERSION_MAJOR 534) +SET(USER_AGENT_VERSION_MINOR 16) + +ADD_DEFINITIONS(-DWTF_PLATFORM_EFL=1) +SET(WTF_PLATFORM_EFL 1) + +# ----------------------------------------------------------------------------- +# Determine which network backend will be used +# ----------------------------------------------------------------------------- +SET(ALL_NETWORK_BACKENDS soup curl) +SET(NETWORK_BACKEND "soup" CACHE STRING "choose which network backend to use (one of ${ALL_NETWORK_BACKENDS})") + +# ----------------------------------------------------------------------------- +# Determine which font backend will be used +# ----------------------------------------------------------------------------- +SET(ALL_FONT_BACKENDS freetype pango) +SET(FONT_BACKEND "freetype" CACHE STRING "choose which network backend to use (one of ${ALL_FONT_BACKENDS})") + +FIND_PACKAGE(Cairo 1.6 REQUIRED) +FIND_PACKAGE(EFL REQUIRED) +FIND_PACKAGE(Fontconfig 2.8.0 REQUIRED) +FIND_PACKAGE(Sqlite REQUIRED) +FIND_PACKAGE(LibXml2 2.6 REQUIRED) +FIND_PACKAGE(LibXslt 1.1.7 REQUIRED) +FIND_PACKAGE(ICU REQUIRED) +FIND_PACKAGE(Threads REQUIRED) +FIND_PACKAGE(JPEG REQUIRED) +FIND_PACKAGE(PNG REQUIRED) + +ADD_DEFINITIONS(-DENABLE_CONTEXT_MENUS=0) + +SET(WTF_USE_PTHREADS 1) +ADD_DEFINITIONS(-DWTF_USE_PTHREADS=1) + +SET(WTF_USE_ICU_UNICODE 1) +ADD_DEFINITIONS(-DWTF_USE_ICU_UNICODE=1) +LIST(APPEND WTF_INCLUDE_DIRECTORIES ${ICU_INCLUDE_DIRS}) + +SET(WTF_PLATFORM_CAIRO 1) +ADD_DEFINITIONS(-DWTF_PLATFORM_CAIRO=1) + +SET(JSC_EXECUTABLE_NAME jsc_efl) +SET(WTF_LIBRARY_NAME wtf_efl) +SET(JavaScriptCore_LIBRARY_NAME javascriptcore_efl) +SET(WebCore_LIBRARY_NAME webcore_efl) +SET(WebKit_LIBRARY_NAME ewebkit) + +SET(DATA_DIR ${CMAKE_INSTALL_PREFIX}/share/${WebKit_LIBRARY_NAME}-${PROJECT_VERSION_MAJOR}) +ADD_DEFINITIONS(-DDATA_DIR="${DATA_DIR}") + +SET(VERSION_SCRIPT "-Wl,--version-script,${CMAKE_MODULE_PATH}/eflsymbols.filter") + +WEBKIT_FEATURE(ENABLE_AS_IMAGE "Enable SVG as image" DEFAULT ON SVG) +WEBKIT_FEATURE(ENABLE_BLOB "Enable blob slice" DEFAULT OFF) +WEBKIT_FEATURE(ENABLE_CHANNEL_MESSAGING "Enable channel messaging" DEFAULT ON) +WEBKIT_FEATURE(ENABLE_DATABASE "Enable database" DEFAULT ON) +WEBKIT_FEATURE(ENABLE_DATAGRID "Enable datagrid" DEFAULT OFF) +WEBKIT_FEATURE(ENABLE_DATALIST "Enable datalist" DEFAULT ON HTML) +WEBKIT_FEATURE(ENABLE_DOM_STORAGE "Enable DOM storage" DEFAULT ON) +WEBKIT_FEATURE(ENABLE_EVENTSOURCE "Enable event source" DEFAULT ON) +WEBKIT_FEATURE(ENABLE_FAST_MALLOC "Enable TCmalloc instead of system's allocator" DEFAULT ON) +WEBKIT_FEATURE(ENABLE_FAST_MOBILE_SCROLLING "Enable fast mobile scrolling" DEFAULT ON) +WEBKIT_FEATURE(ENABLE_FILTERS "Enable SVG filters" DEFAULT ON SVG) +WEBKIT_FEATURE(ENABLE_FTPDIR "Enable FTP directory support" DEFAULT ON) +WEBKIT_FEATURE(ENABLE_GEOLOCATION "Enable geolocation" DEFAULT OFF) +WEBKIT_FEATURE(ENABLE_GLIB_SUPPORT "Enable Glib support" DEFAULT ON) +WEBKIT_FEATURE(ENABLE_ICONDATABASE "Enable icon database" DEFAULT ON) +WEBKIT_FEATURE(ENABLE_INSPECTOR "Enable inspector" DEFAULT ON) +WEBKIT_FEATURE(ENABLE_JAVASCRIPT_DEBUGGER "Enable JavaScript debugger" DEFAULT ON) +WEBKIT_FEATURE(ENABLE_JIT "Enable JIT code" DEFAULT OFF) +WEBKIT_FEATURE(ENABLE_MATHML "Enable MathML" DEFAULT ON) +WEBKIT_FEATURE(ENABLE_NETSCAPE_PLUGIN_API "Enable Netscape plugin API" DEFAULT OFF) +WEBKIT_FEATURE(ENABLE_NOTIFICATIONS "Enable notifications" DEFAULT OFF) +WEBKIT_FEATURE(ENABLE_OFFLINE_WEB_APPLICATIONS "Enable offline web applications" DEFAULT ON) +WEBKIT_FEATURE(ENABLE_ORIENTATION_EVENTS "Enable orientation events" DEFAULT OFF) +WEBKIT_FEATURE(ENABLE_PROGRESS_TAG "Enable progress tag" DEFAULT OFF) +WEBKIT_FEATURE(ENABLE_SHARED_WORKERS "Enable shared workers" DEFAULT ON) +WEBKIT_FEATURE(ENABLE_SVG "Enable SVG" DEFAULT ON) +WEBKIT_FEATURE(ENABLE_SVG_ANIMATION "Enable SVG animation" DEFAULT ON SVG) +WEBKIT_FEATURE(ENABLE_SVG_FONTS "Enable SVG fonts" DEFAULT ON SVG) +WEBKIT_FEATURE(ENABLE_SVG_FOREIGN_OBJECT "Enable SVG foreign object" DEFAULT ON SVG) +WEBKIT_FEATURE(ENABLE_SVG_USE "Enable SVG use" DEFAULT ON SVG) +WEBKIT_FEATURE(ENABLE_TOUCH_EVENTS "Enable Touch Events" DEFAULT OFF) +WEBKIT_FEATURE(ENABLE_VIDEO "Enable video" DEFAULT ON HTML) +WEBKIT_FEATURE(ENABLE_WEB_SOCKETS "Enable web sockets" DEFAULT OFF) +WEBKIT_FEATURE(ENABLE_WML "Enable WML" DEFAULT OFF) +WEBKIT_FEATURE(ENABLE_WORKERS "Enable workers" DEFAULT ON) +WEBKIT_FEATURE(ENABLE_XHTMLMP "Enable XHTMLMP" DEFAULT OFF) +WEBKIT_FEATURE(ENABLE_XPATH "Enable XPath" DEFAULT ON) +WEBKIT_FEATURE(ENABLE_XSLT "Enable XSLT" DEFAULT ON) + +OPTION(ENABLE_ECORE_X "Enable Ecore_X specific usage (cursor, bell)" ON) +IF (ENABLE_ECORE_X) + IF (ECORE_X_FOUND) + MESSAGE(STATUS "Using Ecore-X to provide extended support.") + ADD_DEFINITIONS(-DHAVE_ECORE_X) + ELSE () + MESSAGE(ERROR "Requested Ecore-X but it was not found!") + ENDIF () +ENDIF () + +IF (NETWORK_BACKEND STREQUAL "soup") + IF (NOT ENABLE_GLIB_SUPPORT) + SET(ENABLE_GLIB_SUPPORT 1) + MESSAGE("Forcing Glib support") + ENDIF () + FIND_PACKAGE(LibSoup2 2.28.2 REQUIRED) + SET(WTF_USE_SOUP 1) + ADD_DEFINITIONS(-DWTF_USE_SOUP=1) + + IF (LIBSOUP24_VERSION VERSION_LESS 2.29.90) + ELSE (LIBSOUP24_VERSION VERSION_LESS 2.29.90) + SET(HAVE_LIBSOUP_2_29_90 1) + ADD_DEFINITIONS(-DHAVE_LIBSOUP_2_29_90=1) + ENDIF () +ELSE () + FIND_PACKAGE(CURL REQUIRED) + SET(WTF_USE_CURL 1) + ADD_DEFINITIONS(-DWTF_USE_CURL=1) +ENDIF () + +IF (FONT_BACKEND STREQUAL "freetype") + FIND_PACKAGE(Freetype 9.0 REQUIRED) + SET(WTF_USE_FREETYPE 1) + ADD_DEFINITIONS(-DUSE_FREETYPE=1) +ELSE () + FIND_PACKAGE(Pango REQUIRED) + SET(WTF_USE_PANGO 1) + ADD_DEFINITIONS(-DUSE_PANGO=1) + + IF (NOT ENABLE_GLIB_SUPPORT) + SET(ENABLE_GLIB_SUPPORT 1) + MESSAGE("Forcing Glib support") + ENDIF () +ENDIF () + +IF (ENABLE_VIDEO) + SET(ENABLE_GLIB_SUPPORT 1) + MESSAGE("Forcing Glib support") +ENDIF() + +IF (ENABLE_GLIB_SUPPORT) + FIND_PACKAGE(GDK 2.10 REQUIRED) + FIND_PACKAGE(Glib REQUIRED) + FIND_PACKAGE(Gthread REQUIRED) +ENDIF () + +IF (ENABLE_VIDEO) + FIND_PACKAGE(GStreamer REQUIRED) + FIND_PACKAGE(GStreamer-App REQUIRED) + FIND_PACKAGE(GStreamer-Base REQUIRED) + FIND_PACKAGE(GStreamer-Pbutils REQUIRED) + FIND_PACKAGE(GStreamer-Interfaces REQUIRED) + FIND_PACKAGE(GStreamer-Plugins-Base REQUIRED) + FIND_PACKAGE(GStreamer-Video REQUIRED) + SET(WTF_USE_GSTREAMER 1) + ADD_DEFINITIONS(-DWTF_USE_GSTREAMER=1) +ENDIF() + +SET(CPACK_SOURCE_GENERATOR TBZ2) diff --git a/Source/cmake/OptionsWinCE.cmake b/Source/cmake/OptionsWinCE.cmake new file mode 100644 index 0000000..55f8caa --- /dev/null +++ b/Source/cmake/OptionsWinCE.cmake @@ -0,0 +1,59 @@ +INCLUDE(OptionsWindows) + +ADD_DEFINITIONS(-DWTF_USE_WINCE_UNICODE=1) +ADD_DEFINITIONS(-DWTF_USE_WININET=1) +ADD_DEFINITIONS(-DWTF_CPU_ARM_TRADITIONAL -DWINCEBASIC) +ADD_DEFINITIONS(-DJS_NO_EXPORT) +ADD_DEFINITIONS(-DENABLE_JSC_MULTIPLE_THREADS=0) +ADD_DEFINITIONS(-DHAVE_ACCESSIBILITY=0) +ADD_DEFINITIONS(-DUSE_SYSTEM_MALLOC=1) +ADD_DEFINITIONS(-DJSCCOLLECTOR_VIRTUALMEM_RESERVATION=0x200000) + +IF (NOT 3RDPARTY_DIR) + IF (EXISTS $ENV{WEBKITTHIRDPARTYDIR}) + SET(3RDPARTY_DIR $ENV{WEBKITTHIRDPARTYDIR}) + ELSE () + MESSAGE(FATAL_ERROR "You must provide a third party directory for WinCE port.") + ENDIF () +ENDIF () + +INCLUDE_DIRECTORIES(${3RDPARTY_DIR}/ce-compat) +ADD_SUBDIRECTORY(${3RDPARTY_DIR} "${CMAKE_CURRENT_BINARY_DIR}/3rdparty") + +WEBKIT_FEATURE(ENABLE_AS_IMAGE "Enable SVG as image" DEFAULT ON SVG) +WEBKIT_FEATURE(ENABLE_BLOB "Enable blob slice" DEFAULT OFF) +WEBKIT_FEATURE(ENABLE_CHANNEL_MESSAGING "Enable channel messaging" DEFAULT OFF) +WEBKIT_FEATURE(ENABLE_DATABASE "Enable database" DEFAULT OFF) +WEBKIT_FEATURE(ENABLE_DATAGRID "Enable datagrid" DEFAULT OFF) +WEBKIT_FEATURE(ENABLE_DATALIST "Enable datalist" DEFAULT OFF HTML) +WEBKIT_FEATURE(ENABLE_DOM_STORAGE "Enable DOM storage" DEFAULT OFF) +WEBKIT_FEATURE(ENABLE_EVENTSOURCE "Enable event source" DEFAULT ON) +WEBKIT_FEATURE(ENABLE_FAST_MOBILE_SCROLLING "Enable fast mobile scrolling" DEFAULT ON) +WEBKIT_FEATURE(ENABLE_FILTERS "Enable SVG filters" DEFAULT OFF SVG) +WEBKIT_FEATURE(ENABLE_FTPDIR "Enable FTP directory support" DEFAULT OFF) +WEBKIT_FEATURE(ENABLE_GEOLOCATION "Enable geolocation" DEFAULT OFF) +WEBKIT_FEATURE(ENABLE_GLIB_SUPPORT "Enable Glib support" DEFAULT OFF) +WEBKIT_FEATURE(ENABLE_ICONDATABASE "Enable icon database" DEFAULT OFF) +WEBKIT_FEATURE(ENABLE_INSPECTOR "Enable inspector" DEFAULT OFF) +WEBKIT_FEATURE(ENABLE_JAVASCRIPT_DEBUGGER "Enable JavaScript debugger" DEFAULT OFF) +WEBKIT_FEATURE(ENABLE_JIT "Enable JIT code" DEFAULT OFF) +WEBKIT_FEATURE(ENABLE_MATHML "Enable MathML" DEFAULT OFF) +WEBKIT_FEATURE(ENABLE_NETSCAPE_PLUGIN_API "Enable Netscape plugin API" DEFAULT OFF) +WEBKIT_FEATURE(ENABLE_NOTIFICATIONS "Enable notifications" DEFAULT OFF) +WEBKIT_FEATURE(ENABLE_OFFLINE_WEB_APPLICATIONS "Enable offline web applications" DEFAULT OFF) +WEBKIT_FEATURE(ENABLE_ORIENTATION_EVENTS "Enable orientation events" DEFAULT OFF) +WEBKIT_FEATURE(ENABLE_PROGRESS_TAG "Enable progress tag" DEFAULT OFF) +WEBKIT_FEATURE(ENABLE_SHARED_WORKERS "Enable shared workers" DEFAULT OFF) +WEBKIT_FEATURE(ENABLE_SVG "Enable SVG" DEFAULT ON) +WEBKIT_FEATURE(ENABLE_SVG_ANIMATION "Enable SVG animation" DEFAULT OFF SVG) +WEBKIT_FEATURE(ENABLE_SVG_FONTS "Enable SVG fonts" DEFAULT ON SVG) +WEBKIT_FEATURE(ENABLE_SVG_FOREIGN_OBJECT "Enable SVG foreign object" DEFAULT OFF SVG) +WEBKIT_FEATURE(ENABLE_SVG_USE "Enable SVG use" DEFAULT ON SVG) +WEBKIT_FEATURE(ENABLE_TOUCH_EVENTS "Enable Touch Events" DEFAULT OFF) +WEBKIT_FEATURE(ENABLE_VIDEO "Enable video" DEFAULT OFF HTML) +WEBKIT_FEATURE(ENABLE_WEB_SOCKETS "Enable web sockets" DEFAULT OFF) +WEBKIT_FEATURE(ENABLE_WML "Enable WML" DEFAULT OFF) +WEBKIT_FEATURE(ENABLE_WORKERS "Enable workers" DEFAULT OFF) +WEBKIT_FEATURE(ENABLE_XHTMLMP "Enable XHTMLMP" DEFAULT OFF) +WEBKIT_FEATURE(ENABLE_XPATH "Enable XPath" DEFAULT OFF) +WEBKIT_FEATURE(ENABLE_XSLT "Enable XSLT" DEFAULT OFF) diff --git a/Source/cmake/OptionsWindows.cmake b/Source/cmake/OptionsWindows.cmake new file mode 100644 index 0000000..a8f02b3 --- /dev/null +++ b/Source/cmake/OptionsWindows.cmake @@ -0,0 +1,14 @@ +ADD_DEFINITIONS(-DWTF_PLATFORM_WINDOWS=1) +SET(WTF_PLATFORM_WINDOWS 1) + +ADD_DEFINITIONS(-DUNICODE) + +INCLUDE_DIRECTORIES(${JAVASCRIPTCORE_DIR}/os-win32) + +IF (MSVC) + ADD_DEFINITIONS(/WX + /wd4018 /wd4065 /wd4068 /wd4099 /wd4100 /wd4127 /wd4138 /wd4180 /wd4189 /wd4201 /wd4244 /wd4251 /wd4275 /wd4288 /wd4291 + /wd4305 /wd4344 /wd4355 /wd4389 /wd4396 /wd4503 /wd4505 /wd4510 /wd4512 /wd4610 /wd4706 /wd4800 /wd4951 /wd4952 /wd4996) +ENDIF () + +STRING(REPLACE "/ENTRY:mainACRTStartup" "/ENTRY:WinMainCRTStartup" CMAKE_EXE_LINKER_FLAGS ${CMAKE_EXE_LINKER_FLAGS}) diff --git a/Source/cmake/WebKitEfl.cmake b/Source/cmake/WebKitEfl.cmake new file mode 100644 index 0000000..06bd060 --- /dev/null +++ b/Source/cmake/WebKitEfl.cmake @@ -0,0 +1,6 @@ +# EFL port specific macros and definitions + +FIND_PROGRAM(EDJE_CC_EXECUTABLE edje_cc) +IF (NOT EDJE_CC_EXECUTABLE) + MESSAGE(FATAL_ERROR "Missing edje_cc") +ENDIF () diff --git a/Source/cmake/WebKitFS.cmake b/Source/cmake/WebKitFS.cmake new file mode 100644 index 0000000..a2117cd --- /dev/null +++ b/Source/cmake/WebKitFS.cmake @@ -0,0 +1,6 @@ +SET(DERIVED_SOURCES_DIR "${CMAKE_BINARY_DIR}/DerivedSources") + +FILE(MAKE_DIRECTORY ${DERIVED_SOURCES_DIR}) +FILE(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/Source/JavaScriptCore/pcre) +FILE(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/Source/JavaScriptCore/runtime) +FILE(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/Programs) diff --git a/Source/cmake/WebKitFeatures.cmake b/Source/cmake/WebKitFeatures.cmake new file mode 100644 index 0000000..f7516f4 --- /dev/null +++ b/Source/cmake/WebKitFeatures.cmake @@ -0,0 +1,91 @@ +SET(DEFAULT 0) +SET(DEPENDS 1) + +SET(WEBKIT_FEATURES "") + +SET(HTML_FEATURES "") +SET(SVG_FEATURES "") + +MACRO(WEBKIT_SEPARATE_FEATURES _name _value) + FOREACH(f ${ARGN}) + LIST(APPEND ${f}_FEATURES "${_name}=${_value}") + ENDFOREACH() +ENDMACRO(WEBKIT_SEPARATE_FEATURES) + +MACRO(WEBKIT_FEATURE_CHECK_DEPS _deps _deps_ok) + SET(${_deps_ok} TRUE) + + LIST(LENGTH ${_deps} ${_deps_ok}_LIST_SIZE) + IF (${${_deps_ok}_LIST_SIZE} GREATER 1) + FOREACH(_dep ${${_deps}}) + IF (NOT ${_dep}) + SET(${_deps_ok} FALSE) + BREAK() + ENDIF () + ENDFOREACH () + ELSE () + IF (NOT ${_deps}) + SET(${_deps_ok} FALSE) + ENDIF () + ENDIF () +ENDMACRO() + +MACRO(WEBKIT_FEATURE _feature _description _type _args) + IF (${_type} EQUAL ${DEPENDS}) + WEBKIT_FEATURE_CHECK_DEPS(${_args} DEPS_OK_${_feature}) + OPTION(${_feature} "${_description}" DEPS_OK_${_feature}) + ELSEIF (${_type} EQUAL ${DEFAULT}) + OPTION(${_feature} "${_description}" ${_args}) + ENDIF () + + LIST(APPEND WEBKIT_FEATURES ${_feature}) + + IF (${_feature}) + SET(${_feature}_VALUE 1) + WEBKIT_SEPARATE_FEATURES(${_feature} 1 ${ARGN}) + LIST(APPEND FEATURE_DEFINES ${_feature}) + ELSE () + SET(${_feature}_VALUE 0) + WEBKIT_SEPARATE_FEATURES(${_feature} 0 ${ARGN}) + ENDIF () +ENDMACRO() + +MACRO(WEBKIT_PRINT_FEATURES) + MESSAGE(STATUS "Enabled features:") + + SET(MAX_FEATURE_LENGTH 0) + FOREACH (_feature ${WEBKIT_FEATURES}) + STRING(LENGTH ${_feature} FEATURE_LENGTH) + IF (FEATURE_LENGTH GREATER MAX_FEATURE_LENGTH) + SET(MAX_FEATURE_LENGTH ${FEATURE_LENGTH}) + ENDIF () + ENDFOREACH () + + SET(ODD 0) + FOREACH (_feature ${WEBKIT_FEATURES}) + STRING(LENGTH ${_feature} FEATURE_LENGTH) + SET(SPACES "") + + IF (ODD) + FOREACH (IGNORE RANGE ${FEATURE_LENGTH} ${MAX_FEATURE_LENGTH}) + SET(SPACES "${SPACES} ") + ENDFOREACH () + SET(ODD 0) + ELSE () + FOREACH (IGNORE RANGE ${FEATURE_LENGTH} ${MAX_FEATURE_LENGTH}) + SET(SPACES "${SPACES}.") + ENDFOREACH () + SET(ODD 1) + ENDIF () + + IF (${_feature}) + MESSAGE(STATUS " ${_feature} ${SPACES} ON") + ELSE () + MESSAGE(STATUS " ${_feature} ${SPACES} OFF") + ENDIF () + ENDFOREACH () + + UNSET(FEATURE_LENGTH) + UNSET(MAX_FEATURE_LENGTH) + UNSET(ODD) +ENDMACRO() diff --git a/Source/cmake/WebKitHelpers.cmake b/Source/cmake/WebKitHelpers.cmake new file mode 100644 index 0000000..58c506b --- /dev/null +++ b/Source/cmake/WebKitHelpers.cmake @@ -0,0 +1,79 @@ +# Sets extra compile flags for a target, depending on the compiler being used. +# Currently, only GCC is supported. +MACRO(WEBKIT_SET_EXTRA_COMPILER_FLAGS _target) + IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") + GET_TARGET_PROPERTY(OLD_COMPILE_FLAGS ${_target} COMPILE_FLAGS) + IF (${OLD_COMPILE_FLAGS} STREQUAL "OLD_COMPILE_FLAGS-NOTFOUND") + SET(OLD_COMPILE_FLAGS "") + ENDIF () + + # Disable some optimizations on buggy compiler versions + # GCC 4.5.1 does not implement -ftree-sra correctly + EXEC_PROGRAM(${CMAKE_CXX_COMPILER} ARGS -dumpversion OUTPUT_VARIABLE COMPILER_VERSION) + IF (${COMPILER_VERSION} STREQUAL "4.5.1") + SET(OLD_COMPILE_FLAGS "${OLD_COMPILE_FLAGS} -fno-tree-sra") + ENDIF () + + IF (NOT SHARED_CORE) + SET(OLD_COMPILE_FLAGS "-fPIC -fvisibility=hidden ${OLD_COMPILE_FLAGS}") + ENDIF () + + SET(OLD_COMPILE_FLAGS "-fno-exceptions -fno-strict-aliasing ${OLD_COMPILE_FLAGS}") + + # Enable warnings by default + SET(OLD_COMPILE_FLAGS "-W -DANOTHER_BRICK_IN_THE -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat -Wformat-security -Wmissing-format-attribute -Wno-format-y2k -Wno-parentheses -Wno-unused-parameter -Wpointer-arith -Wreturn-type -Wundef -Wwrite-strings ${OLD_COMPILE_FLAGS}") + + SET_TARGET_PROPERTIES (${_target} PROPERTIES + COMPILE_FLAGS "${OLD_COMPILE_FLAGS}") + + UNSET(OLD_COMPILE_FLAGS) + ENDIF () +ENDMACRO() + + +# Append the given flag to the target property. +# Builds on top of GET_TARGET_PROPERTY() and SET_TARGET_PROPERTIES() +MACRO (ADD_TARGET_PROPERTIES _target _property _flags) + GET_TARGET_PROPERTY (_tmp ${_target} ${_property}) + IF (NOT _tmp) + SET (_tmp "") + ENDIF (NOT _tmp) + + FOREACH (f ${_flags}) + SET (_tmp "${_tmp} ${f}") + ENDFOREACH (f ${_flags}) + + SET_TARGET_PROPERTIES (${_target} PROPERTIES ${_property} ${_tmp}) + UNSET (_tmp) +ENDMACRO (ADD_TARGET_PROPERTIES _target _property _flags) + + +# Append the given dependencies to the source file +MACRO(ADD_SOURCE_DEPENDENCIES _source _deps) + GET_SOURCE_FILE_PROPERTY(_tmp ${_source} OBJECT_DEPENDS) + IF (NOT _tmp) + SET (_tmp "") + ENDIF () + + FOREACH (f ${_deps}) + LIST(APPEND _tmp "${f}") + ENDFOREACH () + + SET_SOURCE_FILES_PROPERTIES(${_source} PROPERTIES OBJECT_DEPENDS "${_tmp}") + UNSET(_tmp) +ENDMACRO() + + +# Append the given dependencies to the source file +# This one consider the given dependencies are in ${DERIVED_SOURCES_DIR} +# and prepends this to every member of dependencies list +MACRO(ADD_SOURCE_DERIVED_DEPENDENCIES _source _deps) + SET(_tmp "") + FOREACH (f ${_deps}) + LIST(APPEND _tmp "${DERIVED_SOURCES_DIR}/${f}") + ENDFOREACH () + + ADD_SOURCE_DEPENDENCIES(${_source} ${_tmp}) + UNSET(_tmp) +ENDMACRO() + diff --git a/Source/cmake/WebKitMacros.cmake b/Source/cmake/WebKitMacros.cmake new file mode 100644 index 0000000..75a87a6 --- /dev/null +++ b/Source/cmake/WebKitMacros.cmake @@ -0,0 +1,130 @@ +MACRO (INCLUDE_IF_EXISTS _file) + IF (EXISTS ${_file}) + MESSAGE(STATUS "Using platform-specific CMakeLists: ${_file}") + INCLUDE(${_file}) + ELSE () + MESSAGE(STATUS "Platform-specific CMakeLists not found: ${_file}") + ENDIF () +ENDMACRO () + + +# Append the given dependencies to the source file +MACRO (ADD_SOURCE_DEPENDENCIES _source _deps) + SET(_tmp) + GET_SOURCE_FILE_PROPERTY(_tmp ${_source} OBJECT_DEPENDS) + IF (NOT _tmp) + SET(_tmp "") + ENDIF () + + FOREACH (f ${_deps}) + LIST(APPEND _tmp "${f}") + ENDFOREACH () + + SET_SOURCE_FILES_PROPERTIES(${_source} PROPERTIES OBJECT_DEPENDS "${_tmp}") +ENDMACRO () + + +MACRO (GENERATE_DOM_NAMES _namespace _attrs) + SET(NAMES_GENERATOR ${WEBCORE_DIR}/dom/make_names.pl) + SET(_arguments --attrs ${_attrs}) + SET(_outputfiles ${DERIVED_SOURCES_DIR}/${_namespace}Names.cpp ${DERIVED_SOURCES_DIR}/${_namespace}Names.h) + SET(_extradef) + SET(_tags) + + FOREACH (f ${ARGN}) + IF (_tags) + SET(_extradef "${_extradef} ${f}") + ELSE () + SET(_tags ${f}) + ENDIF () + ENDFOREACH () + + IF (_tags) + SET(_arguments "${_arguments}" --tags ${_tags} --factory --wrapperFactory) + SET(_outputfiles "${_outputfiles}" ${DERIVED_SOURCES_DIR}/${_namespace}ElementFactory.cpp ${DERIVED_SOURCES_DIR}/${_namespace}ElementFactory.h ${DERIVED_SOURCES_DIR}/JS${_namespace}ElementWrapperFactory.cpp ${DERIVED_SOURCES_DIR}/JS${_namespace}ElementWrapperFactory.h) + ENDIF () + + IF (_extradef) + SET(_additionArguments "${_additionArguments}" --extraDefines=${_extradef}) + ENDIF () + + ADD_CUSTOM_COMMAND( + OUTPUT ${_outputfiles} + DEPENDS ${NAMES_GENERATOR} ${SCRIPTS_BINDINGS} ${_attrs} ${_tags} + COMMAND ${PERL_EXECUTABLE} -I${WEBCORE_DIR}/bindings/scripts ${NAMES_GENERATOR} --preprocessor "${CODE_GENERATOR_PREPROCESSOR}" --outputDir ${DERIVED_SOURCES_DIR} ${_arguments} ${_additionArguments} + VERBATIM) +ENDMACRO () + + +# - Create hash table *.lut.h +# GENERATE_HASH_LUT(input_file output_file) +MACRO (GENERATE_HASH_LUT _input _output) + SET(HASH_LUT_GENERATOR "${JAVASCRIPTCORE_DIR}/create_hash_table") + + FOREACH (_tmp ${ARGN}) + IF (${_tmp} STREQUAL "MAIN_DEPENDENCY") + SET(_main_dependency ${_input}) + ENDIF () + ENDFOREACH () + + ADD_CUSTOM_COMMAND( + OUTPUT ${_output} + MAIN_DEPENDENCY ${_main_dependency} + DEPENDS ${_input} ${HASH_LUT_GENERATOR} + COMMAND ${PERL_EXECUTABLE} ${HASH_LUT_GENERATOR} ${_input} > ${_output} + VERBATIM) +ENDMACRO () + + +MACRO (GENERATE_GRAMMAR _prefix _input _output_header _output_source) + ADD_CUSTOM_COMMAND( + OUTPUT ${_output_header} ${_output_source} + MAIN_DEPENDENCY ${_input} + COMMAND ${BISON_EXECUTABLE} -p ${_prefix} ${_input} -o ${_output_source} --defines=${_output_header} + VERBATIM) +ENDMACRO () + +MACRO(MAKE_HASH_TOOLS _source) + GET_FILENAME_COMPONENT(_name ${_source} NAME_WE) + + IF (${_source} STREQUAL "DocTypeStrings") + SET(_hash_tools_h "${DERIVED_SOURCES_DIR}/HashTools.h") + ELSE () + SET(_hash_tools_h "") + ENDIF () + + ADD_CUSTOM_COMMAND( + OUTPUT ${DERIVED_SOURCES_DIR}/${_name}.cpp ${_hash_tools_h} + MAIN_DEPENDENCY ${_source}.gperf + COMMAND ${PERL_EXECUTABLE} ${WEBCORE_DIR}/make-hash-tools.pl ${DERIVED_SOURCES_DIR} ${_source}.gperf + VERBATIM) + + UNSET(_name) + UNSET(_hash_tools_h) +ENDMACRO() + +MACRO (WEBKIT_WRAP_SOURCELIST) + FOREACH (_file ${ARGN}) + GET_FILENAME_COMPONENT(_basename ${_file} NAME_WE) + GET_FILENAME_COMPONENT(_path ${_file} PATH) + + IF (NOT _file MATCHES "${DERIVED_SOURCES_DIR}") + STRING(REGEX REPLACE "/" "\\\\\\\\" _sourcegroup "${_path}") + SOURCE_GROUP("${_sourcegroup}" FILES ${_file}) + ENDIF () + + IF (WTF_PLATFORM_QT) + SET(_moc_filename ${DERIVED_SOURCES_DIR}/${_basename}.moc) + + FILE(READ ${_file} _contents) + + STRING(REGEX MATCHALL "#include[ ]+\"${_basename}\\.moc\"" _match "${_contents}") + IF (_match) + QT4_GENERATE_MOC(${_file} ${_moc_filename}) + ADD_SOURCE_DEPENDENCIES(${_file} ${_moc_filename}) + ENDIF () + ENDIF () + ENDFOREACH () + + SOURCE_GROUP("DerivedSources" REGULAR_EXPRESSION "${DERIVED_SOURCES_DIR}") +ENDMACRO () diff --git a/Source/cmake/WebKitPackaging.cmake b/Source/cmake/WebKitPackaging.cmake new file mode 100644 index 0000000..4c91073 --- /dev/null +++ b/Source/cmake/WebKitPackaging.cmake @@ -0,0 +1,181 @@ +# ----------------------------------------------------------------------------- +# This file defines the basics of CPack behavior for WebKit +# +# The following CPack variables will be defined if they were unset: +# - CPACK_PACKAGE_NAME to WebKit-${PORT} +# - CPACK_SOURCE_IGNORE_FILES to a known pattern of good files +# +# The following variables affect the behavior of packaging: +# - WEBKIT_CPACK_ALL_PORTS if defined and true, will not limit packaging +# to just include files of the port (affects CPACK_SOURCE_IGNORE_FILES, +# just if this variable was not defined before). +# - WEBKIT_CPACK_ADD_TESTS if defined and true, will also add tests +# (affects CPACK_SOURCE_IGNORE_FILES, just if this variable was +# not defined before) +# - WEBKIT_CPACK_ADD_TOOLS if defined and true, will also add tools +# (affects CPACK_SOURCE_IGNORE_FILES, just if this variable was +# not defined before) +# ----------------------------------------------------------------------------- + +IF(NOT DEFINED CPACK_PACKAGE_NAME) + SET(CPACK_PACKAGE_NAME WebKit-${PORT}) +ENDIF() + +IF(NOT DEFINED CPACK_SOURCE_IGNORE_FILES) + SET(CPACK_SOURCE_IGNORE_FILES + # Version control: + "/CVS/" + "/\\\\.svn/" + "/\\\\.bzr/" + "/\\\\.hg/" + "/\\\\.git/" + "\\\\.swp$" + "\\\\.#" + "/#" + "/\\\\.gitignore$" + "/\\\\.gitattributes$" + + # SVN-only files should be ignored (site, examples...) + "/PerformanceTests/" + "/Examples/" + "/Websites/" + + # Other build systems: + # - Makefiles (.mk/Makefile) + "\\\\.mk$" + "\\\\.make$" + "Makefile" + # - Autotools (GTK) + "/autotools/" + "/configure\\\\.ac" + "/autogen\\\\.sh" + "/autom4te\\\\.cache/" + "/aclocal\\\\.m4$" + "/GNUmakefile" + "/GNUmakefile" + # - XCode (Mac) + "\\\\.xcodeproj" + "\\\\.xcconfig" + # - GYP + "\\\\.gyp" + # - QMake (Qt) + "\\\\.pri$" + "\\\\.pro$" + + # Development & Runtime created files + "~$" + "\\\\.mode" + "\\\\.pbxuser$" + "\\\\.perspective" + "\\\\.pyc$" + "\\\\.pyo$" + "/cmake-build/" + "/build/" + "/WebKitBuild/" + "/Tools/Scripts/webkitpy/thirdparty/autoinstalled/" + ) + + IF(NOT WEBKIT_CPACK_ADD_TESTS) + LIST(APPEND CPACK_SOURCE_IGNORE_FILES + "/LayoutTests/" + "/manual-tests/" + "/tests/" + ) + ENDIF(NOT WEBKIT_CPACK_ADD_TESTS) + + IF(NOT WEBKIT_CPACK_ADD_TOOLS) + LIST(APPEND CPACK_SOURCE_IGNORE_FILES + "/Tools/" + "/manual-tools/" + "/tools/" + "/PageLoadTools/" + ) + ENDIF(NOT WEBKIT_CPACK_ADD_TOOLS) + + + IF(NOT WEBKIT_CPACK_ALL_PORTS) + + # All file and directory patterns that Efl uses + SET(FILE_PATTERNS_Efl + "/cairo/" "/Cairo/" "cairo\\\\." "Cairo\\\\." + "/efl/" "/Efl/" "efl\\\\." "Efl\\\\." + "/glib/" "/Glib/" "glib\\\\." "Glib\\\\." + "/gobject/" "/Gobject/" "gobject\\\\." "Gobject\\\\." + "/icu/" "/Icu/" "icu\\\\." "Icu\\\\." + "/posix/" "/Posix/" "posix\\\\." "Posix\\\\." + "/soup/" "/Soup/" "soup\\\\." "Soup\\\\." + ) + + # File and Directory patterns that no CMake-ified port uses + SET(FILE_PATTERNS_UNKNOWN_PORTS + "/android/" "/Android/" "android\\\\." "Android\\\\." + "/brew/" "/Brew/" "brew\\\\." "Brew\\\\." + "/carbon/" "/Carbon/" "carbon\\\\." "Carbon\\\\." + "/cf/" "/Cf/" "cf\\\\." "Cf\\\\." + "/cg/" "/Cg/" "cg\\\\." "Cg\\\\." + "/chromium/" "/Chromium/" "chromium\\\\." "Chromium\\\\." + "/cocoa/" "/Cocoa/" "cocoa\\\\." "Cocoa\\\\." + "/Configurations/" "/Configurations/" "Configurations\\\\." "Configurations\\\\." + "/curl/" "/Curl/" "curl\\\\." "Curl\\\\." + "/gstreamer/" "/Gstreamer/" "gstreamer\\\\." "Gstreamer\\\\." + "/gtk/" "/Gtk/" "gtk\\\\." "Gtk\\\\." + "/haiku/" "/Haiku/" "haiku\\\\." "Haiku\\\\." + "/iphone/" "/Iphone/" "iphone\\\\." "Iphone\\\\." + "/mac/" "/Mac/" "mac\\\\." "Mac\\\\." + "/opentype/" "/Opentype/" "opentype\\\\." "Opentype\\\\." + "/openvg/" "/Openvg/" "openvg\\\\." "Openvg\\\\." + "/os-win32/" "/Os-Win32/" "os-win32\\\\." "Os-Win32\\\\." + "/qscriptengine/" "/Qscriptengine/" "qscriptengine\\\\." "Qscriptengine\\\\." + "/qscriptstring/" "/Qscriptstring/" "qscriptstring\\\\." "Qscriptstring\\\\." + "/qscriptvalue/" "/Qscriptvalue/" "qscriptvalue\\\\." "Qscriptvalue\\\\." + "/qt/" "/Qt/" "qt\\\\." "Qt\\\\." + "/qt4/" "/Qt4/" "qt4\\\\." "Qt4\\\\." + "/skia/" "/Skia/" "skia\\\\." "Skia\\\\." + "/symbian/" "/Symbian/" "symbian\\\\." "Symbian\\\\." + "/v8/" "/V8/" "v8\\\\." "V8\\\\." + "/V8/" "/V8/" "V8\\\\." "V8\\\\." + "/win/" "/Win/" "win\\\\." "Win\\\\." + "/wince/" "/Wince/" "wince\\\\." "Wince\\\\." + "/wx/" "/Wx/" "wx\\\\." "Wx\\\\." + "/wxcode/" "/Wxcode/" "wxcode\\\\." "Wxcode\\\\." + "/WebKitLibraries/" + "/English\\\\.lproj/" + "/WebKit2/" + "\\\\.a$" + "\\\\.exe$" + "\\\\.mm$" + ) + + # Append all Unknown port patterns + FOREACH(_pattern ${FILE_PATTERNS_UNKNOWN_PORTS}) + LIST(FIND FILE_PATTERNS_${PORT} ${_pattern} _pattern_index) + IF(_pattern_index GREATER -1) + MESSAGE("pattern ${_pattern} declared of 'no-port' is actually used by ${PORT}") + ELSE() + LIST(APPEND CPACK_SOURCE_IGNORE_FILES ${_pattern}) + ENDIF() + ENDFOREACH() + + # Append all "other-ports" patterns + FOREACH(_port ${ALL_PORTS}) + IF(NOT ${_port} STREQUAL ${PORT}) + FOREACH(_pattern ${FILE_PATTERNS_${_port}}) + + LIST(FIND FILE_PATTERNS_${PORT} ${_pattern} _pattern_index) + IF(_pattern_index GREATER -1) + MESSAGE("pattern ${_pattern} of port ${_port} is also used by ${PORT}") + ELSE() + LIST(APPEND CPACK_SOURCE_IGNORE_FILES ${_pattern}) + ENDIF() + ENDFOREACH() + ENDIF() + ENDFOREACH() + + ENDIF(NOT WEBKIT_CPACK_ALL_PORTS) + +ENDIF(NOT DEFINED CPACK_SOURCE_IGNORE_FILES) + +# ----------------------------------------------------------------------------- +# Include CPack that will define targets based on the variables defined before +# ----------------------------------------------------------------------------- +INCLUDE(CPack) diff --git a/Source/cmake/eflsymbols.filter b/Source/cmake/eflsymbols.filter new file mode 100644 index 0000000..356a00c --- /dev/null +++ b/Source/cmake/eflsymbols.filter @@ -0,0 +1,6 @@ +{ + global: + ewk_*; + local: + *; +}; -- cgit v1.1