From d441d6f39bb846989d95bcf5caf387b42414718d Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Fri, 13 Sep 2013 12:51:20 +0200 Subject: Import Qt5x2 branch of QtWebkit for Qt 5.2 Importing a new snapshot of webkit. Change-Id: I2d01ad12cdc8af8cb015387641120a9d7ea5f10c Reviewed-by: Allan Sandfeld Jensen --- Source/cmake/EFLHelpers.cmake | 52 ++--- Source/cmake/FindATK.cmake | 12 +- Source/cmake/FindCFLite.cmake | 8 +- Source/cmake/FindCairo.cmake | 62 +++--- Source/cmake/FindDBus.cmake | 16 +- Source/cmake/FindDirectX.cmake | 24 +-- Source/cmake/FindEGL.cmake | 37 ++++ Source/cmake/FindE_DBus.cmake | 16 +- Source/cmake/FindEcore.cmake | 35 ++-- Source/cmake/FindEdje.cmake | 6 +- Source/cmake/FindEet.cmake | 4 +- Source/cmake/FindEeze.cmake | 4 +- Source/cmake/FindEfreet.cmake | 4 +- Source/cmake/FindEina.cmake | 4 +- Source/cmake/FindElementary.cmake | 13 +- Source/cmake/FindEnchant.cmake | 8 +- Source/cmake/FindEo.cmake | 41 ++++ Source/cmake/FindEvas.cmake | 4 +- Source/cmake/FindFontconfig.cmake | 50 ++--- Source/cmake/FindGAIL3.cmake | 48 +++++ Source/cmake/FindGDK3.cmake | 49 +++++ Source/cmake/FindGLES.cmake | 38 ++++ Source/cmake/FindGLIB.cmake | 64 +++--- Source/cmake/FindGStreamer.cmake | 107 +++++----- Source/cmake/FindGTK3.cmake | 49 +++++ Source/cmake/FindGperf.cmake | 12 +- Source/cmake/FindHarfBuzz.cmake | 14 +- Source/cmake/FindICU.cmake | 93 +++++---- Source/cmake/FindLibSeccomp.cmake | 46 +++++ Source/cmake/FindLibSoup.cmake | 10 +- Source/cmake/FindQuickTimeSDK.cmake | 14 +- Source/cmake/FindSqlite.cmake | 41 ++-- Source/cmake/FindWebP.cmake | 46 +++++ Source/cmake/FindXt.cmake | 49 +++++ Source/cmake/OptionsBlackBerry.cmake | 219 ++++++++++---------- Source/cmake/OptionsCommon.cmake | 54 ++--- Source/cmake/OptionsEfl.cmake | 376 +++++++++++++++++++++-------------- Source/cmake/OptionsGTK.cmake | 175 ++++++++++++++++ Source/cmake/OptionsWinCE.cmake | 37 ++-- Source/cmake/OptionsWindows.cmake | 27 +-- Source/cmake/WebKitFS.cmake | 16 +- Source/cmake/WebKitFeatures.cmake | 130 ++++++------ Source/cmake/WebKitHelpers.cmake | 183 ++++++++--------- Source/cmake/WebKitMacros.cmake | 359 ++++++++++++++++----------------- Source/cmake/WebKitPackaging.cmake | 304 ++++++++++++++-------------- Source/cmake/gtest/CMakeLists.txt | 20 +- 46 files changed, 1830 insertions(+), 1150 deletions(-) create mode 100644 Source/cmake/FindEGL.cmake create mode 100644 Source/cmake/FindEo.cmake create mode 100644 Source/cmake/FindGAIL3.cmake create mode 100644 Source/cmake/FindGDK3.cmake create mode 100644 Source/cmake/FindGLES.cmake create mode 100644 Source/cmake/FindGTK3.cmake create mode 100644 Source/cmake/FindLibSeccomp.cmake create mode 100644 Source/cmake/FindWebP.cmake create mode 100644 Source/cmake/FindXt.cmake create mode 100644 Source/cmake/OptionsGTK.cmake (limited to 'Source/cmake') diff --git a/Source/cmake/EFLHelpers.cmake b/Source/cmake/EFLHelpers.cmake index bf8fbf416..39d4b5b38 100644 --- a/Source/cmake/EFLHelpers.cmake +++ b/Source/cmake/EFLHelpers.cmake @@ -35,38 +35,38 @@ # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -INCLUDE(CMakeParseArguments) +include(CMakeParseArguments) -FUNCTION(FIND_EFL_LIBRARY _name) +function(FIND_EFL_LIBRARY _name) CMAKE_PARSE_ARGUMENTS(PARAM "" "LIBRARY" "HEADERS;HEADER_PREFIXES" ${ARGN}) - STRING(TOUPPER ${_name} _name_upper) - SET(_version_found FALSE) + string(TOUPPER ${_name} _name_upper) + set(_version_found FALSE) - FOREACH (_current_header ${PARAM_HEADERS}) - FIND_PATH(${_current_header}_INCLUDE_DIR NAMES ${_current_header} PATH_SUFFIXES ${PARAM_HEADER_PREFIXES}) - LIST(APPEND ${_name}_INCLUDE_DIRS "${${_current_header}_INCLUDE_DIR}") + foreach (_current_header ${PARAM_HEADERS}) + find_path(${_current_header}_INCLUDE_DIR NAMES ${_current_header} PATH_SUFFIXES ${PARAM_HEADER_PREFIXES}) + list(APPEND ${_name}_INCLUDE_DIRS "${${_current_header}_INCLUDE_DIR}") - IF (NOT _version_found) - SET (_header_path "${${_current_header}_INCLUDE_DIR}/${_current_header}") - IF (EXISTS ${_header_path}) - FILE(READ "${_header_path}" _header_contents) + if (NOT _version_found) + set(_header_path "${${_current_header}_INCLUDE_DIR}/${_current_header}") + if (EXISTS ${_header_path}) + file(READ "${_header_path}" _header_contents) - STRING(REGEX MATCH "#define +${_name_upper}_VERSION_MAJOR +([0-9]+)" _dummy "${_header_contents}") - SET(_version_major "${CMAKE_MATCH_1}") - STRING(REGEX MATCH "#define +${_name_upper}_VERSION_MINOR +([0-9]+)" _dummy "${_header_contents}") - SET(_version_minor "${CMAKE_MATCH_1}") + string(REGEX MATCH "#define +${_name_upper}_VERSION_MAJOR +([0-9]+)" _dummy "${_header_contents}") + set(_version_major "${CMAKE_MATCH_1}") + string(REGEX MATCH "#define +${_name_upper}_VERSION_MINOR +([0-9]+)" _dummy "${_header_contents}") + set(_version_minor "${CMAKE_MATCH_1}") - IF (_version_major AND _version_minor) - SET(_version_found TRUE) - ENDIF () - ENDIF () - ENDIF () - ENDFOREACH () + if (_version_major AND _version_minor) + set(_version_found TRUE) + endif () + endif () + endif () + endforeach () - FIND_LIBRARY(${_name}_LIBRARIES NAMES ${PARAM_LIBRARY}) + find_library(${_name}_LIBRARIES NAMES ${PARAM_LIBRARY}) - SET(${_name}_INCLUDE_DIRS ${${_name}_INCLUDE_DIRS} PARENT_SCOPE) - SET(${_name}_LIBRARIES ${${_name}_LIBRARIES} PARENT_SCOPE) - SET(${_name}_VERSION "${_version_major}.${_version_minor}" PARENT_SCOPE) -ENDFUNCTION() + set(${_name}_INCLUDE_DIRS ${${_name}_INCLUDE_DIRS} PARENT_SCOPE) + set(${_name}_LIBRARIES ${${_name}_LIBRARIES} PARENT_SCOPE) + set(${_name}_VERSION "${_version_major}.${_version_minor}" PARENT_SCOPE) +endfunction() diff --git a/Source/cmake/FindATK.cmake b/Source/cmake/FindATK.cmake index c58ba92bb..c895406a0 100644 --- a/Source/cmake/FindATK.cmake +++ b/Source/cmake/FindATK.cmake @@ -27,18 +27,22 @@ # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -FIND_PACKAGE(PkgConfig) -PKG_CHECK_MODULES(PC_ATK atk) +find_package(PkgConfig) +pkg_check_modules(PC_ATK atk) -FIND_PATH(ATK_INCLUDE_DIRS +find_path(ATK_INCLUDE_DIRS NAMES atk/atk.h HINTS ${PC_ATK_INCLUDEDIR} ${PC_ATK_INCLUDE_DIRS} PATH_SUFFIXES atk-1.0 ) -FIND_LIBRARY(ATK_LIBRARIES +find_library(ATK_LIBRARIES NAMES atk-1.0 HINTS ${PC_ATK_LIBRARY_DIRS} ${PC_ATK_LIBDIR} ) + +include(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(ATK REQUIRED_VARS ATK_INCLUDE_DIRS ATK_LIBRARIES + VERSION_VAR PC_ATK_VERSION) diff --git a/Source/cmake/FindCFLite.cmake b/Source/cmake/FindCFLite.cmake index 4d60ec4c4..71e756838 100644 --- a/Source/cmake/FindCFLite.cmake +++ b/Source/cmake/FindCFLite.cmake @@ -5,14 +5,14 @@ # CFLITE_INCLUDE_DIR - The CFLite include directory # CFLITE_LIBRARIES - The libraries needed to use CFLite -FIND_PATH(CFLITE_INCLUDE_DIR NAMES CoreFoundation/CoreFoundation.h) +find_path(CFLITE_INCLUDE_DIR NAMES CoreFoundation/CoreFoundation.h) -FIND_LIBRARY(CFLITE_LIBRARIES NAMES CFLite.lib) +find_library(CFLITE_LIBRARIES NAMES CFLite.lib) -INCLUDE(FindPackageHandleStandardArgs) +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) +mark_as_advanced(CFLITE_INCLUDE_DIR CFLITE_LIBRARIES) diff --git a/Source/cmake/FindCairo.cmake b/Source/cmake/FindCairo.cmake index 1a768e323..ddc8de7fd 100644 --- a/Source/cmake/FindCairo.cmake +++ b/Source/cmake/FindCairo.cmake @@ -28,54 +28,54 @@ # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -FIND_PACKAGE(PkgConfig) -PKG_CHECK_MODULES(PC_CAIRO cairo) # FIXME: After we require CMake 2.8.2 we can pass QUIET to this call. +find_package(PkgConfig) +pkg_check_modules(PC_CAIRO cairo) # FIXME: After we require CMake 2.8.2 we can pass QUIET to this call. -FIND_PATH(CAIRO_INCLUDE_DIRS +find_path(CAIRO_INCLUDE_DIRS NAMES cairo.h HINTS ${PC_CAIRO_INCLUDEDIR} ${PC_CAIRO_INCLUDE_DIRS} PATH_SUFFIXES cairo ) -FIND_LIBRARY(CAIRO_LIBRARIES +find_library(CAIRO_LIBRARIES NAMES cairo HINTS ${PC_CAIRO_LIBDIR} ${PC_CAIRO_LIBRARY_DIRS} ) -IF (CAIRO_INCLUDE_DIRS) - IF (EXISTS "${CAIRO_INCLUDE_DIRS}/cairo-version.h") - FILE(READ "${CAIRO_INCLUDE_DIRS}/cairo-version.h" CAIRO_VERSION_CONTENT) +if (CAIRO_INCLUDE_DIRS) + if (EXISTS "${CAIRO_INCLUDE_DIRS}/cairo-version.h") + file(READ "${CAIRO_INCLUDE_DIRS}/cairo-version.h" CAIRO_VERSION_CONTENT) - STRING(REGEX MATCH "#define +CAIRO_VERSION_MAJOR +([0-9]+)" _dummy "${CAIRO_VERSION_CONTENT}") - SET(CAIRO_VERSION_MAJOR "${CMAKE_MATCH_1}") + string(REGEX MATCH "#define +CAIRO_VERSION_MAJOR +([0-9]+)" _dummy "${CAIRO_VERSION_CONTENT}") + set(CAIRO_VERSION_MAJOR "${CMAKE_MATCH_1}") - STRING(REGEX MATCH "#define +CAIRO_VERSION_MINOR +([0-9]+)" _dummy "${CAIRO_VERSION_CONTENT}") - SET(CAIRO_VERSION_MINOR "${CMAKE_MATCH_1}") + string(REGEX MATCH "#define +CAIRO_VERSION_MINOR +([0-9]+)" _dummy "${CAIRO_VERSION_CONTENT}") + set(CAIRO_VERSION_MINOR "${CMAKE_MATCH_1}") - STRING(REGEX MATCH "#define +CAIRO_VERSION_MICRO +([0-9]+)" _dummy "${CAIRO_VERSION_CONTENT}") - SET(CAIRO_VERSION_MICRO "${CMAKE_MATCH_1}") + string(REGEX MATCH "#define +CAIRO_VERSION_MICRO +([0-9]+)" _dummy "${CAIRO_VERSION_CONTENT}") + set(CAIRO_VERSION_MICRO "${CMAKE_MATCH_1}") - SET(CAIRO_VERSION "${CAIRO_VERSION_MAJOR}.${CAIRO_VERSION_MINOR}.${CAIRO_VERSION_MICRO}") - ENDIF () -ENDIF () + set(CAIRO_VERSION "${CAIRO_VERSION_MAJOR}.${CAIRO_VERSION_MINOR}.${CAIRO_VERSION_MICRO}") + endif () +endif () # FIXME: Should not be needed anymore once we start depending on CMake 2.8.3 -SET(VERSION_OK TRUE) -IF (Cairo_FIND_VERSION) - IF (Cairo_FIND_VERSION_EXACT) - IF ("${Cairo_FIND_VERSION}" VERSION_EQUAL "${CAIRO_VERSION}") - # FIXME: Use IF (NOT ...) with CMake 2.8.2+ to get rid of the ELSE block - ELSE () - SET(VERSION_OK FALSE) - ENDIF () - ELSE () - IF ("${Cairo_FIND_VERSION}" VERSION_GREATER "${CAIRO_VERSION}") - SET(VERSION_OK FALSE) - ENDIF () - ENDIF () -ENDIF () +set(VERSION_OK TRUE) +if (Cairo_FIND_VERSION) + if (Cairo_FIND_VERSION_EXACT) + if ("${Cairo_FIND_VERSION}" VERSION_EQUAL "${CAIRO_VERSION}") + # FIXME: Use if (NOT ...) with CMake 2.8.2+ to get rid of the ELSE block + else () + set(VERSION_OK FALSE) + endif () + else () + if ("${Cairo_FIND_VERSION}" VERSION_GREATER "${CAIRO_VERSION}") + set(VERSION_OK FALSE) + endif () + endif () +endif () -INCLUDE(FindPackageHandleStandardArgs) +include(FindPackageHandleStandardArgs) FIND_PACKAGE_HANDLE_STANDARD_ARGS(Cairo DEFAULT_MSG CAIRO_INCLUDE_DIRS CAIRO_LIBRARIES VERSION_OK) diff --git a/Source/cmake/FindDBus.cmake b/Source/cmake/FindDBus.cmake index 4a1a18056..f4752e8cb 100644 --- a/Source/cmake/FindDBus.cmake +++ b/Source/cmake/FindDBus.cmake @@ -28,23 +28,23 @@ # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -FIND_PACKAGE(PkgConfig) -PKG_CHECK_MODULES(PC_DBUS QUIET dbus-1) +find_package(PkgConfig) +pkg_check_modules(PC_DBUS QUIET dbus-1) -FIND_LIBRARY(DBUS_LIBRARIES +find_library(DBUS_LIBRARIES NAMES dbus-1 HINTS ${PC_DBUS_LIBDIR} ${PC_DBUS_LIBRARY_DIRS} ) -FIND_PATH(DBUS_INCLUDE_DIR +find_path(DBUS_INCLUDE_DIR NAMES dbus/dbus.h HINTS ${PC_DBUS_INCLUDEDIR} ${PC_DBUS_INCLUDE_DIRS} ) -GET_FILENAME_COMPONENT(_DBUS_LIBRARY_DIR ${DBUS_LIBRARIES} PATH) -FIND_PATH(DBUS_ARCH_INCLUDE_DIR +get_filename_component(_DBUS_LIBRARY_DIR ${DBUS_LIBRARIES} PATH) +find_path(DBUS_ARCH_INCLUDE_DIR NAMES dbus/dbus-arch-deps.h HINTS ${PC_DBUS_INCLUDEDIR} ${PC_DBUS_INCLUDE_DIRS} @@ -53,7 +53,7 @@ FIND_PATH(DBUS_ARCH_INCLUDE_DIR PATH_SUFFIXES include ) -SET(DBUS_INCLUDE_DIRS ${DBUS_INCLUDE_DIR} ${DBUS_ARCH_INCLUDE_DIR}) +set(DBUS_INCLUDE_DIRS ${DBUS_INCLUDE_DIR} ${DBUS_ARCH_INCLUDE_DIR}) -INCLUDE(FindPackageHandleStandardArgs) +include(FindPackageHandleStandardArgs) FIND_PACKAGE_HANDLE_STANDARD_ARGS(DBUS REQUIRED_VARS DBUS_INCLUDE_DIRS DBUS_LIBRARIES) diff --git a/Source/cmake/FindDirectX.cmake b/Source/cmake/FindDirectX.cmake index 41787c968..7aac8d494 100644 --- a/Source/cmake/FindDirectX.cmake +++ b/Source/cmake/FindDirectX.cmake @@ -6,24 +6,24 @@ # DirectX_FOUND, If false, do not try to use DirectX. # DirectX_ROOT_DIR, directory where DirectX was installed. -FIND_PATH(DirectX_INCLUDE_DIRS d3d9.h PATHS +find_path(DirectX_INCLUDE_DIRS d3d9.h PATHS "$ENV{DXSDK_DIR}/Include" "$ENV{PROGRAMFILES}/Microsoft DirectX SDK*/Include" ) -GET_FILENAME_COMPONENT(DirectX_ROOT_DIR "${DirectX_INCLUDE_DIRS}/.." ABSOLUTE) +get_filename_component(DirectX_ROOT_DIR "${DirectX_INCLUDE_DIRS}/.." ABSOLUTE) -IF (CMAKE_CL_64) - SET(DirectX_LIBRARY_PATHS "${DirectX_ROOT_DIR}/Lib/x64") -ELSE () - SET(DirectX_LIBRARY_PATHS "${DirectX_ROOT_DIR}/Lib/x86" "${DirectX_ROOT_DIR}/Lib") -ENDIF () +if (CMAKE_CL_64) + set(DirectX_LIBRARY_PATHS "${DirectX_ROOT_DIR}/Lib/x64") +else () + set(DirectX_LIBRARY_PATHS "${DirectX_ROOT_DIR}/Lib/x86" "${DirectX_ROOT_DIR}/Lib") +endif () -FIND_LIBRARY(DirectX_D3D9_LIBRARY d3d9 ${DirectX_LIBRARY_PATHS} NO_DEFAULT_PATH) -FIND_LIBRARY(DirectX_D3DX9_LIBRARY d3dx9 ${DirectX_LIBRARY_PATHS} NO_DEFAULT_PATH) -SET(DirectX_LIBRARIES ${DirectX_D3D9_LIBRARY} ${DirectX_D3DX9_LIBRARY}) +find_library(DirectX_D3D9_LIBRARY d3d9 ${DirectX_LIBRARY_PATHS} NO_DEFAULT_PATH) +find_library(DirectX_D3DX9_LIBRARY d3dx9 ${DirectX_LIBRARY_PATHS} NO_DEFAULT_PATH) +set(DirectX_LIBRARIES ${DirectX_D3D9_LIBRARY} ${DirectX_D3DX9_LIBRARY}) # handle the QUIETLY and REQUIRED arguments and set DirectX_FOUND to TRUE if all listed variables are TRUE -INCLUDE(FindPackageHandleStandardArgs) +include(FindPackageHandleStandardArgs) FIND_PACKAGE_HANDLE_STANDARD_ARGS(DirectX DEFAULT_MSG DirectX_ROOT_DIR DirectX_LIBRARIES DirectX_INCLUDE_DIRS) -MARK_AS_ADVANCED(DirectX_INCLUDE_DIRS DirectX_D3D9_LIBRARY DirectX_D3DX9_LIBRARY) +mark_as_advanced(DirectX_INCLUDE_DIRS DirectX_D3D9_LIBRARY DirectX_D3DX9_LIBRARY) diff --git a/Source/cmake/FindEGL.cmake b/Source/cmake/FindEGL.cmake new file mode 100644 index 000000000..526c5ba08 --- /dev/null +++ b/Source/cmake/FindEGL.cmake @@ -0,0 +1,37 @@ +# - Try to Find EGL +# Once done, this will define +# +# EGL_FOUND - system has EGL installed. +# EGL_INCLUDE_DIR - directories which contain the EGL headers. +# EGL_LIBRARY - libraries required to link against EGL. +# +# Copyright (C) 2012 Intel Corporation. All rights reserved. +# +# 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 above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND ITS CONTRIBUTORS ``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 COPYRIGHT HOLDER OR ITS +# CONTRIBUTORS 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. + +find_path(EGL_INCLUDE_DIR NAMES EGL/egl.h) + +set(EGL_NAMES ${EGL_NAMES} egl EGL) +find_library(EGL_LIBRARY NAMES ${EGL_NAMES}) + +include(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(EGL DEFAULT_MSG EGL_INCLUDE_DIR EGL_LIBRARY) diff --git a/Source/cmake/FindE_DBus.cmake b/Source/cmake/FindE_DBus.cmake index 5a819987d..2b56242d2 100644 --- a/Source/cmake/FindE_DBus.cmake +++ b/Source/cmake/FindE_DBus.cmake @@ -5,7 +5,7 @@ # E_DBUS_INCLUDE_DIRS - directories which contain the E_DBus headers. # E_DBUS_LIBRARIES - libraries required to link against E_DBus. # -# Optionally, the COMPONENTS keyword can be passed to FIND_PACKAGE() +# Optionally, the COMPONENTS keyword can be passed to find_package() # and additional E_DBus libraries can be looked for. Currently, the # following libraries can be searched, and they define the following # variables if found: @@ -35,7 +35,7 @@ # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -INCLUDE(EFLHelpers) +include(EFLHelpers) FIND_EFL_LIBRARY(E_DBUS HEADERS E_DBus.h @@ -50,13 +50,13 @@ FIND_EFL_LIBRARY(E_DBUS_EUKIT LIBRARY eukit ) -FOREACH(_component ${E_DBus_FIND_COMPONENTS}) - SET(_e_dbus_component "E_DBUS_${_component}") - STRING(TOUPPER ${_e_dbus_component} _UPPER_NAME) +foreach (_component ${E_DBus_FIND_COMPONENTS}) + set(_e_dbus_component "E_DBUS_${_component}") + string(TOUPPER ${_e_dbus_component} _UPPER_NAME) - LIST(APPEND _E_DBUS_REQUIRED_COMPONENT_VARS ${_UPPER_NAME}_INCLUDE_DIRS ${_UPPER_NAME}_LIBRARIES) -ENDFOREACH() + list(APPEND _E_DBUS_REQUIRED_COMPONENT_VARS ${_UPPER_NAME}_INCLUDE_DIRS ${_UPPER_NAME}_LIBRARIES) +endforeach () -INCLUDE(FindPackageHandleStandardArgs) +include(FindPackageHandleStandardArgs) FIND_PACKAGE_HANDLE_STANDARD_ARGS(E_DBus REQUIRED_VARS E_DBUS_INCLUDE_DIRS E_DBUS_LIBRARIES ${_E_DBUS_REQUIRED_COMPONENT_VARS} VERSION_VAR E_DBUS_VERSION) diff --git a/Source/cmake/FindEcore.cmake b/Source/cmake/FindEcore.cmake index 38bbf0fd8..a30863f8a 100644 --- a/Source/cmake/FindEcore.cmake +++ b/Source/cmake/FindEcore.cmake @@ -5,7 +5,7 @@ # ECORE_INCLUDE_DIRS - directories which contain the Ecore headers. # ECORE_LIBRARIES - libraries required to link against Ecore. # -# Optionally, the COMPONENTS keyword can be passed to FIND_PACKAGE() +# Optionally, the COMPONENTS keyword can be passed to find_package() # and additional Ecore libraries can be looked for. Currently, the # following libraries can be searched, and they define the following # variables if found: @@ -38,7 +38,7 @@ # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -INCLUDE(EFLHelpers) +include(EFLHelpers) FIND_EFL_LIBRARY(ECORE HEADERS Ecore.h @@ -47,39 +47,46 @@ FIND_EFL_LIBRARY(ECORE ) # Components. +# Since EFL version 1.8, include path of Ecore sub modules have been changed +# from ecore-1 to ecore-XXX-1 FIND_EFL_LIBRARY(ECORE_EVAS HEADERS Ecore_Evas.h - HEADER_PREFIXES ecore-1 + HEADER_PREFIXES ecore-1 ecore-evas-1 LIBRARY ecore_evas ) FIND_EFL_LIBRARY(ECORE_FILE HEADERS Ecore_File.h - HEADER_PREFIXES ecore-1 + HEADER_PREFIXES ecore-1 ecore-file-1 LIBRARY ecore_file ) FIND_EFL_LIBRARY(ECORE_INPUT HEADERS Ecore_Input.h - HEADER_PREFIXES ecore-1 + HEADER_PREFIXES ecore-1 ecore-input-1 LIBRARY ecore_input ) FIND_EFL_LIBRARY(ECORE_X HEADERS Ecore_X.h - HEADER_PREFIXES ecore-1 + HEADER_PREFIXES ecore-1 ecore-x-1 LIBRARY ecore_x ) FIND_EFL_LIBRARY(ECORE_IMF - HEADERS Ecore_IMF.h Ecore_IMF_Evas.h - HEADER_PREFIXES ecore-1 + HEADERS Ecore_IMF.h + HEADER_PREFIXES ecore-1 ecore-imf-1 LIBRARY ecore_imf ) +FIND_EFL_LIBRARY(ECORE_IMF_EVAS + HEADERS Ecore_IMF_Evas.h + HEADER_PREFIXES ecore-1 ecore-imf-evas-1 + LIBRARY ecore_imf_evas +) -FOREACH(_component ${Ecore_FIND_COMPONENTS}) - SET(_ecore_component "ECORE_${_component}") - STRING(TOUPPER ${_ecore_component} _UPPER_NAME) +foreach (_component ${Ecore_FIND_COMPONENTS}) + set(_ecore_component "ECORE_${_component}") + string(TOUPPER ${_ecore_component} _UPPER_NAME) - LIST(APPEND _ECORE_REQUIRED_COMPONENT_VARS ${_UPPER_NAME}_INCLUDE_DIRS ${_UPPER_NAME}_LIBRARIES) -ENDFOREACH() + list(APPEND _ECORE_REQUIRED_COMPONENT_VARS ${_UPPER_NAME}_INCLUDE_DIRS ${_UPPER_NAME}_LIBRARIES) +endforeach () -INCLUDE(FindPackageHandleStandardArgs) +include(FindPackageHandleStandardArgs) FIND_PACKAGE_HANDLE_STANDARD_ARGS(Ecore REQUIRED_VARS ECORE_INCLUDE_DIRS ECORE_LIBRARIES ${_ECORE_REQUIRED_COMPONENT_VARS} VERSION_VAR ECORE_VERSION) diff --git a/Source/cmake/FindEdje.cmake b/Source/cmake/FindEdje.cmake index 01ff8d819..509b5a1ac 100644 --- a/Source/cmake/FindEdje.cmake +++ b/Source/cmake/FindEdje.cmake @@ -29,7 +29,7 @@ # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -INCLUDE(EFLHelpers) +include(EFLHelpers) FIND_EFL_LIBRARY(EDJE HEADERS Edje.h @@ -37,10 +37,10 @@ FIND_EFL_LIBRARY(EDJE LIBRARY edje ) -FIND_PROGRAM(EDJE_CC_EXECUTABLE +find_program(EDJE_CC_EXECUTABLE NAMES edje_cc ) -INCLUDE(FindPackageHandleStandardArgs) +include(FindPackageHandleStandardArgs) FIND_PACKAGE_HANDLE_STANDARD_ARGS(Edje REQUIRED_VARS EDJE_INCLUDE_DIRS EDJE_LIBRARIES EDJE_CC_EXECUTABLE VERSION_VAR EDJE_VERSION) diff --git a/Source/cmake/FindEet.cmake b/Source/cmake/FindEet.cmake index fbbfc5fa6..51abd12a7 100644 --- a/Source/cmake/FindEet.cmake +++ b/Source/cmake/FindEet.cmake @@ -28,7 +28,7 @@ # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -INCLUDE(EFLHelpers) +include(EFLHelpers) FIND_EFL_LIBRARY(EET HEADERS Eet.h @@ -36,6 +36,6 @@ FIND_EFL_LIBRARY(EET LIBRARY eet ) -INCLUDE(FindPackageHandleStandardArgs) +include(FindPackageHandleStandardArgs) FIND_PACKAGE_HANDLE_STANDARD_ARGS(Eet REQUIRED_VARS EET_INCLUDE_DIRS EET_LIBRARIES VERSION_VAR EET_VERSION) diff --git a/Source/cmake/FindEeze.cmake b/Source/cmake/FindEeze.cmake index 93edc4862..d92ac336b 100644 --- a/Source/cmake/FindEeze.cmake +++ b/Source/cmake/FindEeze.cmake @@ -28,7 +28,7 @@ # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -INCLUDE(EFLHelpers) +include(EFLHelpers) FIND_EFL_LIBRARY(EEZE HEADERS Eeze.h @@ -36,6 +36,6 @@ FIND_EFL_LIBRARY(EEZE LIBRARY eeze ) -INCLUDE(FindPackageHandleStandardArgs) +include(FindPackageHandleStandardArgs) FIND_PACKAGE_HANDLE_STANDARD_ARGS(Eeze REQUIRED_VARS EEZE_INCLUDE_DIRS EEZE_LIBRARIES VERSION_VAR EEZE_VERSION) diff --git a/Source/cmake/FindEfreet.cmake b/Source/cmake/FindEfreet.cmake index 22d704b29..9e67a7b9f 100644 --- a/Source/cmake/FindEfreet.cmake +++ b/Source/cmake/FindEfreet.cmake @@ -28,7 +28,7 @@ # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -INCLUDE(EFLHelpers) +include(EFLHelpers) FIND_EFL_LIBRARY(EFREET HEADERS Efreet.h @@ -36,6 +36,6 @@ FIND_EFL_LIBRARY(EFREET LIBRARY efreet ) -INCLUDE(FindPackageHandleStandardArgs) +include(FindPackageHandleStandardArgs) FIND_PACKAGE_HANDLE_STANDARD_ARGS(Efreet REQUIRED_VARS EFREET_INCLUDE_DIRS EFREET_LIBRARIES VERSION_VAR EFREET_VERSION) diff --git a/Source/cmake/FindEina.cmake b/Source/cmake/FindEina.cmake index 5ac94800c..8f9a87755 100644 --- a/Source/cmake/FindEina.cmake +++ b/Source/cmake/FindEina.cmake @@ -28,7 +28,7 @@ # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -INCLUDE(EFLHelpers) +include(EFLHelpers) FIND_EFL_LIBRARY(EINA HEADERS Eina.h eina_main.h @@ -36,6 +36,6 @@ FIND_EFL_LIBRARY(EINA LIBRARY eina ) -INCLUDE(FindPackageHandleStandardArgs) +include(FindPackageHandleStandardArgs) FIND_PACKAGE_HANDLE_STANDARD_ARGS(Eina REQUIRED_VARS EINA_INCLUDE_DIRS EINA_LIBRARIES VERSION_VAR EINA_VERSION) diff --git a/Source/cmake/FindElementary.cmake b/Source/cmake/FindElementary.cmake index 455ca78f0..ae1d9c2f5 100644 --- a/Source/cmake/FindElementary.cmake +++ b/Source/cmake/FindElementary.cmake @@ -28,7 +28,7 @@ # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -INCLUDE(EFLHelpers) +include(EFLHelpers) FIND_EFL_LIBRARY(ELEMENTARY HEADERS Elementary.h @@ -36,6 +36,13 @@ FIND_EFL_LIBRARY(ELEMENTARY LIBRARY elementary ) -INCLUDE(FindPackageHandleStandardArgs) -FIND_PACKAGE_HANDLE_STANDARD_ARGS(Elementary REQUIRED_VARS ELEMENTARY_INCLUDE_DIRS ELEMENTARY_LIBRARIES +# Ecore_Con is required by not WebKit/Efl but Elementary. +FIND_EFL_LIBRARY(ECORE_CON + HEADERS Ecore_Con.h + HEADER_PREFIXES ecore-1 ecore-con-1 + LIBRARY ecore_con +) + +include(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(Elementary REQUIRED_VARS ELEMENTARY_INCLUDE_DIRS ELEMENTARY_LIBRARIES ECORE_CON_INCLUDE_DIRS ECORE_CON_LIBRARIES VERSION_VAR ELM_VERSION) diff --git a/Source/cmake/FindEnchant.cmake b/Source/cmake/FindEnchant.cmake index d69c71c0f..929979ed6 100644 --- a/Source/cmake/FindEnchant.cmake +++ b/Source/cmake/FindEnchant.cmake @@ -27,16 +27,16 @@ # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -FIND_PACKAGE(PkgConfig) -PKG_CHECK_MODULES(PC_ENCHANT enchant) +find_package(PkgConfig) +pkg_check_modules(PC_ENCHANT enchant) -FIND_PATH(ENCHANT_INCLUDE_DIRS +find_path(ENCHANT_INCLUDE_DIRS NAMES enchant.h PATHS ${PC_ENCHANT_INCLUDEDIR} ${PC_ENCHANT_INCLUDE_DIRS} ) -FIND_LIBRARY(ENCHANT_LIBRARIES +find_library(ENCHANT_LIBRARIES NAMES enchant PATHS ${PC_ENCHANT_LIBDIR} ${PC_ENCHANT_LIBRARY_DIRS} diff --git a/Source/cmake/FindEo.cmake b/Source/cmake/FindEo.cmake new file mode 100644 index 000000000..59714d1e0 --- /dev/null +++ b/Source/cmake/FindEo.cmake @@ -0,0 +1,41 @@ +# - Try to find Eo +# Once done, this will define +# +# EO_FOUND - system has Eo installed. +# EO_INCLUDE_DIRS - directories which contain the Eo headers. +# EO_LIBRARIES - libraries required to link against Eo. +# +# Copyright (C) 2012 Samsung Electronics. +# +# 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 above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND ITS CONTRIBUTORS ``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 COPYRIGHT HOLDER OR ITS +# CONTRIBUTORS 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(EFLHelpers) + +FIND_EFL_LIBRARY(EO + HEADERS Eo.h + HEADER_PREFIXES eo-1 + LIBRARY eo +) + +include(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(Eo REQUIRED_VARS EO_INCLUDE_DIRS EO_LIBRARIES + VERSION_VAR EO_VERSION) diff --git a/Source/cmake/FindEvas.cmake b/Source/cmake/FindEvas.cmake index ce75eae0a..6125781fe 100644 --- a/Source/cmake/FindEvas.cmake +++ b/Source/cmake/FindEvas.cmake @@ -28,7 +28,7 @@ # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -INCLUDE(EFLHelpers) +include(EFLHelpers) FIND_EFL_LIBRARY(EVAS HEADERS Evas.h @@ -36,6 +36,6 @@ FIND_EFL_LIBRARY(EVAS LIBRARY evas ) -INCLUDE(FindPackageHandleStandardArgs) +include(FindPackageHandleStandardArgs) FIND_PACKAGE_HANDLE_STANDARD_ARGS(Evas REQUIRED_VARS EVAS_INCLUDE_DIRS EVAS_LIBRARIES VERSION_VAR EVAS_VERSION) diff --git a/Source/cmake/FindFontconfig.cmake b/Source/cmake/FindFontconfig.cmake index e6fa81d8e..2ed605d73 100644 --- a/Source/cmake/FindFontconfig.cmake +++ b/Source/cmake/FindFontconfig.cmake @@ -17,7 +17,7 @@ # 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 +# 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 @@ -34,36 +34,36 @@ if (FONTCONFIG_LIBRARIES AND FONTCONFIG_INCLUDE_DIR) - # in cache already - set(FONTCONFIG_FOUND TRUE) + # 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) + 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) + 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_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} - ) + 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) + 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/FindGAIL3.cmake b/Source/cmake/FindGAIL3.cmake new file mode 100644 index 000000000..9a2edd321 --- /dev/null +++ b/Source/cmake/FindGAIL3.cmake @@ -0,0 +1,48 @@ +# - Try to find GAIL 3. +# Once done, this will define +# +# GAIL3_FOUND - system has GAIL 3 +# GAIL3_INCLUDE_DIRS - the GAIL 3 include directories +# GAIL3_LIBRARIES - link these to use GAIL 3 +# +# Copyright (C) 2013 Igalia S.L. +# +# 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 above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND ITS CONTRIBUTORS ``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 COPYRIGHT HOLDER OR ITS +# CONTRIBUTORS 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. + +find_package(PkgConfig) +pkg_check_modules(GAIL3 gail-3.0) + +set(VERSION_OK TRUE) +if (GAIL3_VERSION) + if (GAIL3_FIND_VERSION_EXACT) + if (NOT("${GAIL3_FIND_VERSION}" VERSION_EQUAL "${GAIL3_VERSION}")) + set(VERSION_OK FALSE) + endif () + else () + if ("${GAIL3_VERSION}" VERSION_LESS "${GAIL3_FIND_VERSION}") + set(VERSION_OK FALSE) + endif () + endif () +endif () + +include(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(GAIL3 DEFAULT_MSG GAIL3_INCLUDE_DIRS GAIL3_LIBRARIES VERSION_OK) diff --git a/Source/cmake/FindGDK3.cmake b/Source/cmake/FindGDK3.cmake new file mode 100644 index 000000000..801656381 --- /dev/null +++ b/Source/cmake/FindGDK3.cmake @@ -0,0 +1,49 @@ +# - Try to find GDK 3 +# Once done, this will define +# +# GDK3_FOUND - system has GDK 3 +# GDK3_INCLUDE_DIRS - the GDK 3 include directories +# GDK3_LIBRARIES - link these to use GDK 3 +# +# Copyright (C) 2012 Raphael Kubo da Costa +# Copyright (C) 2013 Igalia S.L. +# +# 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 above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND ITS CONTRIBUTORS ``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 COPYRIGHT HOLDER OR ITS +# CONTRIBUTORS 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. + +find_package(PkgConfig) +pkg_check_modules(GDK3 gdk-3.0) + +set(VERSION_OK TRUE) +if (GDK3_VERSION) + if (GDK3_FIND_VERSION_EXACT) + if (NOT("${GDK3_FIND_VERSION}" VERSION_EQUAL "${GDK3_VERSION}")) + set(VERSION_OK FALSE) + endif () + else () + if ("${GDK3_VERSION}" VERSION_LESS "${GDK3_FIND_VERSION}") + set(VERSION_OK FALSE) + endif () + endif () +endif () + +include(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(GDK3 DEFAULT_MSG GDK3_INCLUDE_DIRS GDK3_LIBRARIES VERSION_OK) diff --git a/Source/cmake/FindGLES.cmake b/Source/cmake/FindGLES.cmake new file mode 100644 index 000000000..1f8daebe6 --- /dev/null +++ b/Source/cmake/FindGLES.cmake @@ -0,0 +1,38 @@ +# - Try to find OpenGLES +# Once done this will define +# +# OPENGLES2_FOUND - system has OpenGLESv2 installed. +# OPENGLES2_INCLUDE_DIR - directories which contain the OpenGlEsv2 headers. +# OPENGLES2_LIBRARIES - libraries required to link against OpenGLESv2 +# +# Copyright (C) 2012 Intel Corporation. All rights reserved. +# +# 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 above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND ITS CONTRIBUTORS ``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 COPYRIGHT HOLDER OR ITS +# CONTRIBUTORS 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. + +find_path(OPENGLES2_INCLUDE_DIR NAMES GLES2/gl2.h) + +find_library(OPENGLES2_LIBRARY NAMES GLESv2) + +include(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(OPENGLES2 DEFAULT_MSG OPENGLES2_INCLUDE_DIR OPENGLES2_LIBRARY) + +mark_as_advanced(OPENGLES2_INCLUDE_DIR OPENGLES2_LIBRARY) diff --git a/Source/cmake/FindGLIB.cmake b/Source/cmake/FindGLIB.cmake index 656aa0b7d..182e37b86 100644 --- a/Source/cmake/FindGLIB.cmake +++ b/Source/cmake/FindGLIB.cmake @@ -5,7 +5,7 @@ # GLIB_INCLUDE_DIRS - the Glib include directories # GLIB_LIBRARIES - link these to use Glib # -# Optionally, the COMPONENTS keyword can be passed to FIND_PACKAGE() +# Optionally, the COMPONENTS keyword can be passed to find_package() # and Glib components can be looked for. Currently, the following # components can be used, and they define the following variables if # found: @@ -41,10 +41,10 @@ # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -FIND_PACKAGE(PkgConfig) -PKG_CHECK_MODULES(PC_GLIB QUIET glib-2.0) +find_package(PkgConfig) +pkg_check_modules(PC_GLIB QUIET glib-2.0) -FIND_LIBRARY(GLIB_LIBRARIES +find_library(GLIB_LIBRARIES NAMES glib-2.0 HINTS ${PC_GLIB_LIBDIR} ${PC_GLIB_LIBRARY_DIRS} @@ -52,51 +52,51 @@ FIND_LIBRARY(GLIB_LIBRARIES # Files in glib's main include path may include glibconfig.h, which, # for some odd reason, is normally in $LIBDIR/glib-2.0/include. -GET_FILENAME_COMPONENT(_GLIB_LIBRARY_DIR ${GLIB_LIBRARIES} PATH) -FIND_PATH(GLIBCONFIG_INCLUDE_DIR +get_filename_component(_GLIB_LIBRARY_DIR ${GLIB_LIBRARIES} PATH) +find_path(GLIBCONFIG_INCLUDE_DIR NAMES glibconfig.h HINTS ${PC_LIBDIR} ${PC_LIBRARY_DIRS} ${_GLIB_LIBRARY_DIR} PATH_SUFFIXES glib-2.0/include ) -FIND_PATH(GLIB_INCLUDE_DIR +find_path(GLIB_INCLUDE_DIR NAMES glib.h HINTS ${PC_GLIB_INCLUDEDIR} ${PC_GLIB_INCLUDE_DIRS} PATH_SUFFIXES glib-2.0 ) -SET(GLIB_INCLUDE_DIRS ${GLIB_INCLUDE_DIR} ${GLIBCONFIG_INCLUDE_DIR}) +set(GLIB_INCLUDE_DIRS ${GLIB_INCLUDE_DIR} ${GLIBCONFIG_INCLUDE_DIR}) # Version detection -FILE(READ "${GLIBCONFIG_INCLUDE_DIR}/glibconfig.h" GLIBCONFIG_H_CONTENTS) -STRING(REGEX MATCH "#define GLIB_MAJOR_VERSION ([0-9]+)" _dummy "${GLIBCONFIG_H_CONTENTS}") -SET(GLIB_VERSION_MAJOR "${CMAKE_MATCH_1}") -STRING(REGEX MATCH "#define GLIB_MINOR_VERSION ([0-9]+)" _dummy "${GLIBCONFIG_H_CONTENTS}") -SET(GLIB_VERSION_MINOR "${CMAKE_MATCH_1}") -STRING(REGEX MATCH "#define GLIB_MICRO_VERSION ([0-9]+)" _dummy "${GLIBCONFIG_H_CONTENTS}") -SET(GLIB_VERSION_MICRO "${CMAKE_MATCH_1}") -SET(GLIB_VERSION "${GLIB_VERSION_MAJOR}.${GLIB_VERSION_MINOR}.${GLIB_VERSION_MICRO}") +file(READ "${GLIBCONFIG_INCLUDE_DIR}/glibconfig.h" GLIBCONFIG_H_CONTENTS) +string(REGEX MATCH "#define GLIB_MAJOR_VERSION ([0-9]+)" _dummy "${GLIBCONFIG_H_CONTENTS}") +set(GLIB_VERSION_MAJOR "${CMAKE_MATCH_1}") +string(REGEX MATCH "#define GLIB_MINOR_VERSION ([0-9]+)" _dummy "${GLIBCONFIG_H_CONTENTS}") +set(GLIB_VERSION_MINOR "${CMAKE_MATCH_1}") +string(REGEX MATCH "#define GLIB_MICRO_VERSION ([0-9]+)" _dummy "${GLIBCONFIG_H_CONTENTS}") +set(GLIB_VERSION_MICRO "${CMAKE_MATCH_1}") +set(GLIB_VERSION "${GLIB_VERSION_MAJOR}.${GLIB_VERSION_MINOR}.${GLIB_VERSION_MICRO}") # Additional Glib components. We only look for libraries, as not all of them # have corresponding headers and all headers are installed alongside the main # glib ones. -FOREACH (_component ${GLIB_FIND_COMPONENTS}) - IF (${_component} STREQUAL "gio") - FIND_LIBRARY(GLIB_GIO_LIBRARIES NAMES gio-2.0 HINTS ${_GLIB_LIBRARY_DIR}) - SET(ADDITIONAL_REQUIRED_VARS ${ADDITIONAL_REQUIRED_VARS} GLIB_GIO_LIBRARIES) - ELSEIF (${_component} STREQUAL "gobject") - FIND_LIBRARY(GLIB_GOBJECT_LIBRARIES NAMES gobject-2.0 HINTS ${_GLIB_LIBRARY_DIR}) - SET(ADDITIONAL_REQUIRED_VARS ${ADDITIONAL_REQUIRED_VARS} GLIB_GOBJECT_LIBRARIES) - ELSEIF (${_component} STREQUAL "gmodule") - FIND_LIBRARY(GLIB_GMODULE_LIBRARIES NAMES gmodule-2.0 HINTS ${_GLIB_LIBRARY_DIR}) - SET(ADDITIONAL_REQUIRED_VARS ${ADDITIONAL_REQUIRED_VARS} GLIB_GMODULE_LIBRARIES) - ELSEIF (${_component} STREQUAL "gthread") - FIND_LIBRARY(GLIB_GTHREAD_LIBRARIES NAMES gthread-2.0 HINTS ${_GLIB_LIBRARY_DIR}) - SET(ADDITIONAL_REQUIRED_VARS ${ADDITIONAL_REQUIRED_VARS} GLIB_GTHREAD_LIBRARIES) - ENDIF () -ENDFOREACH () +foreach (_component ${GLIB_FIND_COMPONENTS}) + if (${_component} STREQUAL "gio") + find_library(GLIB_GIO_LIBRARIES NAMES gio-2.0 HINTS ${_GLIB_LIBRARY_DIR}) + set(ADDITIONAL_REQUIRED_VARS ${ADDITIONAL_REQUIRED_VARS} GLIB_GIO_LIBRARIES) + elseif (${_component} STREQUAL "gobject") + find_library(GLIB_GOBJECT_LIBRARIES NAMES gobject-2.0 HINTS ${_GLIB_LIBRARY_DIR}) + set(ADDITIONAL_REQUIRED_VARS ${ADDITIONAL_REQUIRED_VARS} GLIB_GOBJECT_LIBRARIES) + elseif (${_component} STREQUAL "gmodule") + find_library(GLIB_GMODULE_LIBRARIES NAMES gmodule-2.0 HINTS ${_GLIB_LIBRARY_DIR}) + set(ADDITIONAL_REQUIRED_VARS ${ADDITIONAL_REQUIRED_VARS} GLIB_GMODULE_LIBRARIES) + elseif (${_component} STREQUAL "gthread") + find_library(GLIB_GTHREAD_LIBRARIES NAMES gthread-2.0 HINTS ${_GLIB_LIBRARY_DIR}) + set(ADDITIONAL_REQUIRED_VARS ${ADDITIONAL_REQUIRED_VARS} GLIB_GTHREAD_LIBRARIES) + endif () +endforeach () -INCLUDE(FindPackageHandleStandardArgs) +include(FindPackageHandleStandardArgs) FIND_PACKAGE_HANDLE_STANDARD_ARGS(GLIB REQUIRED_VARS GLIB_INCLUDE_DIRS GLIB_LIBRARIES ${ADDITIONAL_REQUIRED_VARS} VERSION_VAR GLIB_VERSION) diff --git a/Source/cmake/FindGStreamer.cmake b/Source/cmake/FindGStreamer.cmake index 542ebacb1..c7ab9530a 100644 --- a/Source/cmake/FindGStreamer.cmake +++ b/Source/cmake/FindGStreamer.cmake @@ -11,7 +11,7 @@ # GSTREAMER_BASE_INCLUDE_DIRS - gstreamer-base's include directory # GSTREAMER_BASE_LIBRARIES - link to these to use gstreamer-base # -# Optionally, the COMPONENTS keyword can be passed to FIND_PACKAGE() +# Optionally, the COMPONENTS keyword can be passed to find_package() # and GStreamer plugins can be looked for. Currently, the following # plugins can be searched, and they define the following variables if # found: @@ -19,7 +19,6 @@ # gstreamer-app: GSTREAMER_APP_INCLUDE_DIRS and GSTREAMER_APP_LIBRARIES # gstreamer-audio: GSTREAMER_AUDIO_INCLUDE_DIRS and GSTREAMER_AUDIO_LIBRARIES # gstreamer-fft: GSTREAMER_FFT_INCLUDE_DIRS and GSTREAMER_FFT_LIBRARIES -# gstreamer-interfaces: GSTREAMER_INTERFACES_INCLUDE_DIRS and GSTREAMER_INTERFACES_LIBRARIES # gstreamer-pbutils: GSTREAMER_PBUTILS_INCLUDE_DIRS and GSTREAMER_PBUTILS_LIBRARIES # gstreamer-video: GSTREAMER_VIDEO_INCLUDE_DIRS and GSTREAMER_VIDEO_LIBRARIES # @@ -46,87 +45,89 @@ # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -FIND_PACKAGE(PkgConfig) - -# The minimum GStreamer version we support. -SET(GSTREAMER_MINIMUM_VERSION 0.10.30) +find_package(PkgConfig) # Helper macro to find a GStreamer plugin (or GStreamer itself) # _component_prefix is prepended to the _INCLUDE_DIRS and _LIBRARIES variables (eg. "GSTREAMER_AUDIO") -# _pkgconfig_name is the component's pkg-config name (eg. "gstreamer-0.10", or "gstreamer-video-0.10"). -# _header is the component's header, relative to the gstreamer-0.10 directory (eg. "gst/gst.h"). -# _library is the component's library name (eg. "gstreamer-0.10" or "gstvideo-0.10") -MACRO(FIND_GSTREAMER_COMPONENT _component_prefix _pkgconfig_name _header _library) +# _pkgconfig_name is the component's pkg-config name (eg. "gstreamer-1.0", or "gstreamer-video-1.0"). +# _header is the component's header, relative to the gstreamer-1.0 directory (eg. "gst/gst.h"). +# _library is the component's library name (eg. "gstreamer-1.0" or "gstvideo-1.0") +macro(FIND_GSTREAMER_COMPONENT _component_prefix _pkgconfig_name _header _library) # FIXME: The QUIET keyword can be used once we require CMake 2.8.2. - PKG_CHECK_MODULES(PC_${_component_prefix} ${_pkgconfig_name}) + pkg_check_modules(PC_${_component_prefix} ${_pkgconfig_name}) - FIND_PATH(${_component_prefix}_INCLUDE_DIRS + find_path(${_component_prefix}_INCLUDE_DIRS NAMES ${_header} HINTS ${PC_${_component_prefix}_INCLUDE_DIRS} ${PC_${_component_prefix}_INCLUDEDIR} - PATH_SUFFIXES gstreamer-0.10 + PATH_SUFFIXES gstreamer-1.0 ) - FIND_LIBRARY(${_component_prefix}_LIBRARIES + find_library(${_component_prefix}_LIBRARIES NAMES ${_library} HINTS ${PC_${_component_prefix}_LIBRARY_DIRS} ${PC_${_component_prefix}_LIBDIR} ) -ENDMACRO() +endmacro() # ------------------------ # 1. Find GStreamer itself # ------------------------ # 1.1. Find headers and libraries -FIND_GSTREAMER_COMPONENT(GSTREAMER gstreamer-0.10 gst/gst.h gstreamer-0.10) -FIND_GSTREAMER_COMPONENT(GSTREAMER_BASE gstreamer-base-0.10 gst/gst.h gstbase-0.10) +FIND_GSTREAMER_COMPONENT(GSTREAMER gstreamer-1.0 gst/gst.h gstreamer-1.0) +FIND_GSTREAMER_COMPONENT(GSTREAMER_BASE gstreamer-base-1.0 gst/gst.h gstbase-1.0) # 1.2. Check GStreamer version -IF (GSTREAMER_INCLUDE_DIRS) - IF (EXISTS "${GSTREAMER_INCLUDE_DIRS}/gst/gstversion.h") - FILE (READ "${GSTREAMER_INCLUDE_DIRS}/gst/gstversion.h" GSTREAMER_VERSION_CONTENTS) - - STRING(REGEX MATCH "#define +GST_VERSION_MAJOR +\\(([0-9]+)\\)" _dummy "${GSTREAMER_VERSION_CONTENTS}") - SET(GSTREAMER_VERSION_MAJOR "${CMAKE_MATCH_1}") - - STRING(REGEX MATCH "#define +GST_VERSION_MINOR +\\(([0-9]+)\\)" _dummy "${GSTREAMER_VERSION_CONTENTS}") - SET(GSTREAMER_VERSION_MINOR "${CMAKE_MATCH_1}") - - STRING(REGEX MATCH "#define +GST_VERSION_MICRO +\\(([0-9]+)\\)" _dummy "${GSTREAMER_VERSION_CONTENTS}") - SET(GSTREAMER_VERSION_MICRO "${CMAKE_MATCH_1}") - - SET(GSTREAMER_VERSION "${GSTREAMER_VERSION_MAJOR}.${GSTREAMER_VERSION_MINOR}.${GSTREAMER_VERSION_MICRO}") - ENDIF () -ENDIF () - -# FIXME: With CMake 2.8.3 we can just pass GSTREAMER_VERSION to FIND_PACKAGE_HANDLE_STARNDARD_ARGS as VERSION_VAR -# and remove the version check here (GSTREAMER_MINIMUM_VERSION would be passed to FIND_PACKAGE). -SET(VERSION_OK TRUE) -IF ("${GSTREAMER_VERSION}" VERSION_LESS "${GSTREAMER_MINIMUM_VERSION}") - SET(VERSION_OK FALSE) -ENDIF () +if (GSTREAMER_INCLUDE_DIRS) + if (EXISTS "${GSTREAMER_INCLUDE_DIRS}/gst/gstversion.h") + file(READ "${GSTREAMER_INCLUDE_DIRS}/gst/gstversion.h" GSTREAMER_VERSION_CONTENTS) + + string(REGEX MATCH "#define +GST_VERSION_MAJOR +\\(([0-9]+)\\)" _dummy "${GSTREAMER_VERSION_CONTENTS}") + set(GSTREAMER_VERSION_MAJOR "${CMAKE_MATCH_1}") + + string(REGEX MATCH "#define +GST_VERSION_MINOR +\\(([0-9]+)\\)" _dummy "${GSTREAMER_VERSION_CONTENTS}") + set(GSTREAMER_VERSION_MINOR "${CMAKE_MATCH_1}") + + string(REGEX MATCH "#define +GST_VERSION_MICRO +\\(([0-9]+)\\)" _dummy "${GSTREAMER_VERSION_CONTENTS}") + set(GSTREAMER_VERSION_MICRO "${CMAKE_MATCH_1}") + + set(GSTREAMER_VERSION "${GSTREAMER_VERSION_MAJOR}.${GSTREAMER_VERSION_MINOR}.${GSTREAMER_VERSION_MICRO}") + endif () +endif () + +# FIXME: With CMake 2.8.3 we can just pass GSTREAMER_VERSION to FIND_PACKAGE_HANDLE_STANDARD_ARGS as VERSION_VAR +# and remove the version check here (GSTREAMER_FIND_VERSION would be passed to FIND_PACKAGE). +set(VERSION_OK TRUE) +if (GSTREAMER_FIND_VERSION_EXACT) + if (NOT(("${GSTREAMER_FIND_VERSION}" VERSION_EQUAL "${GSTREAMER_VERSION}"))) + set(VERSION_OK FALSE) + endif () +else () + if ("${GSTREAMER_VERSION}" VERSION_LESS "${GSTREAMER_FIND_VERSION}") + set(VERSION_OK FALSE) + endif () +endif () # ------------------------- # 2. Find GStreamer plugins # ------------------------- -FIND_GSTREAMER_COMPONENT(GSTREAMER_APP gstreamer-app-0.10 gst/app/gstappsink.h gstapp-0.10) -FIND_GSTREAMER_COMPONENT(GSTREAMER_AUDIO gstreamer-audio-0.10 gst/audio/audio.h gstaudio-0.10) -FIND_GSTREAMER_COMPONENT(GSTREAMER_FFT gstreamer-fft-0.10 gst/fft/gstfft.h gstfft-0.10) -FIND_GSTREAMER_COMPONENT(GSTREAMER_INTERFACES gstreamer-interfaces-0.10 gst/interfaces/mixer.h gstinterfaces-0.10) -FIND_GSTREAMER_COMPONENT(GSTREAMER_PBUTILS gstreamer-pbutils-0.10 gst/pbutils/pbutils.h gstpbutils-0.10) -FIND_GSTREAMER_COMPONENT(GSTREAMER_VIDEO gstreamer-video-0.10 gst/video/video.h gstvideo-0.10) +FIND_GSTREAMER_COMPONENT(GSTREAMER_APP gstreamer-app-1.0 gst/app/gstappsink.h gstapp-1.0) +FIND_GSTREAMER_COMPONENT(GSTREAMER_AUDIO gstreamer-audio-1.0 gst/audio/audio.h gstaudio-1.0) +FIND_GSTREAMER_COMPONENT(GSTREAMER_FFT gstreamer-fft-1.0 gst/fft/gstfft.h gstfft-1.0) +FIND_GSTREAMER_COMPONENT(GSTREAMER_PBUTILS gstreamer-pbutils-1.0 gst/pbutils/pbutils.h gstpbutils-1.0) +FIND_GSTREAMER_COMPONENT(GSTREAMER_VIDEO gstreamer-video-1.0 gst/video/video.h gstvideo-1.0) # ------------------------------------------------ # 3. Process the COMPONENTS passed to FIND_PACKAGE # ------------------------------------------------ -SET(_GSTREAMER_REQUIRED_VARS GSTREAMER_INCLUDE_DIRS GSTREAMER_LIBRARIES VERSION_OK GSTREAMER_BASE_INCLUDE_DIRS GSTREAMER_BASE_LIBRARIES) +set(_GSTREAMER_REQUIRED_VARS GSTREAMER_INCLUDE_DIRS GSTREAMER_LIBRARIES VERSION_OK GSTREAMER_BASE_INCLUDE_DIRS GSTREAMER_BASE_LIBRARIES) -FOREACH(_component ${GStreamer_FIND_COMPONENTS}) - SET(_gst_component "GSTREAMER_${_component}") - STRING(TOUPPER ${_gst_component} _UPPER_NAME) +foreach (_component ${GStreamer_FIND_COMPONENTS}) + set(_gst_component "GSTREAMER_${_component}") + string(TOUPPER ${_gst_component} _UPPER_NAME) - LIST(APPEND _GSTREAMER_REQUIRED_VARS ${_UPPER_NAME}_INCLUDE_DIRS ${_UPPER_NAME}_LIBRARIES) -ENDFOREACH() + list(APPEND _GSTREAMER_REQUIRED_VARS ${_UPPER_NAME}_INCLUDE_DIRS ${_UPPER_NAME}_LIBRARIES) +endforeach () -INCLUDE(FindPackageHandleStandardArgs) +include(FindPackageHandleStandardArgs) FIND_PACKAGE_HANDLE_STANDARD_ARGS(GStreamer DEFAULT_MSG ${_GSTREAMER_REQUIRED_VARS}) diff --git a/Source/cmake/FindGTK3.cmake b/Source/cmake/FindGTK3.cmake new file mode 100644 index 000000000..cfa578467 --- /dev/null +++ b/Source/cmake/FindGTK3.cmake @@ -0,0 +1,49 @@ +# - Try to find GTK+ 3 +# Once done, this will define +# +# GTK3_FOUND - system has GTK+ 3. +# GTK3_INCLUDE_DIRS - the GTK+ 3. include directories +# GTK3_LIBRARIES - link these to use GTK+ 3. +# +# Copyright (C) 2012 Raphael Kubo da Costa +# Copyright (C) 2013 Igalia S.L. +# +# 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 above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND ITS CONTRIBUTORS ``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 COPYRIGHT HOLDER OR ITS +# CONTRIBUTORS 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. + +find_package(PkgConfig) +pkg_check_modules(GTK3 gtk+-3.0) + +set(VERSION_OK TRUE) +if (GTK3_VERSION) + if (GTK3_FIND_VERSION_EXACT) + if (NOT("${GTK3_FIND_VERSION}" VERSION_EQUAL "${GTK3_VERSION}")) + set(VERSION_OK FALSE) + endif () + else () + if ("${GTK3_VERSION}" VERSION_LESS "${GTK3_FIND_VERSION}") + set(VERSION_OK FALSE) + endif () + endif () +endif () + +include(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(GTK3 DEFAULT_MSG GTK3_INCLUDE_DIRS GTK3_LIBRARIES VERSION_OK) diff --git a/Source/cmake/FindGperf.cmake b/Source/cmake/FindGperf.cmake index 0e5391216..0574d32fa 100644 --- a/Source/cmake/FindGperf.cmake +++ b/Source/cmake/FindGperf.cmake @@ -1,19 +1,19 @@ # - Find gperf -# This module looks for gperf. This module defines the +# 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) +include(FindCygwin) -FIND_PROGRAM(GPERF_EXECUTABLE +find_program(GPERF_EXECUTABLE gperf ${CYGWIN_INSTALL_PATH}/bin ) -# handle the QUIETLY and REQUIRED arguments and set GPERF_FOUND to TRUE if +# handle the QUIETLY and REQUIRED arguments and set GPERF_FOUND to TRUE if # all listed variables are TRUE -INCLUDE(FindPackageHandleStandardArgs) +include(FindPackageHandleStandardArgs) FIND_PACKAGE_HANDLE_STANDARD_ARGS(Gperf DEFAULT_MSG GPERF_EXECUTABLE) -MARK_AS_ADVANCED(GPERF_EXECUTABLE) +mark_as_advanced(GPERF_EXECUTABLE) diff --git a/Source/cmake/FindHarfBuzz.cmake b/Source/cmake/FindHarfBuzz.cmake index a3488792a..f8ca60521 100644 --- a/Source/cmake/FindHarfBuzz.cmake +++ b/Source/cmake/FindHarfBuzz.cmake @@ -30,17 +30,17 @@ # HARFBUZZ_INCLUDE_DIRS - containg the HarfBuzz headers # HARFBUZZ_LIBRARIES - containg the HarfBuzz library -INCLUDE(FindPkgConfig) +include(FindPkgConfig) -PKG_CHECK_MODULES(PC_HARFBUZZ harfbuzz>=0.9.0) +pkg_check_modules(PC_HARFBUZZ harfbuzz>=0.9.7) -FIND_PATH(HARFBUZZ_INCLUDE_DIRS NAMES hb.h - HINTS ${PC_HARFBUZZ_INCLUDE_DIRS} ${PC_HARFBUZZ_INCLUDEDIR} +find_path(HARFBUZZ_INCLUDE_DIRS NAMES hb.h + HINTS ${PC_HARFBUZZ_INCLUDE_DIRS} ${PC_HARFBUZZ_INCLUDEDIR} ) -FIND_LIBRARY(HARFBUZZ_LIBRARIES NAMES harfbuzz - HINTS ${PC_HARFBUZZ_LIBRARY_DIRS} ${PC_HARFBUZZ_LIBDIR} +find_library(HARFBUZZ_LIBRARIES NAMES harfbuzz + HINTS ${PC_HARFBUZZ_LIBRARY_DIRS} ${PC_HARFBUZZ_LIBDIR} ) -INCLUDE(FindPackageHandleStandardArgs) +include(FindPackageHandleStandardArgs) FIND_PACKAGE_HANDLE_STANDARD_ARGS(HarfBuzz DEFAULT_MSG HARFBUZZ_INCLUDE_DIRS HARFBUZZ_LIBRARIES) diff --git a/Source/cmake/FindICU.cmake b/Source/cmake/FindICU.cmake index 225c73102..a3fe795f1 100644 --- a/Source/cmake/FindICU.cmake +++ b/Source/cmake/FindICU.cmake @@ -10,68 +10,67 @@ # (note: in addition to ICU_LIBRARIES) # Look for the header file. -FIND_PATH( +find_path( ICU_INCLUDE_DIR NAMES unicode/utypes.h DOC "Include directory for the ICU library") -MARK_AS_ADVANCED(ICU_INCLUDE_DIR) +mark_as_advanced(ICU_INCLUDE_DIR) # Look for the library. -FIND_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) +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}) +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 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}") + set(ICU_VERSION "${ICU_MAJOR_VERSION}.${ICU_MINOR_VERSION}") # Look for the ICU internationalization libraries - FIND_LIBRARY( + 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 () + 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/FindLibSeccomp.cmake b/Source/cmake/FindLibSeccomp.cmake new file mode 100644 index 000000000..2129c8b70 --- /dev/null +++ b/Source/cmake/FindLibSeccomp.cmake @@ -0,0 +1,46 @@ +# Copyright (c) 2013, Intel Corporation +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# * Neither the name of Intel Corporation nor the names of its contributors may +# be used to endorse or promote products derived from this software without +# specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR CONTRIBUTORS 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. +# +# Try to find libseccomp include and library directories. +# +# After successful discovery, this will set for inclusion where needed: +# LIBSECCOMP_INCLUDE_DIRS - containg the libseccomp headers +# LIBSECCOMP_LIBRARIES - containg the libseccomp library + +include(FindPkgConfig) + +pkg_check_modules(PC_LIBSECCOMP libseccomp) + +find_path(LIBSECCOMP_INCLUDE_DIRS NAMES seccomp.h + HINTS ${PC_LIBSECCOMP_INCLUDE_DIRS} ${PC_LIBSECCOMP_INCLUDEDIR} +) + +find_library(LIBSECCOMP_LIBRARIES NAMES seccomp + HINTS ${PC_LIBSECCOMP_LIBRARY_DIRS} ${PC_LIBSECCOMP_LIBDIR} +) + +include(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(seccomp DEFAULT_MSG LIBSECCOMP_INCLUDE_DIRS LIBSECCOMP_LIBRARIES) diff --git a/Source/cmake/FindLibSoup.cmake b/Source/cmake/FindLibSoup.cmake index cb8e4e243..aaa76e8c5 100644 --- a/Source/cmake/FindLibSoup.cmake +++ b/Source/cmake/FindLibSoup.cmake @@ -31,22 +31,22 @@ # LibSoup does not provide an easy way to retrieve its version other than its # .pc file, so we need to rely on PC_LIBSOUP_VERSION and REQUIRE the .pc file # to be found. -FIND_PACKAGE(PkgConfig) -PKG_CHECK_MODULES(PC_LIBSOUP REQUIRED QUIET libsoup-2.4) +find_package(PkgConfig) +pkg_check_modules(PC_LIBSOUP REQUIRED QUIET libsoup-2.4) -FIND_PATH(LIBSOUP_INCLUDE_DIRS +find_path(LIBSOUP_INCLUDE_DIRS NAMES libsoup/soup.h HINTS ${PC_LIBSOUP_INCLUDEDIR} ${PC_LIBSOUP_INCLUDE_DIRS} PATH_SUFFIXES libsoup-2.4 ) -FIND_LIBRARY(LIBSOUP_LIBRARIES +find_library(LIBSOUP_LIBRARIES NAMES soup-2.4 HINTS ${PC_LIBSOUP_LIBDIR} ${PC_LIBSOUP_LIBRARY_DIRS} ) -INCLUDE(FindPackageHandleStandardArgs) +include(FindPackageHandleStandardArgs) FIND_PACKAGE_HANDLE_STANDARD_ARGS(LibSoup REQUIRED_VARS LIBSOUP_INCLUDE_DIRS LIBSOUP_LIBRARIES VERSION_VAR PC_LIBSOUP_VERSION) diff --git a/Source/cmake/FindQuickTimeSDK.cmake b/Source/cmake/FindQuickTimeSDK.cmake index 1c701f500..389b67e4e 100644 --- a/Source/cmake/FindQuickTimeSDK.cmake +++ b/Source/cmake/FindQuickTimeSDK.cmake @@ -5,16 +5,16 @@ # QuickTime_LIBRARIES, libraries to link against to use QuickTime. # QuickTime_FOUND, If false, do not try to use QuickTime. -FIND_PATH(QuickTimeSDK_INCLUDE_DIRS QuickTime.h PATHS +find_path(QuickTimeSDK_INCLUDE_DIRS QuickTime.h PATHS "$ENV{PROGRAMFILES}/QuickTime SDK/CIncludes" ) -SET(QuickTimeSDK_LIBRARY_PATH "${QuickTimeSDK_INCLUDE_DIRS}/../Libraries") -FIND_LIBRARY(QuickTimeSDK_CVClient_LIBRARY CVClient ${QuickTimeSDK_LIBRARY_PATH} NO_DEFAULT_PATH) -FIND_LIBRARY(QuickTimeSDK_QTMLClient_LIBRARY QTMLClient ${QuickTimeSDK_LIBRARY_PATH} NO_DEFAULT_PATH) -SET(QuickTimeSDK_LIBRARIES ${QuickTimeSDK_CVClient_LIBRARY} ${QuickTimeSDK_QTMLClient_LIBRARY}) +set(QuickTimeSDK_LIBRARY_PATH "${QuickTimeSDK_INCLUDE_DIRS}/../Libraries") +find_library(QuickTimeSDK_CVClient_LIBRARY CVClient ${QuickTimeSDK_LIBRARY_PATH} NO_DEFAULT_PATH) +find_library(QuickTimeSDK_QTMLClient_LIBRARY QTMLClient ${QuickTimeSDK_LIBRARY_PATH} NO_DEFAULT_PATH) +set(QuickTimeSDK_LIBRARIES ${QuickTimeSDK_CVClient_LIBRARY} ${QuickTimeSDK_QTMLClient_LIBRARY}) # handle the QUIETLY and REQUIRED arguments and set QuickTimeSDK_FOUND to TRUE if all listed variables are TRUE -INCLUDE(FindPackageHandleStandardArgs) +include(FindPackageHandleStandardArgs) FIND_PACKAGE_HANDLE_STANDARD_ARGS(QuickTimeSDK DEFAULT_MSG QuickTimeSDK_LIBRARIES QuickTimeSDK_INCLUDE_DIRS) -MARK_AS_ADVANCED(QuickTimeSDK_INCLUDE_DIRS QuickTimeSDK_CVClient_LIBRARY QuickTimeSDK_QTMLClient_LIBRARY) +mark_as_advanced(QuickTimeSDK_INCLUDE_DIRS QuickTimeSDK_CVClient_LIBRARY QuickTimeSDK_QTMLClient_LIBRARY) diff --git a/Source/cmake/FindSqlite.cmake b/Source/cmake/FindSqlite.cmake index 1bd862551..47caa360c 100644 --- a/Source/cmake/FindSqlite.cmake +++ b/Source/cmake/FindSqlite.cmake @@ -31,36 +31,35 @@ # (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 ( SQLITE_INCLUDE_DIR AND SQLITE_LIBRARIES ) - # in cache already - SET(Sqlite_FIND_QUIETLY TRUE) -endif ( SQLITE_INCLUDE_DIR AND SQLITE_LIBRARIES ) +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) +# in the find_path() and find_library() calls +if (NOT WIN32) + find_package(PkgConfig) - pkg_check_modules(PC_SQLITE sqlite3) + pkg_check_modules(PC_SQLITE sqlite3) - set(SQLITE_DEFINITIONS ${PC_SQLITE_CFLAGS_OTHER}) -endif( NOT WIN32 ) + 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_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} +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 ) +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 ) - +mark_as_advanced(SQLITE_INCLUDE_DIR SQLITE_LIBRARIES) diff --git a/Source/cmake/FindWebP.cmake b/Source/cmake/FindWebP.cmake new file mode 100644 index 000000000..3ef11d91a --- /dev/null +++ b/Source/cmake/FindWebP.cmake @@ -0,0 +1,46 @@ +# - Try to find WebP. +# Once done, this will define +# +# WEBP_FOUND - system has WebP. +# WEBP_INCLUDE_DIRS - the WebP. include directories +# WEBP_LIBRARIES - link these to use WebP. +# +# Copyright (C) 2012 Raphael Kubo da Costa +# Copyright (C) 2013 Igalia S.L. +# +# 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 above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND ITS CONTRIBUTORS ``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 COPYRIGHT HOLDER OR ITS +# CONTRIBUTORS 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. + +find_package(PkgConfig) +pkg_check_modules(WEBP libwebp) + +if (NOT(WEBP_FOUND)) + # Older installations of libwebp do not install a pkgconfig file, so we fall + # back to a manual search for a libwebp header file. + check_include_files("webp/decode.h" WEBP_FOUND) + if (WEBP_FOUND) + set(WEBP_LIBRARIES "-lwebp") + endif () +endif () + +# WEBP_INCLUDE_DIRS is often empty, so we rely only on WEBP_LIBRARIES. +include(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(WEBP DEFAULT_MSG WEBP_LIBRARIES) diff --git a/Source/cmake/FindXt.cmake b/Source/cmake/FindXt.cmake new file mode 100644 index 000000000..90c279799 --- /dev/null +++ b/Source/cmake/FindXt.cmake @@ -0,0 +1,49 @@ +# - Try to find Xt +# Once done, this will define +# +# XT_FOUND - system has Xt. +# XT_INCLUDE_DIRS - the Xt. include directories +# XT_LIBRARIES - link these to use Xt. +# +# Copyright (C) 2012 Raphael Kubo da Costa +# Copyright (C) 2013 Igalia S.L. +# +# 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 above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND ITS CONTRIBUTORS ``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 COPYRIGHT HOLDER OR ITS +# CONTRIBUTORS 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. + +find_package(PkgConfig) +pkg_check_modules(XT xt) + +set(VERSION_OK TRUE) +if (XT_VERSION) + if (XT_FIND_VERSION_EXACT) + if (NOT("${XT_FIND_VERSION}" VERSION_EQUAL "${XT_VERSION}")) + set(VERSION_OK FALSE) + endif () + else () + if ("${XT_VERSION}" VERSION_LESS "${XT_FIND_VERSION}") + set(VERSION_OK FALSE) + endif () + endif () +endif () + +include(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(XT_DEFAULT_MSG XT_INCLUDE_DIRS XT_LIBRARIES VERSION_OK) diff --git a/Source/cmake/OptionsBlackBerry.cmake b/Source/cmake/OptionsBlackBerry.cmake index c93dfad51..31fcfe1ce 100644 --- a/Source/cmake/OptionsBlackBerry.cmake +++ b/Source/cmake/OptionsBlackBerry.cmake @@ -1,72 +1,69 @@ -SET(PROJECT_VERSION_MAJOR 0) -SET(PROJECT_VERSION_MINOR 1) -SET(PROJECT_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}) +set(PROJECT_VERSION_MAJOR 0) +set(PROJECT_VERSION_MINOR 1) +set(PROJECT_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}) -SET(DATA_DIR ${CMAKE_INSTALL_PREFIX}/share/${PROJECT_NAME}-${PROJECT_VERSION}) +set(DATA_DIR ${CMAKE_INSTALL_PREFIX}/share/${PROJECT_NAME}-${PROJECT_VERSION}) -ADD_DEFINITIONS(-DDATA_DIR="${DATA_DIR}") +set(WTF_USE_ICU_UNICODE 1) -ADD_DEFINITIONS(-DWEBCORE_NAVIGATOR_VENDOR="Research In Motion, Ltd.") -ADD_DEFINITIONS(-DBUILDING_BLACKBERRY__) -ADD_DEFINITIONS(-DBUILD_WEBKIT) +add_definitions(-DDATA_DIR="${DATA_DIR}") + +add_definitions(-DWEBCORE_NAVIGATOR_VENDOR="Research In Motion, Ltd.") +add_definitions(-DBUILDING_BLACKBERRY__) +add_definitions(-DBUILD_WEBKIT) # Workaround for now so that SK_DEBUG isn't defined in SkPreConfig.h -ADD_DEFINITIONS(-DSK_RELEASE) +add_definitions(-DSK_RELEASE) # TODO: Make this build-time configurable -SET(WTF_USE_PTHREADS 1) -ADD_DEFINITIONS(-DWTF_USE_PTHREADS=1) -SET(WTF_USE_OPENTYPE_SANITIZER 1) -ADD_DEFINITIONS(-DWTF_USE_OPENTYPE_SANITIZER=1) - -IF (SHARED_CORE) - ADD_DEFINITIONS(-DWTF_USE_EXPORT_MACROS=1) -ENDIF() - -IF (ENABLE_GLES2) - SET(WTF_USE_ACCELERATED_COMPOSITING 1) - ADD_DEFINITIONS(-DWTF_USE_ACCELERATED_COMPOSITING=1) - ADD_DEFINITIONS(-DBLACKBERRY_PLATFORM_GRAPHICS_EGL=1) - ADD_DEFINITIONS(-DBLACKBERRY_PLATFORM_GRAPHICS_GLES2=1) - ADD_DEFINITIONS(-DBLACKBERRY_PLATFORM_GRAPHICS_DRAWING_SURFACE=1) - ADD_DEFINITIONS(-DBLACKBERRY_PLATFORM_EXPORT_WEBDOM=1) - ADD_DEFINITIONS(-DWTF_USE_ARENA_ALLOC_ALIGNMENT_INTEGER=1) -ENDIF () - -IF (ADDITIONAL_SYSTEM_INCLUDE_PATH) - SET(CMAKE_INCLUDE_SYSTEM_FLAG_C "-Wp,-isystem") - SET(CMAKE_INCLUDE_SYSTEM_FLAG_CXX "-Wp,-isystem") - FOREACH (directory ${ADDITIONAL_SYSTEM_INCLUDE_PATH}) - INCLUDE_DIRECTORIES(SYSTEM ${directory}) - ENDFOREACH () - IF(ENABLE_WEBGL) - INCLUDE_DIRECTORIES(SYSTEM ${THIRDPARTY_DIR}/ANGLE/include) #As system so as to be lower-priority than actual system headers - ENDIF () -ENDIF () - -IF (PUBLIC_BUILD) - ADD_DEFINITIONS(-DPUBLIC_BUILD=1) +set(WTF_USE_OPENTYPE_SANITIZER 1) +add_definitions(-DWTF_USE_OPENTYPE_SANITIZER=1) +add_definitions(-DWTF_USE_EXPORT_MACROS=1) + +if (ENABLE_GLES2) + set(WTF_USE_ACCELERATED_COMPOSITING 1) + add_definitions(-DWTF_USE_ACCELERATED_COMPOSITING=1) + add_definitions(-DBLACKBERRY_PLATFORM_GRAPHICS_EGL=1) + add_definitions(-DBLACKBERRY_PLATFORM_GRAPHICS_GLES2=1) + add_definitions(-DBLACKBERRY_PLATFORM_GRAPHICS_DRAWING_SURFACE=1) + add_definitions(-DWTF_USE_ARENA_ALLOC_ALIGNMENT_INTEGER=1) +endif () + +if (ADDITIONAL_SYSTEM_INCLUDE_PATH) + set(CMAKE_INCLUDE_SYSTEM_FLAG_C "-Wp,-isystem") + set(CMAKE_INCLUDE_SYSTEM_FLAG_CXX "-Wp,-isystem") + foreach (directory ${ADDITIONAL_SYSTEM_INCLUDE_PATH}) + include_directories(SYSTEM ${directory}) + endforeach () + if (ENABLE_WEBGL) + include_directories(SYSTEM ${THIRDPARTY_DIR}/ANGLE/include) #As system so as to be lower-priority than actual system headers + endif () +endif () + +if (PUBLIC_BUILD) message("*** PUBLIC BUILD ***") -ELSE (PUBLIC_BUILD) +else (PUBLIC_BUILD) message("*** DRT is ENABLED ***") -ENDIF () +endif () -ADD_DEFINITIONS(-D__QNXNTO__) -ADD_DEFINITIONS(-D_FILE_OFFSET_BITS=64) -ADD_DEFINITIONS(-D_LARGEFILE64_SOURCE) +add_definitions(-D__QNXNTO__) +add_definitions(-D_FILE_OFFSET_BITS=64) +add_definitions(-D_LARGEFILE64_SOURCE) # Find a library only in the staging directory (which is the CMAKE_INSTALL_PATH) # TODO: CMAKE_INSTALL_PATH may not be staging directory. -MACRO(FIND_STAGING_LIBRARY _var _libname) - FIND_LIBRARY(${_var} ${_libname} - PATHS "${CMAKE_LIBRARY_PATH}" - ENV "QNX_TARGET" - PATH_SUFFIXES "${CMAKE_SYSTEM_PROCESSOR}/usr/lib" "${CMAKE_SYSTEM_PROCESSOR}/lib" - NO_DEFAULT_PATH) -ENDMACRO() - -FIND_STAGING_LIBRARY(Skia_LIBRARY grskia) -FIND_STAGING_LIBRARY(Skia_QNX_LIBRARY skia-qnx) +macro(FIND_STAGING_LIBRARY _var _libname) + find_library(${_var} ${_libname} + PATHS "${CMAKE_LIBRARY_PATH}" + ENV "QNX_TARGET" + PATH_SUFFIXES "${CMAKE_SYSTEM_PROCESSOR}/usr/lib" "${CMAKE_SYSTEM_PROCESSOR}/lib" + NO_DEFAULT_PATH) +endmacro() + +macro(FIND_STAGING_STATIC_LIBRARY _var _libname) + set(${_var} "-Bstatic -l${_libname} -Bdynamic" CACHE STRING ${_libname}) +endmacro() + FIND_STAGING_LIBRARY(JPEG_LIBRARY jpeg) FIND_STAGING_LIBRARY(PNG_LIBRARY png) FIND_STAGING_LIBRARY(XML2_LIBRARY xml2) @@ -92,67 +89,73 @@ FIND_STAGING_LIBRARY(LEVELDB_LIBRARY leveldb) FIND_STAGING_LIBRARY(ITYPE_LIBRARY iType) FIND_STAGING_LIBRARY(WTLE_LIBRARY WTLE) +# Use jpeg-turbo for device build +if (TARGETING_PLAYBOOK) + FIND_STAGING_STATIC_LIBRARY(JPEG_LIBRARY jpeg-webkit) +else () + FIND_STAGING_LIBRARY(JPEG_LIBRARY jpeg) +endif () + # Add "-fPIC" to CMAKE_SHARED_LIBRARY_C_FLAGS and CMAKE_SHARED_LIBRARY_CXX_FLAGS # This is because "-fPIC" is not included in the default defines under Modules/Platform/QNX.cmake -SET(CMAKE_SHARED_LIBRARY_C_FLAGS "-fPIC ${CMAKE_SHARED_LIBRARY_C_FLAGS}") -SET(CMAKE_SHARED_LIBRARY_CXX_FLAGS "-fPIC ${CMAKE_SHARED_LIBRARY_CXX_FLAGS}") +set(CMAKE_SHARED_LIBRARY_C_FLAGS "-fPIC ${CMAKE_SHARED_LIBRARY_C_FLAGS}") +set(CMAKE_SHARED_LIBRARY_CXX_FLAGS "-fPIC ${CMAKE_SHARED_LIBRARY_CXX_FLAGS}") # Show unresolved symbols when doing the final shared object link -IF (PROFILING) - SET(BLACKBERRY_LINK_FLAGS "-Wl,-z,defs -Wl,-z,relro -Wl,-E -Wl,--no-keep-memory") -ELSE (PROFILING) - SET(BLACKBERRY_LINK_FLAGS "-Wl,-z,defs -Wl,-z,relro -Wl,--no-keep-memory") -ENDIF () +if (PROFILING) + set(BLACKBERRY_LINK_FLAGS "-Wl,-z,defs -Wl,-z,relro -Wl,-E -Wl,--no-keep-memory") +else (PROFILING) + set(BLACKBERRY_LINK_FLAGS "-Wl,-z,defs -Wl,-z,relro -Wl,--no-keep-memory") +endif () # Set custom CFLAGS for our port -IF (CMAKE_COMPILER_IS_GNUCC) - SET(CMAKE_CXX_FLAGS "-fstack-protector -fno-rtti -Wformat -Wformat-security -Werror=format-security ${CMAKE_CXX_FLAGS}") - SET(CMAKE_C_FLAGS "-fstack-protector -Wformat -Wformat-security -Werror=format-security ${CMAKE_C_FLAGS}") - SET(JSC_LINK_FLAGS "-Wl,-z,defs -Wl,-z,relro -N1024K") -ENDIF () +if (CMAKE_COMPILER_IS_GNUCC) + set(CMAKE_CXX_FLAGS "-fno-exceptions -fstack-protector -fno-rtti -Wformat -Wformat-security -Werror=format-security ${CMAKE_CXX_FLAGS}") + set(CMAKE_C_FLAGS "-fstack-protector -Wformat -Wformat-security -Werror=format-security ${CMAKE_C_FLAGS}") + set(JSC_LINK_FLAGS "-Wl,-z,defs -Wl,-z,relro -N1024K") +endif () -IF (PROFILING) - SET(CMAKE_CXX_FLAGS "-finstrument-functions -g ${CMAKE_CXX_FLAGS}") - SET(CMAKE_C_FLAGS "-finstrument-functions -g ${CMAKE_C_FLAGS}") -ENDIF () +if (PROFILING) + set(CMAKE_CXX_FLAGS "-finstrument-functions -g ${CMAKE_CXX_FLAGS}") + set(CMAKE_C_FLAGS "-finstrument-functions -g ${CMAKE_C_FLAGS}") +endif () # FIXME: Make this more elegant -IF (TARGETING_PLAYBOOK) - SET(CMAKE_CXX_FLAGS "-mfpu=neon ${CMAKE_CXX_FLAGS}") - SET(CMAKE_C_FLAGS "-mfpu=neon ${CMAKE_C_FLAGS}") - SET(CMAKE_CXX_FLAGS "-mthumb -mthumb-interwork ${CMAKE_CXX_FLAGS}") - SET(CMAKE_C_FLAGS "-mthumb -mthumb-interwork ${CMAKE_C_FLAGS}") +if (TARGETING_PLAYBOOK) + set(CMAKE_CXX_FLAGS "-mfpu=neon ${CMAKE_CXX_FLAGS}") + set(CMAKE_C_FLAGS "-mfpu=neon ${CMAKE_C_FLAGS}") + set(CMAKE_CXX_FLAGS "-mthumb -mthumb-interwork ${CMAKE_CXX_FLAGS}") + set(CMAKE_C_FLAGS "-mthumb -mthumb-interwork ${CMAKE_C_FLAGS}") # check for BB_RELEASE_FLAGS or BB_DEBUG_FLAGS to set CMAKE_C_FLAGS{DEBUG|RELEASE} CMAKE_CXX_FLAGS{DEBUG|RELEASE} - if( DEFINED ENV{BB_RELEASE_FLAGS} ) + if (DEFINED ENV{BB_RELEASE_FLAGS}) set(CMAKE_CXX_FLAGS_RELEASE "$ENV{BB_RELEASE_FLAGS} -DNDEBUG") set(CMAKE_C_FLAGS_RELEASE "$ENV{BB_RELEASE_FLAGS} -DNDEBUG") - message( "== ENV override RELEASE ${CMAKE_CXX_FLAGS_RELEASE}" ) - endif() - if( DEFINED ENV{BB_DEBUG_FLAGS} ) + message("== ENV override RELEASE ${CMAKE_CXX_FLAGS_RELEASE}") + endif () + if (DEFINED ENV{BB_DEBUG_FLAGS}) set(CMAKE_CXX_FLAGS_DEBUG "$ENV{BB_DEBUG_FLAGS}") set(CMAKE_C_FLAGS_DEBUG "$ENV{BB_DEBUG_FLAGS}") - message( "== ENV override DEBUG ${CMAKE_CXX_FLAGS_DEBUG}") - endif() -ENDIF () + message("== ENV override DEBUG ${CMAKE_CXX_FLAGS_DEBUG}") + endif () +endif () -INCLUDE_DIRECTORIES(${CMAKE_INCLUDE_PATH}) +include_directories(${CMAKE_INCLUDE_PATH}) -SET(JSC_EXECUTABLE_NAME jsc) - -SET(WTF_LIBRARY_NAME wtf) -SET(JavaScriptCore_LIBRARY_NAME javascriptcore) -SET(WebCore_LIBRARY_NAME webcore) -SET(WebKit_LIBRARY_NAME webkit) -SET(WebKit_DRT_LIBRARY_NAME webkit_DRT) +set(WTF_OUTPUT_NAME wtf) +set(JavaScriptCore_OUTPUT_NAME javascriptcore) +set(WebCore_OUTPUT_NAME webcore) +set(WebKit_OUTPUT_NAME webkit) +set(WebKit_DRT_OUTPUT_NAME webkit_DRT) WEBKIT_OPTION_BEGIN() WEBKIT_OPTION_DEFINE(ENABLE_EVENT_MODE_METATAGS "Enable meta-tag touch and mouse events" ON) WEBKIT_OPTION_DEFINE(ENABLE_VIEWPORT_REFLOW "Enable viewport reflow" ON) -WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_ANIMATION_API ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_BATTERY_STATUS ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_BLOB ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CONTEXT_MENUS OFF) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS_IMAGE_RESOLUTION ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CUSTOM_SCHEME_HANDLER ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DEVICE_ORIENTATION ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DRAG_SUPPORT OFF) @@ -162,12 +165,14 @@ WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_FILE_SYSTEM ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_FILTERS ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_FULLSCREEN_API ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_GEOLOCATION ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_IMAGE_DECODER_DOWN_SAMPLING ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INDEXED_DATABASE ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_COLOR ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_LEGACY_NOTIFICATIONS ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_LEGACY_VIEWPORT_ADAPTION ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_LLINT ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MATHML OFF) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEDIA_CAPTURE ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEDIA_STREAM ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MICRODATA ON) @@ -175,45 +180,43 @@ WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_NAVIGATOR_CONTENT_UTILS ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_NETWORK_INFO ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_NOTIFICATIONS ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_ORIENTATION_EVENTS ON) -WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_PAGE_POPUP ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_PAGE_VISIBILITY_API ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_REPAINT_THROTTLING ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_REQUEST_ANIMATION_FRAME ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SHARED_WORKERS ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SMOOTH_SCROLLING ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_STYLE_SCOPED ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_TEXT_AUTOSIZING ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_TOUCH_EVENTS ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_TOUCH_SLIDER ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_VIBRATION ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_VIDEO ON) -WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_VIDEO_TRACK ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_VIDEO_TRACK OFF) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEB_TIMING ON) -WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WORKERS ON) -WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_XHR_RESPONSE_BLOB ON) -IF (ENABLE_GLES2) +if (ENABLE_GLES2) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_3D_RENDERING ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_ACCELERATED_2D_CANVAS ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS_FILTERS ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS_SHADERS ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEBGL ON) -ELSE () +else () WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_3D_RENDERING OFF) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_ACCELERATED_2D_CANVAS OFF) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS_FILTERS OFF) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS_SHADERS OFF) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEBGL OFF) -ENDIF () +endif () -IF (CMAKE_SYSTEM_PROCESSOR MATCHES x86) +if (CMAKE_SYSTEM_PROCESSOR MATCHES x86) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_JIT OFF) -ELSE () +else () WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_JIT ON) -ENDIF () +endif () WEBKIT_OPTION_END() -ADD_DEFINITIONS(-DENABLE_BLACKBERRY_CREDENTIAL_PERSIST=1) +add_definitions(-DENABLE_BLACKBERRY_CREDENTIAL_PERSIST=1) # Some of our files, such as platform/graphics/chromium/ComplexTextControllerLinux.cpp, require a # newer ICU version than the version associated with the headers in {WebCore, JavaScriptCore}/icu. @@ -223,6 +226,8 @@ ADD_DEFINITIONS(-DENABLE_BLACKBERRY_CREDENTIAL_PERSIST=1) # # FIXME: Make this mechanism more general purpose. Maybe accept a list or directories/files to copy # instead of individual variables. Generalizing this solution may allow us to fix . -SET(BLACKBERRY_THIRD_PARTY_DIR "${CMAKE_BINARY_DIR}/ThirdPartyBlackBerry") -FILE(COPY ${THIRD_PARTY_ICU_DIR} DESTINATION "${BLACKBERRY_THIRD_PARTY_DIR}/icu") -FILE(COPY ${THIRD_PARTY_UNICODE_FILE} DESTINATION ${BLACKBERRY_THIRD_PARTY_DIR}) +set(BLACKBERRY_THIRD_PARTY_DIR "${CMAKE_BINARY_DIR}/ThirdPartyBlackBerry") +file(COPY ${THIRD_PARTY_ICU_DIR} DESTINATION "${BLACKBERRY_THIRD_PARTY_DIR}/icu") +file(COPY ${THIRD_PARTY_UNICODE_FILE} DESTINATION ${BLACKBERRY_THIRD_PARTY_DIR}) + +set(ICU_INCLUDE_DIRS "${BLACKBERRY_THIRD_PARTY_DIR}/icu") diff --git a/Source/cmake/OptionsCommon.cmake b/Source/cmake/OptionsCommon.cmake index 70105980c..ee3ce7a49 100644 --- a/Source/cmake/OptionsCommon.cmake +++ b/Source/cmake/OptionsCommon.cmake @@ -1,39 +1,41 @@ -ADD_DEFINITIONS(-DBUILDING_WITH_CMAKE=1) -ADD_DEFINITIONS(-DHAVE_CONFIG_H=1) +add_definitions(-DBUILDING_WITH_CMAKE=1) +add_definitions(-DHAVE_CONFIG_H=1) -IF (WTF_OS_UNIX) - ADD_DEFINITIONS(-DXP_UNIX) - #TODO: check for X11 target - ADD_DEFINITIONS(-DMOZ_X11) -ENDIF (WTF_OS_UNIX) +if (WTF_OS_UNIX) + add_definitions(-DXP_UNIX) +endif (WTF_OS_UNIX) # CODE_GENERATOR_PREPROCESSOR_WITH_LINEMARKERS only matters with GCC >= 4.7.0. Since this # version, -P does not output empty lines, which currently breaks make_names.pl in # WebCore. Investigating whether make_names.pl should be changed instead is left as an exercise to # the reader. -IF (MSVC) +if (MSVC) # FIXME: Some codegenerators don't support paths with spaces. So use the executable name only. - GET_FILENAME_COMPONENT(CODE_GENERATOR_PREPROCESSOR_EXECUTABLE ${CMAKE_CXX_COMPILER} NAME) - SET(CODE_GENERATOR_PREPROCESSOR "${CODE_GENERATOR_PREPROCESSOR_EXECUTABLE} /nologo /EP") - SET(CODE_GENERATOR_PREPROCESSOR_WITH_LINEMARKERS "${CODE_GENERATOR_PREPROCESSOR}") -ELSEIF (CMAKE_SYSTEM_NAME MATCHES QNX) - SET(CODE_GENERATOR_PREPROCESSOR "${CMAKE_CXX_COMPILER} -E -Wp,-P -x c++") - SET(CODE_GENERATOR_PREPROCESSOR_WITH_LINEMARKERS "${CODE_GENERATOR_PREPROCESSOR}") -ELSE () - SET(CODE_GENERATOR_PREPROCESSOR "${CMAKE_CXX_COMPILER} -E -P -x c++") - SET(CODE_GENERATOR_PREPROCESSOR_WITH_LINEMARKERS "${CMAKE_CXX_COMPILER} -E -x c++") -ENDIF () + get_filename_component(CODE_GENERATOR_PREPROCESSOR_EXECUTABLE ${CMAKE_CXX_COMPILER} NAME) + set(CODE_GENERATOR_PREPROCESSOR "${CODE_GENERATOR_PREPROCESSOR_EXECUTABLE} /nologo /EP") + set(CODE_GENERATOR_PREPROCESSOR_WITH_LINEMARKERS "${CODE_GENERATOR_PREPROCESSOR}") +elseif (CMAKE_SYSTEM_NAME MATCHES QNX) + set(CODE_GENERATOR_PREPROCESSOR "${CMAKE_CXX_COMPILER} -E -Wp,-P -x c++") + set(CODE_GENERATOR_PREPROCESSOR_WITH_LINEMARKERS "${CODE_GENERATOR_PREPROCESSOR}") +else () + set(CODE_GENERATOR_PREPROCESSOR "${CMAKE_CXX_COMPILER} -E -P -x c++") + set(CODE_GENERATOR_PREPROCESSOR_WITH_LINEMARKERS "${CMAKE_CXX_COMPILER} -E -x c++") +endif () -SET_PROPERTY(GLOBAL PROPERTY USE_FOLDERS ON) +set_property(GLOBAL PROPERTY USE_FOLDERS ON) -STRING(TOLOWER ${CMAKE_HOST_SYSTEM_PROCESSOR} LOWERCASE_CMAKE_HOST_SYSTEM_PROCESSOR) -IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" AND "${LOWERCASE_CMAKE_HOST_SYSTEM_PROCESSOR}" MATCHES "(i[3-6]86|x86)" AND "${CMAKE_BUILD_TYPE}" STREQUAL "Debug") +string(TOLOWER ${CMAKE_HOST_SYSTEM_PROCESSOR} LOWERCASE_CMAKE_HOST_SYSTEM_PROCESSOR) +if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" AND "${LOWERCASE_CMAKE_HOST_SYSTEM_PROCESSOR}" MATCHES "(i[3-6]86|x86)") # To avoid out of memory when building with debug option in 32bit system. # See https://bugs.webkit.org/show_bug.cgi?id=77327 - SET(CMAKE_SHARED_LINKER_FLAGS "-Wl,--no-keep-memory ${CMAKE_SHARED_LINKER_FLAGS}") -ENDIF () + set(CMAKE_SHARED_LINKER_FLAGS_DEBUG "-Wl,--no-keep-memory ${CMAKE_SHARED_LINKER_FLAGS_DEBUG}") +endif () -SET(LIB_SUFFIX "" CACHE STRING "Define suffix of directory name (32/64)") +if (UNIX AND NOT APPLE) + set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--no-undefined ${CMAKE_SHARED_LINKER_FLAGS}") +endif () -SET(LIB_INSTALL_DIR "lib${LIB_SUFFIX}" CACHE PATH "Where to install libraries (lib${LIB_SUFFIX})") -SET(EXEC_INSTALL_DIR "bin" CACHE PATH "Where to install executables") +set(LIB_SUFFIX "" CACHE STRING "Define suffix of directory name (32/64)") + +set(LIB_INSTALL_DIR "lib${LIB_SUFFIX}" CACHE PATH "Where to install libraries (lib${LIB_SUFFIX})") +set(EXEC_INSTALL_DIR "bin" CACHE PATH "Where to install executables") diff --git a/Source/cmake/OptionsEfl.cmake b/Source/cmake/OptionsEfl.cmake index fe37fbf7c..42036d15d 100644 --- a/Source/cmake/OptionsEfl.cmake +++ b/Source/cmake/OptionsEfl.cmake @@ -1,196 +1,282 @@ -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}) - -ADD_DEFINITIONS(-DBUILDING_EFL__=1) - -FIND_PACKAGE(Cairo 1.10.2 REQUIRED) -FIND_PACKAGE(Fontconfig 2.8.0 REQUIRED) -FIND_PACKAGE(Sqlite REQUIRED) -FIND_PACKAGE(LibXml2 2.8.0 REQUIRED) -FIND_PACKAGE(LibXslt 1.1.7 REQUIRED) -FIND_PACKAGE(ICU REQUIRED) -FIND_PACKAGE(Threads REQUIRED) -FIND_PACKAGE(JPEG REQUIRED) -FIND_PACKAGE(PNG REQUIRED) -FIND_PACKAGE(ZLIB REQUIRED) - -FIND_PACKAGE(GLIB 2.33.2 REQUIRED COMPONENTS gio gobject gthread) -FIND_PACKAGE(LibSoup 2.39.4.1 REQUIRED) - -SET(WTF_USE_SOUP 1) -ADD_DEFINITIONS(-DWTF_USE_SOUP=1) -ADD_DEFINITIONS(-DWTF_USE_PTHREADS=1) -ADD_DEFINITIONS(-DWTF_USE_ICU_UNICODE=1) -ADD_DEFINITIONS(-DWTF_USE_CAIRO=1) - -SET(JSC_EXECUTABLE_NAME jsc) - -SET(WTF_LIBRARY_NAME wtf_efl) -SET(JavaScriptCore_LIBRARY_NAME javascriptcore_efl) -SET(WebCore_LIBRARY_NAME webcore_efl) -SET(WebKit_LIBRARY_NAME ewebkit) -SET(WebKit2_LIBRARY_NAME ewebkit2) - -SET(DATA_INSTALL_DIR "share/${WebKit_LIBRARY_NAME}-${PROJECT_VERSION_MAJOR}" CACHE PATH "Installation path for theme data") -SET(THEME_BINARY_DIR ${CMAKE_BINARY_DIR}/WebKit/efl/DefaultTheme) -FILE(MAKE_DIRECTORY ${THEME_BINARY_DIR}) - -SET(VERSION_SCRIPT "-Wl,--version-script,${CMAKE_MODULE_PATH}/eflsymbols.filter") +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}) + +add_definitions(-DBUILDING_EFL__=1) + +if (NOT DEFINED ENABLE_WEBKIT2) + set(ENABLE_WEBKIT2 ON) +endif () + +if ("${CMAKE_BUILD_TYPE}" STREQUAL "Debug" AND NOT SHARED_CORE) + message(FATAL_ERROR "Turn on the SHARED_CORE flag to make a debug build - e.g.\n build-webkit --efl --debug --cmakeargs=\"-DSHARED_CORE=ON\".\n") +endif () + +find_package(Cairo 1.10.2 REQUIRED) +find_package(Fontconfig 2.8.0 REQUIRED) +find_package(Sqlite REQUIRED) +find_package(LibXml2 2.8.0 REQUIRED) +find_package(LibXslt 1.1.7 REQUIRED) +find_package(ICU REQUIRED) +find_package(Threads REQUIRED) +find_package(JPEG REQUIRED) +find_package(PNG REQUIRED) +find_package(ZLIB REQUIRED) + +find_package(GLIB 2.36.0 REQUIRED COMPONENTS gio gobject gthread) +find_package(LibSoup 2.42.0 REQUIRED) + +set(WTF_USE_ICU_UNICODE 1) +set(WTF_USE_SOUP 1) + +add_definitions(-DWTF_USE_GLIB=1) +add_definitions(-DWTF_USE_SOUP=1) +add_definitions(-DWTF_USE_ICU_UNICODE=1) +add_definitions(-DWTF_USE_CAIRO=1) +add_definitions(-DWTF_USE_CROSS_PLATFORM_CONTEXT_MENUS=1) + +set(WTF_OUTPUT_NAME wtf_efl) +set(JavaScriptCore_OUTPUT_NAME javascriptcore_efl) +set(WebCore_OUTPUT_NAME webcore_efl) +set(WebKit_OUTPUT_NAME ewebkit) +set(WebKit2_OUTPUT_NAME ewebkit2) + +set(DATA_INSTALL_DIR "share/${WebKit_OUTPUT_NAME}-${PROJECT_VERSION_MAJOR}" CACHE PATH "Installation path for theme data") +set(THEME_BINARY_DIR ${CMAKE_BINARY_DIR}/WebCore/platform/efl/DefaultTheme) +file(MAKE_DIRECTORY ${THEME_BINARY_DIR}) + +add_definitions(-DDATA_DIR="${CMAKE_INSTALL_PREFIX}/${DATA_INSTALL_DIR}" + -DTEST_THEME_DIR="${THEME_BINARY_DIR}") + +set(VERSION_SCRIPT "-Wl,--version-script,${CMAKE_MODULE_PATH}/eflsymbols.filter") WEBKIT_OPTION_BEGIN() WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_3D_RENDERING ON) -WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_ANIMATION_API ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_ACCESSIBILITY ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_API_TESTS ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_BATTERY_STATUS ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_BLOB ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS3_TEXT ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS_DEVICE_ADAPTATION ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS_IMAGE_SET ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS_REGIONS ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS_STICKY_POSITION ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS_VARIABLES ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CUSTOM_SCHEME_HANDLER ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DATALIST_ELEMENT ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DOM4_EVENTS_CONSTRUCTOR ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DOWNLOAD_ATTRIBUTE ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DRAG_SUPPORT ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_FAST_MOBILE_SCROLLING ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_FILTERS ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_FULLSCREEN_API ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_GAMEPAD ON) -WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_GLIB_SUPPORT ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INDEXED_DATABASE ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_COLOR ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_LINK_PREFETCH ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_LLINT ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEDIA_CAPTURE ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEMORY_SAMPLER ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MHTML ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MICRODATA ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MOUSE_CURSOR_SCALE ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_NAVIGATOR_CONTENT_UTILS ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_NETSCAPE_PLUGIN_API ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_NETWORK_INFO ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_PAGE_VISIBILITY_API ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_RESOLUTION_MEDIA_QUERY ON) -WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_REGIONS ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_REQUEST_ANIMATION_FRAME ON) -WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SHADOW_DOM ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SECCOMP_FILTERS OFF) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SHARED_WORKERS ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SPELLCHECK ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_TEMPLATE_ELEMENT ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_TOUCH_EVENTS ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_USERSELECT_ALL ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_VIBRATION ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_VIDEO ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_VIDEO_TRACK ON) -WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEB_INTENTS ON) -WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEB_INTENTS_TAG ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_VIEW_MODE_CSS_MEDIA ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEB_AUDIO ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEB_TIMING ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEBGL ON) -WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WORKERS ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_XHR_TIMEOUT ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(WTF_USE_TILED_BACKING_STORE ON) # FIXME: Perhaps we need a more generic way of defining dependencies between features. # VIDEO_TRACK depends on VIDEO. -IF (NOT ENABLE_VIDEO AND ENABLE_VIDEO_TRACK) - MESSAGE(STATUS "Disabling VIDEO_TRACK since VIDEO support is disabled.") - SET(ENABLE_VIDEO_TRACK OFF) -ENDIF () +if (NOT ENABLE_VIDEO AND ENABLE_VIDEO_TRACK) + message(STATUS "Disabling VIDEO_TRACK since VIDEO support is disabled.") + set(ENABLE_VIDEO_TRACK OFF) +endif () WEBKIT_OPTION_END() -OPTION(ENABLE_ECORE_X "Enable Ecore_X specific usage (cursor, bell)" ON) -IF (ENABLE_ECORE_X) +option(ENABLE_ECORE_X "Enable Ecore_X specific usage (cursor, bell)" ON) +if (ENABLE_ECORE_X) # We need Xext.h to disable Xlib error messages when running WTR on Xvfb. # These errors are dumped on stderr and makes the test driver thinks that # the test case has failed. - FIND_PACKAGE(X11 REQUIRED) - - LIST(APPEND ECORE_ADDITIONAL_COMPONENTS X) - ADD_DEFINITIONS(-DHAVE_ECORE_X) -ENDIF () - -FIND_PACKAGE(Eina 1.7 REQUIRED) -FIND_PACKAGE(Evas 1.7 REQUIRED) -FIND_PACKAGE(Ecore 1.7 COMPONENTS Evas File Input ${ECORE_ADDITIONAL_COMPONENTS}) -FIND_PACKAGE(Edje 1.7 REQUIRED) -FIND_PACKAGE(Eet 1.7 REQUIRED) -FIND_PACKAGE(Eeze 1.7 REQUIRED) -FIND_PACKAGE(Efreet 1.7 REQUIRED) -FIND_PACKAGE(E_DBus 1.7 COMPONENTS EUKit) - -# Elementary is needed to build MiniBrowser -FIND_PACKAGE(Elementary 1.7) - -FIND_PACKAGE(Freetype 2.4.2 REQUIRED) -FIND_PACKAGE(HarfBuzz 0.9.2 REQUIRED) -ADD_DEFINITIONS(-DWTF_USE_FREETYPE=1) -ADD_DEFINITIONS(-DWTF_USE_HARFBUZZ_NG=1) - -IF (ENABLE_WEBKIT2 AND ENABLE_NETSCAPE_PLUGIN_API) - SET(ENABLE_PLUGIN_PROCESS 1) -ENDIF () - -IF (NOT ENABLE_SVG) - SET(ENABLE_SVG_FONTS 0) -ENDIF () - -IF (ENABLE_BATTERY_STATUS) - FIND_PACKAGE(DBus REQUIRED) -ENDIF () - -IF (ENABLE_VIDEO OR ENABLE_WEB_AUDIO) - SET(GSTREAMER_COMPONENTS app interfaces pbutils) - SET(WTF_USE_GSTREAMER 1) - ADD_DEFINITIONS(-DWTF_USE_GSTREAMER=1) - - IF (ENABLE_VIDEO) - LIST(APPEND GSTREAMER_COMPONENTS video) - ENDIF() - - IF (ENABLE_WEB_AUDIO) - LIST(APPEND GSTREAMER_COMPONENTS audio fft) - ADD_DEFINITIONS(-DWTF_USE_WEBAUDIO_GSTREAMER=1) - ENDIF () - - FIND_PACKAGE(GStreamer REQUIRED COMPONENTS ${GSTREAMER_COMPONENTS}) -ENDIF () - -IF (ENABLE_WEBGL OR WTF_USE_TILED_BACKING_STORE) - FIND_PACKAGE(OpenGL REQUIRED) + find_package(X11 REQUIRED) + + list(APPEND ECORE_ADDITIONAL_COMPONENTS X) + add_definitions(-DHAVE_ECORE_X) + add_definitions(-DWTF_PLATFORM_X11=1) + add_definitions(-DMOZ_X11) +endif () + +# Allow building the EFL port using EFL version 1.6+ to build on Tizen trunk +find_package(Eina 1.6 REQUIRED) +find_package(Evas 1.6 REQUIRED) +find_package(Ecore 1.6 COMPONENTS Evas File Input Imf Imf_Evas ${ECORE_ADDITIONAL_COMPONENTS}) +find_package(Edje 1.6 REQUIRED) +find_package(Eet 1.6 REQUIRED) +find_package(Eeze 1.6 REQUIRED) +find_package(Efreet 1.6 REQUIRED) +find_package(E_DBus 1.6 COMPONENTS EUKit) + +# Add Eo dependency if EFL version is 1.8 +if (${EVAS_VERSION} VERSION_EQUAL 1.8 AND ${ECORE_VERSION} VERSION_EQUAL 1.8) + find_package(Eo) + add_definitions(-DWTF_USE_EO=1) +endif () + +# Prefer and promote EFL version 1.7+ as the reference configuration +if ((${EINA_VERSION} STRLESS 1.7) OR (${EVAS_VERSION} STRLESS 1.7) OR (${ECORE_VERSION} STRLESS 1.7) OR (${EDJE_VERSION} STRLESS 1.7) OR + (${EET_VERSION} STRLESS 1.7) OR (${EEZE_VERSION} STRLESS 1.7) OR (${EFREET_VERSION} STRLESS 1.7) OR (${E_DBUS_VERSION} STRLESS 1.7)) + message("Consider updating all EFL libaries to v1.7") +endif () + +find_package(Freetype 2.4.2 REQUIRED) +find_package(HarfBuzz 0.9.2 REQUIRED) +add_definitions(-DWTF_USE_FREETYPE=1) +add_definitions(-DWTF_USE_HARFBUZZ=1) + +if (ENABLE_WEBKIT2 AND ENABLE_NETSCAPE_PLUGIN_API) + set(ENABLE_PLUGIN_PROCESS 1) +endif () + +if (NOT ENABLE_SVG) + set(ENABLE_SVG_FONTS 0) +endif () + +if (ENABLE_BATTERY_STATUS) + find_package(DBus REQUIRED) +endif () + +if (ENABLE_VIDEO OR ENABLE_WEB_AUDIO) + set(GSTREAMER_COMPONENTS app pbutils) + set(WTF_USE_GSTREAMER 1) + add_definitions(-DWTF_USE_GSTREAMER=1 -DGST_API_VERSION_1=1) + + if (ENABLE_VIDEO) + list(APPEND GSTREAMER_COMPONENTS video) + endif () + + if (ENABLE_WEB_AUDIO) + list(APPEND GSTREAMER_COMPONENTS audio fft) + add_definitions(-DWTF_USE_WEBAUDIO_GSTREAMER=1) + endif () + + find_package(GStreamer 1.0.5 REQUIRED COMPONENTS ${GSTREAMER_COMPONENTS}) +endif () + +if (WTF_USE_TILED_BACKING_STORE) + add_definitions(-DWTF_USE_ACCELERATED_COMPOSITING=1) + + add_definitions(-DWTF_USE_COORDINATED_GRAPHICS=1) + + set(WTF_USE_TEXTURE_MAPPER 1) + add_definitions(-DWTF_USE_TEXTURE_MAPPER=1) + + set(WTF_USE_3D_GRAPHICS 1) + add_definitions(-DWTF_USE_3D_GRAPHICS=1) + + set(ENABLE_3D_RENDERING 1) + add_definitions(-DENABLE_3D_RENDERING=1) +else () + # Disable 3D graphics and WEBGL if tiled backing is disabled + set(ENABLE_WEBGL 0) + set(WTF_USE_3D_GRAPHICS 0) + add_definitions(-DWTF_USE_3D_GRAPHICS=0) +endif () + +if (ENABLE_WEBGL OR WTF_USE_TILED_BACKING_STORE) + find_package(OpenGL REQUIRED) CHECK_INCLUDE_FILES("GL/glx.h" OPENGLX_FOUND) - IF (OPENGLX_FOUND) - ADD_DEFINITIONS(-DHAVE_GLX) - ENDIF() -ENDIF () - -IF (ENABLE_INSPECTOR) - SET(WEB_INSPECTOR_DIR "${DATA_INSTALL_DIR}/inspector") - ADD_DEFINITIONS(-DWEB_INSPECTOR_DIR=\"${CMAKE_BINARY_DIR}/${WEB_INSPECTOR_DIR}\") - ADD_DEFINITIONS(-DWEB_INSPECTOR_INSTALL_DIR=\"${CMAKE_INSTALL_PREFIX}/${WEB_INSPECTOR_DIR}\") -ENDIF () - -SET(CPACK_SOURCE_GENERATOR TBZ2) - -IF (WTF_USE_TILED_BACKING_STORE) - ADD_DEFINITIONS(-DWTF_USE_ACCELERATED_COMPOSITING=1) - - ADD_DEFINITIONS(-DWTF_USE_COORDINATED_GRAPHICS=1) - - SET(WTF_USE_TEXTURE_MAPPER 1) - ADD_DEFINITIONS(-DWTF_USE_TEXTURE_MAPPER=1) - - SET(WTF_USE_3D_GRAPHICS 1) - ADD_DEFINITIONS(-DWTF_USE_3D_GRAPHICS=1) - - SET(ENABLE_3D_RENDERING 1) - ADD_DEFINITIONS(-DENABLE_3D_RENDERING=1) -ENDIF() - -IF (ENABLE_WEBGL) - SET (ENABLE_WEBGL 1) - ADD_DEFINITIONS(-DWTF_USE_GRAPHICS_SURFACE=1) -ENDIF() - -IF (ENABLE_SPELLCHECK) - FIND_PACKAGE(Enchant REQUIRED) -ENDIF() - -FIND_PACKAGE(ATK REQUIRED) + if (OPENGLX_FOUND) + add_definitions(-DHAVE_GLX) + endif () + + option(ENABLE_EGL "Enable EGL Support") + + if (ENABLE_EGL) + find_package(EGL REQUIRED) + endif () + + if (EGL_FOUND) + set(WTF_USE_EGL 1) + set(USE_GRAPHICS_SURFACE 1) + add_definitions(-DWTF_USE_EGL=1) + option(ENABLE_GLES2 "Enable GLES Support") + + if (ENABLE_GLES2) + find_package(GLES REQUIRED) + endif () + + if (OPENGLES2_FOUND) + set(WTF_USE_OPENGL_ES_2 1) + add_definitions(-DWTF_USE_OPENGL_ES_2=1) + endif () + elseif (OPENGLX_FOUND) + add_definitions(-DWTF_USE_GLX=1) + + if (X11_Xcomposite_FOUND AND X11_Xrender_FOUND) + set(USE_GRAPHICS_SURFACE 1) + elseif (ENABLE_WEBGL) + # FIXME: Add support for NOT X11_Xcomposite for GLX + message(FATAL_ERROR "To use WebGL with GLX support requires X11_Xcomposite.") + endif () + endif () +endif () + +if (ENABLE_INSPECTOR) + set(WEB_INSPECTOR_DIR "${DATA_INSTALL_DIR}/inspector") + add_definitions(-DWEB_INSPECTOR_DIR=\"${CMAKE_BINARY_DIR}/${WEB_INSPECTOR_DIR}\") + add_definitions(-DWEB_INSPECTOR_INSTALL_DIR=\"${CMAKE_INSTALL_PREFIX}/${WEB_INSPECTOR_DIR}\") +endif () + +if (ENABLE_SECCOMP_FILTERS) + find_package(LibSeccomp REQUIRED) +endif () + +set(CPACK_SOURCE_GENERATOR TBZ2) + +# Optimize binary size for release builds by removing dead sections on unix/gcc +if (CMAKE_COMPILER_IS_GNUCC AND UNIX AND NOT APPLE) + set(CMAKE_C_FLAGS_RELEASE "-ffunction-sections -fdata-sections ${CMAKE_C_FLAGS_RELEASE}") + set(CMAKE_CXX_FLAGS_RELEASE "-ffunction-sections -fdata-sections ${CMAKE_CXX_FLAGS_RELEASE}") + set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "-Wl,--gc-sections ${CMAKE_SHARED_LINKER_FLAGS_RELEASE}") +endif () + +if (ENABLE_WEBGL) + set(ENABLE_WEBGL 1) + if (USE_GRAPHICS_SURFACE) + add_definitions(-DWTF_USE_GRAPHICS_SURFACE=1) + endif () +endif () + +if (ENABLE_SPELLCHECK) + find_package(Enchant REQUIRED) +endif () + +if (ENABLE_ACCESSIBILITY) + find_package(ATK 2.8.0 REQUIRED) +else () + add_definitions(-DHAVE_ACCESSIBILITY=0) +endif () + +if (ENABLE_INDEXED_DATABASE) + set(WTF_USE_LEVELDB 1) + add_definitions(-DWTF_USE_LEVELDB=1) +endif () diff --git a/Source/cmake/OptionsGTK.cmake b/Source/cmake/OptionsGTK.cmake new file mode 100644 index 000000000..62165af5e --- /dev/null +++ b/Source/cmake/OptionsGTK.cmake @@ -0,0 +1,175 @@ +include(GNUInstallDirs) + +# FIXME: We want to expose fewer options to downstream, but for now everything is public. +WEBKIT_OPTION_BEGIN() +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_3D_RENDERING ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_ACCESSIBILITY ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_API_TESTS OFF) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_BATTERY_STATUS OFF) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_BLOB ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS3_TEXT ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS_DEVICE_ADAPTATION ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS_IMAGE_SET ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS_REGIONS ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS_STICKY_POSITION ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS_VARIABLES ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CUSTOM_SCHEME_HANDLER ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DATALIST_ELEMENT ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DOWNLOAD_ATTRIBUTE ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DRAG_SUPPORT ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_FAST_MOBILE_SCROLLING ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_FILTERS ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_FULLSCREEN_API ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_GAMEPAD OFF) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INDEXED_DATABASE ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_COLOR ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_LINK_PREFETCH ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_LLINT ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEDIA_CAPTURE ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEMORY_SAMPLER ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MHTML ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MICRODATA ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_NAVIGATOR_CONTENT_UTILS ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_NETSCAPE_PLUGIN_API ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_NETWORK_INFO ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_PAGE_VISIBILITY_API ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_RESOLUTION_MEDIA_QUERY OFF) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_REQUEST_ANIMATION_FRAME ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SECCOMP_FILTERS OFF) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SHADOW_DOM OFF) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SHARED_WORKERS ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SPELLCHECK ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_TEMPLATE_ELEMENT ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_TOUCH_EVENTS OFF) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_USERSELECT_ALL ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_VIBRATION OFF) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_VIDEO ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_VIDEO_TRACK ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_VIEW_MODE_CSS_MEDIA ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEB_AUDIO OFF) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEB_TIMING ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEBGL OFF) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_XHR_TIMEOUT ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(WTF_USE_TILED_BACKING_STORE OFF) + +# FIXME: Perhaps we need a more generic way of defining dependencies between features. +# VIDEO_TRACK depends on VIDEO. +if (NOT ENABLE_VIDEO AND ENABLE_VIDEO_TRACK) + message(STATUS "Disabling VIDEO_TRACK since VIDEO support is disabled.") + set(ENABLE_VIDEO_TRACK OFF) +endif () +WEBKIT_OPTION_END() + +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}) + +set(WEBKIT_MICRO_VERSION ${PROJECT_VERSION_PATCH}) +set(WEBKIT_MINOR_VERSION ${PROJECT_VERSION_MINOR}) +set(WEBKIT_MAJOR_VERSION ${PROJECT_VERSION_MAJOR}) + +set(ENABLE_WEBCORE ON) +set(ENABLE_INSPECTOR ON) +set(ENABLE_PLUGIN_PROCESS ON) +set(ENABLE_WEBKIT OFF) +set(ENABLE_WEBKIT2 ON) + +set(WTF_USE_ICU_UNICODE 1) +set(WTF_USE_SOUP 1) + +set(WTF_OUTPUT_NAME WTFGTK) +set(JavaScriptCore_OUTPUT_NAME javascriptcoregtk) +set(WebCore_OUTPUT_NAME WebCoreGTK) +set(WebKit_OUTPUT_NAME webkitgtk-3.0) +set(WebKit2_OUTPUT_NAME webkit2gtk-3.0) +set(WebKit2_WebProcess_OUTPUT_NAME WebKitWebProcess) +set(VERSION_SCRIPT "-Wl,--version-script,${CMAKE_MODULE_PATH}/gtksymbols.filter") + +set(DATA_BUILD_DIR "${CMAKE_BINARY_DIR}/share/${WebKit_OUTPUT_NAME}") +set(DATA_INSTALL_DIR "${DATADIR}/webkitgtk-3.0") + +add_definitions(-DBUILDING_GTK__=1) +add_definitions(-DGETTEXT_PACKAGE="WebKitGTK-3.0") +add_definitions(-DDATA_DIR="${DATADIR}") +add_definitions(-DWEBKITGTK_API_VERSION_STRING="3.0") +add_definitions(-DUSER_AGENT_GTK_MAJOR_VERSION=537) +add_definitions(-DUSER_AGENT_GTK_MINOR_VERSION=30) + +# FIXME: These need to be configurable. +add_definitions(-DWTF_PLATFORM_X11=1) +add_definitions(-DMOZ_X11) + +find_package(Cairo 1.10.2 REQUIRED) +find_package(Fontconfig 2.8.0 REQUIRED) +find_package(Freetype 2.4.2 REQUIRED) +find_package(GLIB 2.33.2 REQUIRED COMPONENTS gio gobject gthread gmodule) +find_package(GTK3 3.6.0 REQUIRED) +find_package(GDK3 3.6.0 REQUIRED) +find_package(GAIL3 3.0 REQUIRED) +find_package(HarfBuzz 0.9.2 REQUIRED) +find_package(ICU REQUIRED) +find_package(JPEG REQUIRED) +find_package(LibSoup 2.40.3 REQUIRED) +find_package(LibXml2 2.8.0 REQUIRED) +find_package(LibXslt 1.1.7 REQUIRED) +find_package(PNG REQUIRED) +find_package(Sqlite REQUIRED) +find_package(Threads REQUIRED) +find_package(ZLIB REQUIRED) +find_package(Xt REQUIRED) +find_package(ATK REQUIRED) +find_package(WebP REQUIRED) +find_package(GStreamer 1.0.3 REQUIRED COMPONENTS ${GSTREAMER_COMPONENTS}) + +# We don't use find_package for GLX because it is part of -lGL, unlike EGL. +find_package(OpenGL) +check_include_files("GL/glx.h" GLX_FOUND) +find_package(EGL) + +if (EGL_FOUND) + set(WTF_USE_EGL 1) +endif () + +if (ENABLE_SPELLCHECK) + find_package(Enchant REQUIRED) +endif () + +if (NOT ENABLE_SVG) + set(ENABLE_SVG_FONTS 0) +endif () + +# Optimize binary size for release builds by removing dead sections on unix/gcc +if (CMAKE_COMPILER_IS_GNUCC AND UNIX AND NOT APPLE) + set(CMAKE_C_FLAGS_RELEASE "-ffunction-sections -fdata-sections ${CMAKE_C_FLAGS_RELEASE}") + set(CMAKE_CXX_FLAGS_RELEASE "-ffunction-sections -fdata-sections ${CMAKE_CXX_FLAGS_RELEASE}") + set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "-Wl,--gc-sections ${CMAKE_SHARED_LINKER_FLAGS_RELEASE}") +endif () + +if (${OPENGL_FOUND} AND (${GLX_FOUND} OR ${EGL_FOUND})) + set(ENABLE_WEBGL 1) + set(ENABLE_TEXTURE_MAPPER 1) + set(WTF_USE_3D_GRAPHICS 1) + + add_definitions(-DWTF_USE_OPENGL=1) + add_definitions(-DWTF_USE_ACCELERATED_COMPOSITING=1) + add_definitions(-DWTF_USE_3D_GRAPHICS=1) + add_definitions(-DWTF_USE_TEXTURE_MAPPER=1) + add_definitions(-DWTF_USE_TEXTURE_MAPPER_GL=1) + add_definitions(-DENABLE_3D_RENDERING=1) + + if (${EGL_FOUND}) + add_definitions(-DWTF_USE_EGL=1) + endif () + + if (${GLX_FOUND}) + add_definitions(-DWTF_USE_GLX=1) + endif () +endif () + +if (ENABLE_INDEXED_DATABASE) + set(WTF_USE_LEVELDB 1) + add_definitions(-DWTF_USE_LEVELDB=1) +endif () + +set(CPACK_SOURCE_GENERATOR TBZ2) diff --git a/Source/cmake/OptionsWinCE.cmake b/Source/cmake/OptionsWinCE.cmake index f6823125a..58f97a3fe 100644 --- a/Source/cmake/OptionsWinCE.cmake +++ b/Source/cmake/OptionsWinCE.cmake @@ -1,23 +1,26 @@ -INCLUDE(OptionsWindows) +include(OptionsWindows) -ADD_DEFINITIONS(-D_CE_CRT_ALLOW_WIN_MINMAX) -ADD_DEFINITIONS(-DWTF_USE_WCHAR_UNICODE=1) -ADD_DEFINITIONS(-DWTF_USE_WININET=1) -ADD_DEFINITIONS(-DWTF_CPU_ARM_TRADITIONAL -DWINCEBASIC) -ADD_DEFINITIONS(-DJS_NO_EXPORT) -ADD_DEFINITIONS(-DHAVE_ACCESSIBILITY=0) -ADD_DEFINITIONS(-DJSCCOLLECTOR_VIRTUALMEM_RESERVATION=0x200000) +set(WTF_USE_WCHAR_UNICODE 1) -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 () +add_definitions(-D_CE_CRT_ALLOW_WIN_MINMAX) +add_definitions(-DWTF_USE_WCHAR_UNICODE=1) +add_definitions(-DWTF_USE_WINGDI=1) +add_definitions(-DWTF_USE_WININET=1) +add_definitions(-DWINCEBASIC) +add_definitions(-DJS_NO_EXPORT) +add_definitions(-DHAVE_ACCESSIBILITY=0) +add_definitions(-DJSCCOLLECTOR_VIRTUALMEM_RESERVATION=0x200000) -INCLUDE_DIRECTORIES(${3RDPARTY_DIR}/ce-compat) -ADD_SUBDIRECTORY(${3RDPARTY_DIR} "${CMAKE_CURRENT_BINARY_DIR}/3rdparty") +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_OPTION_BEGIN() WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DRAG_SUPPORT OFF) diff --git a/Source/cmake/OptionsWindows.cmake b/Source/cmake/OptionsWindows.cmake index 6234b0dd3..f31a28c26 100644 --- a/Source/cmake/OptionsWindows.cmake +++ b/Source/cmake/OptionsWindows.cmake @@ -1,22 +1,17 @@ -ADD_DEFINITIONS(-DWTF_PLATFORM_WIN=1) -SET(WTF_PLATFORM_WIN 1) +add_definitions(-D_HAS_EXCEPTIONS=0 -DNOMINMAX -DUNICODE) -ADD_DEFINITIONS(-D_HAS_EXCEPTIONS=0 -DNOMINMAX -DUNICODE) +include_directories(${JAVASCRIPTCORE_DIR}/os-win32) -INCLUDE_DIRECTORIES(${JAVASCRIPTCORE_DIR}/os-win32) - -IF (MSVC) - ADD_DEFINITIONS(/WX +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) - STRING(REGEX REPLACE "/EH[a-z]+" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) # Disable C++ exceptions - STRING(REGEX REPLACE "/GR" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) # Disable RTTI - - IF (NOT MSVC_VERSION LESS 1500) - SET(CMAKE_C_FLAGS "/MP ${CMAKE_C_FLAGS}") - SET(CMAKE_CXX_FLAGS "/MP ${CMAKE_CXX_FLAGS}") - ENDIF () -ENDIF () + string(REGEX REPLACE "/EH[a-z]+" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) # Disable C++ exceptions + string(REGEX REPLACE "/GR" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) # Disable RTTI -STRING(REPLACE "/ENTRY:mainACRTStartup" "/ENTRY:WinMainCRTStartup" CMAKE_EXE_LINKER_FLAGS ${CMAKE_EXE_LINKER_FLAGS}) + if (NOT MSVC_VERSION LESS 1500) + set(CMAKE_C_FLAGS "/MP ${CMAKE_C_FLAGS}") + set(CMAKE_CXX_FLAGS "/MP ${CMAKE_CXX_FLAGS}") + endif () +endif () diff --git a/Source/cmake/WebKitFS.cmake b/Source/cmake/WebKitFS.cmake index 0a0778d2a..899eaef39 100644 --- a/Source/cmake/WebKitFS.cmake +++ b/Source/cmake/WebKitFS.cmake @@ -1,10 +1,10 @@ -FILE(MAKE_DIRECTORY ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}) -FILE(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/Source/JavaScriptCore/runtime) +file(MAKE_DIRECTORY ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}) +file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/Source/JavaScriptCore/runtime) -IF (ENABLE_WEBCORE) - FILE(MAKE_DIRECTORY ${DERIVED_SOURCES_WEBCORE_DIR}) -ENDIF () +if (ENABLE_WEBCORE) + file(MAKE_DIRECTORY ${DERIVED_SOURCES_WEBCORE_DIR}) +endif () -IF (ENABLE_WEBKIT2) - FILE(MAKE_DIRECTORY ${DERIVED_SOURCES_WEBKIT2_DIR}) -ENDIF () +if (ENABLE_WEBKIT2) + file(MAKE_DIRECTORY ${DERIVED_SOURCES_WEBKIT2_DIR}) +endif () diff --git a/Source/cmake/WebKitFeatures.cmake b/Source/cmake/WebKitFeatures.cmake index 3a0486eb2..165466afa 100644 --- a/Source/cmake/WebKitFeatures.cmake +++ b/Source/cmake/WebKitFeatures.cmake @@ -1,29 +1,32 @@ -SET(_WEBKIT_AVAILABLE_OPTIONS "") +set(_WEBKIT_AVAILABLE_OPTIONS "") -MACRO (WEBKIT_OPTION_DEFINE _name _description _initialvalue) - SET(_WEBKIT_AVAILABLE_OPTIONS_INITALVALUE_${_name} ${_initialvalue}) - SET(_WEBKIT_AVAILABLE_OPTIONS_DESCRIPTION_${_name} ${_description}) - LIST(APPEND _WEBKIT_AVAILABLE_OPTIONS ${_name}) -ENDMACRO () +macro(WEBKIT_OPTION_DEFINE _name _description _initialvalue) + set(_WEBKIT_AVAILABLE_OPTIONS_INITALVALUE_${_name} ${_initialvalue}) + set(_WEBKIT_AVAILABLE_OPTIONS_DESCRIPTION_${_name} ${_description}) + list(APPEND _WEBKIT_AVAILABLE_OPTIONS ${_name}) +endmacro() -MACRO (WEBKIT_OPTION_DEFAULT_PORT_VALUE _name _value) - SET(_WEBKIT_AVAILABLE_OPTIONS_INITALVALUE_${_name} ${_value}) -ENDMACRO () +macro(WEBKIT_OPTION_DEFAULT_PORT_VALUE _name _value) + set(_WEBKIT_AVAILABLE_OPTIONS_INITALVALUE_${_name} ${_value}) +endmacro() -MACRO (WEBKIT_OPTION_BEGIN) +macro(WEBKIT_OPTION_BEGIN) WEBKIT_OPTION_DEFINE(ENABLE_3D_RENDERING "Toggle 3D rendering support" OFF) WEBKIT_OPTION_DEFINE(ENABLE_ACCELERATED_2D_CANVAS "Toggle accelerated 2D canvas support" OFF) - WEBKIT_OPTION_DEFINE(ENABLE_ANIMATION_API "Toggle animation API support" OFF) + WEBKIT_OPTION_DEFINE(ENABLE_ACCESSIBILITY "Toggle accessibility support" OFF) WEBKIT_OPTION_DEFINE(ENABLE_API_TESTS "Enable public API unit tests" OFF) WEBKIT_OPTION_DEFINE(ENABLE_ASSEMBLER_WX_EXCLUSIVE "Toggel Assembler WX Exclusive support" OFF) WEBKIT_OPTION_DEFINE(ENABLE_BATTERY_STATUS "Toggle battery status API support" OFF) WEBKIT_OPTION_DEFINE(ENABLE_BLOB "Toggle Blob support" OFF) + WEBKIT_OPTION_DEFINE(ENABLE_CANVAS_PATH "Toggle Canvas Path support" ON) + WEBKIT_OPTION_DEFINE(ENABLE_CANVAS_PROXY "Toggle CanvasProxy support" OFF) WEBKIT_OPTION_DEFINE(ENABLE_CHANNEL_MESSAGING "Toggle MessageChannel and MessagePort support" ON) + WEBKIT_OPTION_DEFINE(ENABLE_CONTEXT_MENUS "Toggle Context Menu support" ON) WEBKIT_OPTION_DEFINE(ENABLE_CSP_NEXT "Toggle Content Security Policy 1.1 support" OFF) - WEBKIT_OPTION_DEFINE(ENABLE_CSS3_BACKGROUND "Toggle CSS3 Background support" OFF) WEBKIT_OPTION_DEFINE(ENABLE_CSS3_CONDITIONAL_RULES "Toggle CSS3 Conditional Rules support" OFF) WEBKIT_OPTION_DEFINE(ENABLE_CSS3_TEXT "Toggle CSS3 Text support" OFF) - WEBKIT_OPTION_DEFINE(ENABLE_CSS_BOX_DECORATION_BREAK "Toggle Box Decoration Break (CSS Backgrounds and Borders) support" ON) + WEBKIT_OPTION_DEFINE(ENABLE_CSS3_TEXT_LINE_BREAK "Toggle CSS3 Text Line Break support" OFF) + WEBKIT_OPTION_DEFINE(ENABLE_CSS_BOX_DECORATION_BREAK "Toggle Box Decoration break (CSS Backgrounds and Borders) support" ON) WEBKIT_OPTION_DEFINE(ENABLE_CSS_COMPOSITING "Toggle CSS COMPOSITING support" OFF) WEBKIT_OPTION_DEFINE(ENABLE_CSS_DEVICE_ADAPTATION "Toggle CSS Device Adaptation support" OFF) WEBKIT_OPTION_DEFINE(ENABLE_CSS_EXCLUSIONS "Toggle CSS Exclusion support" OFF) @@ -33,7 +36,9 @@ MACRO (WEBKIT_OPTION_BEGIN) WEBKIT_OPTION_DEFINE(ENABLE_CSS_IMAGE_SET "Toggle CSS image-set support" OFF) WEBKIT_OPTION_DEFINE(ENABLE_CSS_REGIONS "Toggle CSS regions support" OFF) WEBKIT_OPTION_DEFINE(ENABLE_CSS_SHADERS "Toggle CSS Shaders (within CSS Filters) support" OFF) + WEBKIT_OPTION_DEFINE(ENABLE_CSS_SHAPES "Toggle CSS Shapes support" OFF) WEBKIT_OPTION_DEFINE(ENABLE_CSS_STICKY_POSITION "Toggle CSS sticky position support" OFF) + WEBKIT_OPTION_DEFINE(ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED "Toggle support for unprefixed CSS animations and transforms" ON) WEBKIT_OPTION_DEFINE(ENABLE_CSS_VARIABLES "Toggle CSS Variables support" OFF) WEBKIT_OPTION_DEFINE(ENABLE_CUSTOM_SCHEME_HANDLER "Toggle Custom Scheme Handler support" OFF) WEBKIT_OPTION_DEFINE(ENABLE_DATALIST_ELEMENT "Toggle HTML5 datalist support" OFF) @@ -42,16 +47,17 @@ MACRO (WEBKIT_OPTION_BEGIN) WEBKIT_OPTION_DEFINE(ENABLE_DEVICE_ORIENTATION "Toggle DeviceOrientation support" OFF) WEBKIT_OPTION_DEFINE(ENABLE_DIALOG_ELEMENT "Toggle Dialog Element support" OFF) WEBKIT_OPTION_DEFINE(ENABLE_DIRECTORY_UPLOAD "Toggle Directory upload support" OFF) + WEBKIT_OPTION_DEFINE(ENABLE_DOM4_EVENTS_CONSTRUCTOR "Toggle DOM4 Events constructors" OFF) WEBKIT_OPTION_DEFINE(ENABLE_DOWNLOAD_ATTRIBUTE "Toggle download attribute support" OFF) WEBKIT_OPTION_DEFINE(ENABLE_DRAG_SUPPORT "Toggle Drag Support" OFF) - WEBKIT_OPTION_DEFINE(ENABLE_FAST_MOBILE_SCROLLING "Toogle Fast Mobile Scrolling support" OFF) + WEBKIT_OPTION_DEFINE(ENABLE_FAST_MOBILE_SCROLLING "Toggle Fast Mobile Scrolling support" OFF) WEBKIT_OPTION_DEFINE(ENABLE_FILE_SYSTEM "Toggle FileSystem support" OFF) WEBKIT_OPTION_DEFINE(ENABLE_FILTERS "Toggle SVG Filters support" OFF) + WEBKIT_OPTION_DEFINE(ENABLE_FONT_LOAD_EVENTS "Toggle Font Load Events support" OFF) WEBKIT_OPTION_DEFINE(ENABLE_FTPDIR "Toggle FTP directory support" ON) WEBKIT_OPTION_DEFINE(ENABLE_FULLSCREEN_API "Toggle Fullscreen API support" OFF) WEBKIT_OPTION_DEFINE(ENABLE_GAMEPAD "Toggle Gamepad support" OFF) WEBKIT_OPTION_DEFINE(ENABLE_GEOLOCATION "Toggle Geolocation support" OFF) - WEBKIT_OPTION_DEFINE(ENABLE_GLIB_SUPPORT "Toggle Glib support" OFF) WEBKIT_OPTION_DEFINE(ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING "Toggle hidden page DOM timer throttling support" OFF) WEBKIT_OPTION_DEFINE(ENABLE_HIGH_DPI_CANVAS "Toggle high-DPI canvas backing store support" OFF) WEBKIT_OPTION_DEFINE(ENABLE_ICONDATABASE "Toggle Icon database support" ON) @@ -61,7 +67,7 @@ MACRO (WEBKIT_OPTION_BEGIN) WEBKIT_OPTION_DEFINE(ENABLE_INPUT_SPEECH "Toggle Speech Input API support" OFF) WEBKIT_OPTION_DEFINE(ENABLE_INPUT_TYPE_COLOR "Toggle Color Input support" OFF) WEBKIT_OPTION_DEFINE(ENABLE_INPUT_TYPE_DATE "Toggle date type support" OFF) - WEBKIT_OPTION_DEFINE(ENABLE_INPUT_TYPE_DATETIME "Toggle datetime type support" OFF) + WEBKIT_OPTION_DEFINE(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE "Toggle broken datetime type support" OFF) WEBKIT_OPTION_DEFINE(ENABLE_INPUT_TYPE_DATETIMELOCAL "Toggle datetime-local type support" OFF) WEBKIT_OPTION_DEFINE(ENABLE_INPUT_TYPE_MONTH "Toggle month type support" OFF) WEBKIT_OPTION_DEFINE(ENABLE_INPUT_TYPE_TIME "Toggle time type support" OFF) @@ -70,11 +76,10 @@ MACRO (WEBKIT_OPTION_BEGIN) WEBKIT_OPTION_DEFINE(ENABLE_JAVASCRIPT_DEBUGGER "Toggle JavaScript Debugger/Profiler support" ON) WEBKIT_OPTION_DEFINE(ENABLE_JIT "Enable JustInTime javascript support" ON) WEBKIT_OPTION_DEFINE(ENABLE_LEGACY_NOTIFICATIONS "Toggle Legacy Desktop Notifications Support" OFF) - WEBKIT_OPTION_DEFINE(ENABLE_LEGACY_VIEWPORT_ADAPTION "Toogle legacy viewport adaption" OFF) + WEBKIT_OPTION_DEFINE(ENABLE_LEGACY_VIEWPORT_ADAPTION "Toggle legacy viewport adaption" OFF) WEBKIT_OPTION_DEFINE(ENABLE_LEGACY_VENDOR_PREFIXES "Toggle Legacy Vendor Prefix Support" ON) WEBKIT_OPTION_DEFINE(ENABLE_LEGACY_WEB_AUDIO "Toggle Legacy Web Audio support" ON) WEBKIT_OPTION_DEFINE(ENABLE_LINK_PREFETCH "Toggle pre fetching support" OFF) - WEBKIT_OPTION_DEFINE(ENABLE_LINK_PRERENDER "Toggle pre rendering support" OFF) WEBKIT_OPTION_DEFINE(ENABLE_LLINT "Enable JSC Low Level Interpreter" OFF) WEBKIT_OPTION_DEFINE(ENABLE_MATHML "Toggle MathML support" ON) WEBKIT_OPTION_DEFINE(ENABLE_MEDIA_CAPTURE "Toggle Media Capture support" OFF) @@ -85,13 +90,15 @@ MACRO (WEBKIT_OPTION_BEGIN) WEBKIT_OPTION_DEFINE(ENABLE_METER_ELEMENT "Toggle Meter Tag support" ON) WEBKIT_OPTION_DEFINE(ENABLE_MHTML "Toggle MHTML support" OFF) WEBKIT_OPTION_DEFINE(ENABLE_MICRODATA "Toggle Microdata support" OFF) - WEBKIT_OPTION_DEFINE(ENABLE_MUTATION_OBSERVERS "Toggle DOM mutation observer support" ON) + WEBKIT_OPTION_DEFINE(ENABLE_MOUSE_CURSOR_SCALE "Toggle Scaled mouse cursor support" OFF) WEBKIT_OPTION_DEFINE(ENABLE_NAVIGATOR_CONTENT_UTILS "Toggle Navigator Content Utils support" OFF) + WEBKIT_OPTION_DEFINE(ENABLE_NOSNIFF "Toggle support for 'X-Content-Type-Options: nosniff'" OFF) WEBKIT_OPTION_DEFINE(ENABLE_NETSCAPE_PLUGIN_API "Toggle Netscape Plugin support" ON) WEBKIT_OPTION_DEFINE(ENABLE_NETWORK_INFO "Toggle Network Information API support" OFF) WEBKIT_OPTION_DEFINE(ENABLE_NOTIFICATIONS "Toggle Desktop Notifications Support" OFF) WEBKIT_OPTION_DEFINE(ENABLE_ORIENTATION_EVENTS "Toggle Orientation Events support" OFF) WEBKIT_OPTION_DEFINE(ENABLE_PAGE_VISIBILITY_API "Toggle Page Visibility API support" OFF) + WEBKIT_OPTION_DEFINE(ENABLE_PERFORMANCE_TIMELINE "Toggle Performance Timeline support" OFF) WEBKIT_OPTION_DEFINE(ENABLE_PROGRESS_ELEMENT "Toggle Progress Tag support" ON) WEBKIT_OPTION_DEFINE(ENABLE_PLUGIN_PROXY_FOR_VIDEO "Toggle Plugin Proxy for Video support" OFF) WEBKIT_OPTION_DEFINE(ENABLE_PROXIMITY_EVENTS "Toggle Proximity Events support" OFF) @@ -99,77 +106,78 @@ MACRO (WEBKIT_OPTION_BEGIN) WEBKIT_OPTION_DEFINE(ENABLE_REPAINT_THROTTLING "Toggle repaint throttling support" OFF) WEBKIT_OPTION_DEFINE(ENABLE_REQUEST_ANIMATION_FRAME "Toggle requestAnimationFrame support" OFF) WEBKIT_OPTION_DEFINE(ENABLE_RESOLUTION_MEDIA_QUERY "Toggle resolution media query support" OFF) + WEBKIT_OPTION_DEFINE(ENABLE_RESOURCE_TIMING "Toggle Resource Timing support" OFF) WEBKIT_OPTION_DEFINE(ENABLE_SCRIPTED_SPEECH "Toggle Scripted Speech API support" OFF) - WEBKIT_OPTION_DEFINE(ENABLE_SHADOW_DOM "Toggle Shadow DOM support" OFF) + WEBKIT_OPTION_DEFINE(ENABLE_SECCOMP_FILTERS "Toggle Linux seccomp filters for the WebProcess support" OFF) WEBKIT_OPTION_DEFINE(ENABLE_SHARED_WORKERS "Toggle SharedWorkers support" OFF) WEBKIT_OPTION_DEFINE(ENABLE_SPELLCHECK "Toggle Spellchecking support (requires Enchant)" OFF) WEBKIT_OPTION_DEFINE(ENABLE_SQL_DATABASE "Toggle SQL Database Support" ON) WEBKIT_OPTION_DEFINE(ENABLE_STYLE_SCOPED "Toggle