diff options
Diffstat (limited to 'Source/cmake')
46 files changed, 1830 insertions, 1150 deletions
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 <rakuco@webkit.org> +# 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 <rakuco@webkit.org> +# 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 <rakuco@webkit.org> +# 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 <rakuco@webkit.org> +# 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 <https://bugs.webkit.org/show_bug.cgi?id=70913>. -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 <input> support" OFF) - WEBKIT_OPTION_DEFINE(ENABLE_INPUT_TYPE_DATETIME "Toggle datetime type <input> support" OFF) + WEBKIT_OPTION_DEFINE(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE "Toggle broken datetime type <input> support" OFF) WEBKIT_OPTION_DEFINE(ENABLE_INPUT_TYPE_DATETIMELOCAL "Toggle datetime-local type <input> support" OFF) WEBKIT_OPTION_DEFINE(ENABLE_INPUT_TYPE_MONTH "Toggle month type <input> support" OFF) WEBKIT_OPTION_DEFINE(ENABLE_INPUT_TYPE_TIME "Toggle time type <input> 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 <style scoped> support" OFF) WEBKIT_OPTION_DEFINE(ENABLE_SVG "Toggle SVG support" ON) - WEBKIT_OPTION_DEFINE(ENABLE_SVG_DOM_OBJC_BINDINGS "Toggle SVG DOM Objective-C bindings support (implies SVG support)" OFF) WEBKIT_OPTION_DEFINE(ENABLE_SVG_FONTS "Toggle SVG fonts support (imples SVG support)" ON) WEBKIT_OPTION_DEFINE(ENABLE_TEMPLATE_ELEMENT "Toggle Template support" OFF) WEBKIT_OPTION_DEFINE(ENABLE_TEXT_AUTOSIZING "Toggle Text auto sizing support" OFF) + WEBKIT_OPTION_DEFINE(ENABLE_THREADED_HTML_PARSER, "Toggle threaded HTML parser support" OFF) WEBKIT_OPTION_DEFINE(ENABLE_TOUCH_EVENTS "Toggle Touch Events support" OFF) WEBKIT_OPTION_DEFINE(ENABLE_TOUCH_SLIDER "Toggle Touch Slider support" OFF) WEBKIT_OPTION_DEFINE(ENABLE_TOUCH_ICON_LOADING "Toggle Touch Icon Loading Support" OFF) + WEBKIT_OPTION_DEFINE(ENABLE_USERSELECT_ALL "Toggle user-select:all support" OFF) + WEBKIT_OPTION_DEFINE(ENABLE_USER_TIMING "Toggle User Timing support" OFF) WEBKIT_OPTION_DEFINE(ENABLE_VIBRATION "Toggle Vibration API support" OFF) WEBKIT_OPTION_DEFINE(ENABLE_VIDEO "Toggle Video support" OFF) WEBKIT_OPTION_DEFINE(ENABLE_VIDEO_TRACK "Toggle Track support for HTML5 video" OFF) + WEBKIT_OPTION_DEFINE(ENABLE_VIEW_MODE_CSS_MEDIA "Toggle Track support for the view-mode media Feature" ON) WEBKIT_OPTION_DEFINE(ENABLE_WEB_AUDIO "Toggle Web Audio support" OFF) - WEBKIT_OPTION_DEFINE(ENABLE_WEB_INTENTS "Toggle Web Intents support" OFF) - WEBKIT_OPTION_DEFINE(ENABLE_WEB_INTENTS_TAG "Toogle HTMLIntentElement tag support" OFF) WEBKIT_OPTION_DEFINE(ENABLE_WEB_SOCKETS "Toggle Web Sockets support" ON) WEBKIT_OPTION_DEFINE(ENABLE_WEB_TIMING "Toggle Web Timing support" OFF) WEBKIT_OPTION_DEFINE(ENABLE_WEBGL "Toggle 3D canvas (WebGL) support" OFF) - WEBKIT_OPTION_DEFINE(ENABLE_WORKERS "Toggle Web Workers support" OFF) + WEBKIT_OPTION_DEFINE(ENABLE_WORKERS "Toggle Web Workers support" ON) WEBKIT_OPTION_DEFINE(ENABLE_XHR_TIMEOUT "Toggle XHR timeout support" OFF) WEBKIT_OPTION_DEFINE(ENABLE_XSLT "Toggle XSLT support" ON) WEBKIT_OPTION_DEFINE(USE_SYSTEM_MALLOC "Toggle system allocator instead of TCmalloc" OFF) WEBKIT_OPTION_DEFINE(WTF_USE_TILED_BACKING_STORE "Toggle Tiled Backing Store support" OFF) - WEBKIT_OPTION_DEFINE(WTF_USE_WTFURL "Toogle the use of WTFURL for URL parsing" OFF) -ENDMACRO () +endmacro() -MACRO (WEBKIT_OPTION_END) - FOREACH (_name ${_WEBKIT_AVAILABLE_OPTIONS}) - OPTION(${_name} "${_WEBKIT_AVAILABLE_OPTIONS_DESCRIPTION_${_name}}" ${_WEBKIT_AVAILABLE_OPTIONS_INITALVALUE_${_name}}) - ENDFOREACH () +macro(WEBKIT_OPTION_END) + foreach (_name ${_WEBKIT_AVAILABLE_OPTIONS}) + option(${_name} "${_WEBKIT_AVAILABLE_OPTIONS_DESCRIPTION_${_name}}" ${_WEBKIT_AVAILABLE_OPTIONS_INITALVALUE_${_name}}) + endforeach () - MESSAGE(STATUS "Enabled features:") + message(STATUS "Enabled features:") - SET(_MAX_FEATURE_LENGTH 0) - FOREACH (_name ${_WEBKIT_AVAILABLE_OPTIONS}) - STRING(LENGTH ${_name} _NAME_LENGTH) - IF (_NAME_LENGTH GREATER _MAX_FEATURE_LENGTH) - SET(_MAX_FEATURE_LENGTH ${_NAME_LENGTH}) - ENDIF () - ENDFOREACH () + set(_MAX_FEATURE_LENGTH 0) + foreach (_name ${_WEBKIT_AVAILABLE_OPTIONS}) + string(LENGTH ${_name} _NAME_LENGTH) + if (_NAME_LENGTH GREATER _MAX_FEATURE_LENGTH) + set(_MAX_FEATURE_LENGTH ${_NAME_LENGTH}) + endif () + endforeach () - SET(_SHOULD_PRINT_POINTS OFF) - FOREACH (_name ${_WEBKIT_AVAILABLE_OPTIONS}) - STRING(LENGTH ${_name} _NAME_LENGTH) + set(_SHOULD_PRINT_POINTS OFF) + foreach (_name ${_WEBKIT_AVAILABLE_OPTIONS}) + string(LENGTH ${_name} _NAME_LENGTH) - SET(_MESSAGE " ${_name} ") + set(_MESSAGE " ${_name} ") - IF (_SHOULD_PRINT_POINTS) - FOREACH (IGNORE RANGE ${_NAME_LENGTH} ${_MAX_FEATURE_LENGTH}) - SET(_MESSAGE "${_MESSAGE} ") - ENDFOREACH () - SET(_SHOULD_PRINT_POINTS OFF) - ELSE () - FOREACH (IGNORE RANGE ${_NAME_LENGTH} ${_MAX_FEATURE_LENGTH}) - SET(_MESSAGE "${_MESSAGE}.") - ENDFOREACH () - SET(_SHOULD_PRINT_POINTS ON) - ENDIF () + if (_SHOULD_PRINT_POINTS) + foreach (IGNORE RANGE ${_NAME_LENGTH} ${_MAX_FEATURE_LENGTH}) + set(_MESSAGE "${_MESSAGE} ") + endforeach () + set(_SHOULD_PRINT_POINTS OFF) + else () + foreach (IGNORE RANGE ${_NAME_LENGTH} ${_MAX_FEATURE_LENGTH}) + set(_MESSAGE "${_MESSAGE}.") + endforeach () + set(_SHOULD_PRINT_POINTS ON) + endif () - IF (${_name}) - LIST(APPEND FEATURE_DEFINES ${_name}) - SET(FEATURE_DEFINES_WITH_SPACE_SEPARATOR "${FEATURE_DEFINES_WITH_SPACE_SEPARATOR} ${_name}") - ENDIF () + if (${_name}) + list(APPEND FEATURE_DEFINES ${_name}) + set(FEATURE_DEFINES_WITH_SPACE_SEPARATOR "${FEATURE_DEFINES_WITH_SPACE_SEPARATOR} ${_name}") + endif () - SET(_MESSAGE "${_MESSAGE} ${_WEBKIT_AVAILABLE_OPTIONS_INITALVALUE_${_name}}") - MESSAGE(STATUS "${_MESSAGE}") - ENDFOREACH () -ENDMACRO () + set(_MESSAGE "${_MESSAGE} ${${_name}}") + message(STATUS "${_MESSAGE}") + endforeach () +endmacro() diff --git a/Source/cmake/WebKitHelpers.cmake b/Source/cmake/WebKitHelpers.cmake index 23b219b00..975d7080a 100644 --- a/Source/cmake/WebKitHelpers.cmake +++ b/Source/cmake/WebKitHelpers.cmake @@ -1,107 +1,110 @@ -INCLUDE(CMakeParseArguments) +include(CMakeParseArguments) # Sets extra compile flags for a target, depending on the compiler being used. # Currently, only GCC is supported. -MACRO(WEBKIT_SET_EXTRA_COMPILER_FLAGS _target) - SET(options ENABLE_WERROR IGNORECXX_WARNINGS) - CMAKE_PARSE_ARGUMENTS("OPTION" "${options}" "" "" ${ARGN}) - IF (CMAKE_COMPILER_IS_GNUCXX OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") - GET_TARGET_PROPERTY(OLD_COMPILE_FLAGS ${_target} COMPILE_FLAGS) - IF (${OLD_COMPILE_FLAGS} STREQUAL "OLD_COMPILE_FLAGS-NOTFOUND") - SET(OLD_COMPILE_FLAGS "") - ENDIF () - - INCLUDE(TestCXXAcceptsFlag) - CHECK_CXX_ACCEPTS_FLAG("-dumpversion" CMAKE_CXX_ACCEPTS_DUMPVERSION) - IF (CMAKE_CXX_ACCEPTS_DUMPVERSION) - EXEC_PROGRAM(${CMAKE_CXX_COMPILER} ARGS -dumpversion OUTPUT_VARIABLE COMPILER_VERSION) - ELSE () - EXEC_PROGRAM("${CMAKE_CXX_COMPILER} -E -Wp,-dM - < /dev/null | grep '#define __VERSION__' | grep -E -o '[0-9]+\\.[0-9]+\\.?[0-9]+?'" OUTPUT_VARIABLE COMPILER_VERSION) - ENDIF () - - # Disable some optimizations on buggy compiler versions - # GCC 4.5.1 does not implement -ftree-sra correctly - IF (${COMPILER_VERSION} STREQUAL "4.5.1") - SET(OLD_COMPILE_FLAGS "-fno-tree-sra ${OLD_COMPILE_FLAGS}") - ENDIF () - - IF (NOT SHARED_CORE) - SET(OLD_COMPILE_FLAGS "-fvisibility=hidden ${OLD_COMPILE_FLAGS}") - ENDIF () - - GET_TARGET_PROPERTY(TARGET_TYPE ${_target} TYPE) - IF (${TARGET_TYPE} STREQUAL "STATIC_LIBRARY") # -fPIC is automatically added to shared libraries - SET(OLD_COMPILE_FLAGS "-fPIC ${OLD_COMPILE_FLAGS}") - ENDIF () - - SET(OLD_COMPILE_FLAGS "-fno-exceptions -fno-strict-aliasing ${OLD_COMPILE_FLAGS}") - - # Enable warnings by default - IF (NOT ${OPTION_IGNORECXX_WARNINGS}) - SET(OLD_COMPILE_FLAGS "-Wall -Wextra -Wcast-align -Wformat-security -Wmissing-format-attribute -Wpointer-arith -Wundef -Wwrite-strings ${OLD_COMPILE_FLAGS}") - ENDIF () - - # Enable errors on warning - IF (OPTION_ENABLE_WERROR) - SET(OLD_COMPILE_FLAGS "-Werror -Wno-error=unused-parameter ${OLD_COMPILE_FLAGS}") - ENDIF () - - # Disable C++0x compat warnings for GCC >= 4.6.0 until we build - # cleanly with that. - IF (NOT ${OPTION_IGNORECXX_WARNINGS} AND NOT ${COMPILER_VERSION} VERSION_LESS "4.6.0") - SET(OLD_COMPILE_FLAGS "${OLD_COMPILE_FLAGS} -Wno-c++0x-compat") - ENDIF () - - SET_TARGET_PROPERTIES (${_target} PROPERTIES - COMPILE_FLAGS "${OLD_COMPILE_FLAGS}") - - UNSET(OLD_COMPILE_FLAGS) - ENDIF () -ENDMACRO() +macro(WEBKIT_SET_EXTRA_COMPILER_FLAGS _target) + set(options ENABLE_WERROR IGNORECXX_WARNINGS) + CMAKE_PARSE_ARGUMENTS("OPTION" "${options}" "" "" ${ARGN}) + if (CMAKE_COMPILER_IS_GNUCXX OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") + get_target_property(OLD_COMPILE_FLAGS ${_target} COMPILE_FLAGS) + if (${OLD_COMPILE_FLAGS} STREQUAL "OLD_COMPILE_FLAGS-NOTFOUND") + set(OLD_COMPILE_FLAGS "") + endif () + + include(TestCXXAcceptsFlag) + CHECK_CXX_ACCEPTS_FLAG("-dumpversion" CMAKE_CXX_ACCEPTS_DUMPVERSION) + if (CMAKE_CXX_ACCEPTS_DUMPVERSION) + EXEC_PROGRAM(${CMAKE_CXX_COMPILER} ARGS -dumpversion OUTPUT_VARIABLE COMPILER_VERSION) + else () + EXEC_PROGRAM("${CMAKE_CXX_COMPILER} -E -Wp,-dM - < /dev/null | grep '#define __VERSION__' | grep -E -o '[0-9]+\\.[0-9]+\\.?[0-9]+?'" OUTPUT_VARIABLE COMPILER_VERSION) + endif () + + # Disable some optimizations on buggy compiler versions + # GCC 4.5.1 does not implement -ftree-sra correctly + if (${COMPILER_VERSION} STREQUAL "4.5.1") + set(OLD_COMPILE_FLAGS "-fno-tree-sra ${OLD_COMPILE_FLAGS}") + endif () + + if (NOT SHARED_CORE) + set(OLD_COMPILE_FLAGS "-fvisibility=hidden ${OLD_COMPILE_FLAGS}") + endif () + + get_target_property(TARGET_TYPE ${_target} TYPE) + if (${TARGET_TYPE} STREQUAL "STATIC_LIBRARY") # -fPIC is automatically added to shared libraries + set(OLD_COMPILE_FLAGS "-fPIC ${OLD_COMPILE_FLAGS}") + endif () + + set(OLD_COMPILE_FLAGS "-fno-exceptions -fno-strict-aliasing ${OLD_COMPILE_FLAGS}") + + # Enable warnings by default + if (NOT ${OPTION_IGNORECXX_WARNINGS}) + set(OLD_COMPILE_FLAGS "-Wall -Wextra -Wcast-align -Wformat-security -Wmissing-format-attribute -Wpointer-arith -Wundef -Wwrite-strings ${OLD_COMPILE_FLAGS}") + endif () + + # Enable errors on warning + if (OPTION_ENABLE_WERROR) + set(OLD_COMPILE_FLAGS "-Werror -Wno-error=unused-parameter ${OLD_COMPILE_FLAGS}") + endif () + + # Disable C++0x compat warnings for GCC >= 4.6.0 until we build + # cleanly with that. + if (NOT ${OPTION_IGNORECXX_WARNINGS} AND NOT ${COMPILER_VERSION} VERSION_LESS "4.6.0") + set(OLD_COMPILE_FLAGS "${OLD_COMPILE_FLAGS} -Wno-c++0x-compat") + endif () + + if ("${_target}" MATCHES "WebKit2") + set(OLD_COMPILE_FLAGS "${OLD_COMPILE_FLAGS} -std=c++0x") + endif () + + set_target_properties(${_target} PROPERTIES + COMPILE_FLAGS "${OLD_COMPILE_FLAGS}") + + unset(OLD_COMPILE_FLAGS) + endif () +endmacro() # Append the given flag to the target property. -# Builds on top of GET_TARGET_PROPERTY() and SET_TARGET_PROPERTIES() -MACRO (ADD_TARGET_PROPERTIES _target _property _flags) - GET_TARGET_PROPERTY (_tmp ${_target} ${_property}) - IF (NOT _tmp) - SET (_tmp "") - ENDIF (NOT _tmp) +# Builds on top of get_target_property() and set_target_properties() +macro(ADD_TARGET_PROPERTIES _target _property _flags) + get_target_property(_tmp ${_target} ${_property}) + if (NOT _tmp) + set(_tmp "") + endif (NOT _tmp) - FOREACH (f ${_flags}) - SET (_tmp "${_tmp} ${f}") - ENDFOREACH (f ${_flags}) + foreach (f ${_flags}) + set(_tmp "${_tmp} ${f}") + endforeach (f ${_flags}) - SET_TARGET_PROPERTIES (${_target} PROPERTIES ${_property} ${_tmp}) - UNSET (_tmp) -ENDMACRO (ADD_TARGET_PROPERTIES _target _property _flags) + set_target_properties(${_target} PROPERTIES ${_property} ${_tmp}) + unset(_tmp) +endmacro(ADD_TARGET_PROPERTIES _target _property _flags) # Append the given dependencies to the source file -MACRO(ADD_SOURCE_DEPENDENCIES _source _deps) - GET_SOURCE_FILE_PROPERTY(_tmp ${_source} OBJECT_DEPENDS) - IF (NOT _tmp) - SET (_tmp "") - ENDIF () +macro(ADD_SOURCE_DEPENDENCIES _source _deps) + get_source_file_property(_tmp ${_source} OBJECT_DEPENDS) + if (NOT _tmp) + set(_tmp "") + endif () - FOREACH (f ${_deps}) - LIST(APPEND _tmp "${f}") - ENDFOREACH () + foreach (f ${_deps}) + list(APPEND _tmp "${f}") + endforeach () - SET_SOURCE_FILES_PROPERTIES(${_source} PROPERTIES OBJECT_DEPENDS "${_tmp}") - UNSET(_tmp) -ENDMACRO() + set_source_files_properties(${_source} PROPERTIES OBJECT_DEPENDS "${_tmp}") + unset(_tmp) +endmacro() # Append the given dependencies to the source file # This one consider the given dependencies are in ${DERIVED_SOURCES_WEBCORE_DIR} # and prepends this to every member of dependencies list -MACRO(ADD_SOURCE_WEBCORE_DERIVED_DEPENDENCIES _source _deps) - SET(_tmp "") - FOREACH (f ${_deps}) - LIST(APPEND _tmp "${DERIVED_SOURCES_WEBCORE_DIR}/${f}") - ENDFOREACH () - - ADD_SOURCE_DEPENDENCIES(${_source} ${_tmp}) - UNSET(_tmp) -ENDMACRO() - +macro(ADD_SOURCE_WEBCORE_DERIVED_DEPENDENCIES _source _deps) + set(_tmp "") + foreach (f ${_deps}) + list(APPEND _tmp "${DERIVED_SOURCES_WEBCORE_DIR}/${f}") + endforeach () + + ADD_SOURCE_DEPENDENCIES(${_source} ${_tmp}) + unset(_tmp) +endmacro() diff --git a/Source/cmake/WebKitMacros.cmake b/Source/cmake/WebKitMacros.cmake index 86e69439a..7b1f22864 100644 --- a/Source/cmake/WebKitMacros.cmake +++ b/Source/cmake/WebKitMacros.cmake @@ -1,27 +1,27 @@ -MACRO (INCLUDE_IF_EXISTS _file) - IF (EXISTS ${_file}) - MESSAGE(STATUS "Using platform-specific CMakeLists: ${_file}") - INCLUDE(${_file}) - ELSE () - MESSAGE(STATUS "Platform-specific CMakeLists not found: ${_file}") - ENDIF () -ENDMACRO () +macro(INCLUDE_IF_EXISTS _file) + if (EXISTS ${_file}) + message(STATUS "Using platform-specific CMakeLists: ${_file}") + include(${_file}) + else () + message(STATUS "Platform-specific CMakeLists not found: ${_file}") + endif () +endmacro() # Append the given dependencies to the source file -MACRO (ADD_SOURCE_DEPENDENCIES _source _deps) - SET(_tmp) - GET_SOURCE_FILE_PROPERTY(_tmp ${_source} OBJECT_DEPENDS) - IF (NOT _tmp) - SET(_tmp "") - ENDIF () +macro(ADD_SOURCE_DEPENDENCIES _source _deps) + set(_tmp) + get_source_file_property(_tmp ${_source} OBJECT_DEPENDS) + if (NOT _tmp) + set(_tmp "") + endif () - FOREACH (f ${_deps}) - LIST(APPEND _tmp "${f}") - ENDFOREACH () + foreach (f ${_deps}) + list(APPEND _tmp "${f}") + endforeach () - SET_SOURCE_FILES_PROPERTIES(${_source} PROPERTIES OBJECT_DEPENDS "${_tmp}") -ENDMACRO () + set_source_files_properties(${_source} PROPERTIES OBJECT_DEPENDS "${_tmp}") +endmacro() # Helper macro which wraps generate-bindings.pl script. @@ -34,239 +34,226 @@ ENDMACRO () # _prefix is a prefix of output files. (eg. JS - it makes JSXXX.cpp JSXXX.h from XXX.idl) # _generator is a value of --generator argument. # _supplemental_dependency_file is a value of --supplementalDependencyFile. (optional) -MACRO (GENERATE_BINDINGS _output_source _input_files _base_dir _idl_includes _features _destination _prefix _generator) - SET(BINDING_GENERATOR ${WEBCORE_DIR}/bindings/scripts/generate-bindings.pl) - - SET(_supplemental_dependency_file ${ARGN}) - IF (_supplemental_dependency_file) - SET(_supplemental_dependency --supplementalDependencyFile ${_supplemental_dependency_file}) - ENDIF () - - FOREACH (_file ${_input_files}) - GET_FILENAME_COMPONENT (_name ${_file} NAME_WE) - - ADD_CUSTOM_COMMAND( +macro(GENERATE_BINDINGS _output_source _input_files _base_dir _idl_includes _features _destination _prefix _generator _idl_attributes_file) + set(BINDING_GENERATOR ${WEBCORE_DIR}/bindings/scripts/generate-bindings.pl) + set(_args ${ARGN}) + list(LENGTH _args _argCount) + if (_argCount EQUAL 5) + list(GET _args 0 _supplemental_dependency_file) + if (_supplemental_dependency_file) + set(_supplemental_dependency --supplementalDependencyFile ${_supplemental_dependency_file}) + endif () + list(GET _args 1 _window_constructors_file) + list(GET _args 2 _workerglobalscope_constructors_file) + list(GET _args 3 _sharedworkerglobalscope_constructors_file) + list(GET _args 4 _dedicatedworkerglobalscope_constructors_file) + endif () + + foreach (_file ${_input_files}) + get_filename_component(_name ${_file} NAME_WE) + + add_custom_command( OUTPUT ${_destination}/${_prefix}${_name}.cpp ${_destination}/${_prefix}${_name}.h MAIN_DEPENDENCY ${_file} - DEPENDS ${BINDING_GENERATOR} ${SCRIPTS_BINDINGS} ${_supplemental_dependency_file} - COMMAND ${PERL_EXECUTABLE} -I${WEBCORE_DIR}/bindings/scripts ${BINDING_GENERATOR} --defines "${_features}" --generator ${_generator} ${_idl_includes} --outputDir "${_destination}" --preprocessor "${CODE_GENERATOR_PREPROCESSOR}" ${_supplemental_dependency} ${_file} + DEPENDS ${BINDING_GENERATOR} ${SCRIPTS_BINDINGS} ${_supplemental_dependency_file} ${_idl_attributes_file} ${_window_constructors_file} ${_workerglobalscope_constructors_file} ${_sharedworkerglobalscope_constructors_file} ${_dedicatedworkerglobalscope_constructors_file} + COMMAND ${PERL_EXECUTABLE} -I${WEBCORE_DIR}/bindings/scripts ${BINDING_GENERATOR} --defines "${_features}" --generator ${_generator} ${_idl_includes} --outputDir "${_destination}" --preprocessor "${CODE_GENERATOR_PREPROCESSOR}" --idlAttributesFile ${_idl_attributes_file} ${_supplemental_dependency} ${_file} WORKING_DIRECTORY ${_base_dir} VERBATIM) - LIST(APPEND ${_output_source} ${_destination}/${_prefix}${_name}.cpp) - ENDFOREACH () -ENDMACRO () + list(APPEND ${_output_source} ${_destination}/${_prefix}${_name}.cpp) + endforeach () +endmacro() -MACRO (GENERATE_FONT_NAMES _infile) - SET(NAMES_GENERATOR ${WEBCORE_DIR}/dom/make_names.pl) - SET(_arguments --fonts ${_infile}) - SET(_outputfiles ${DERIVED_SOURCES_WEBCORE_DIR}/WebKitFontFamilyNames.cpp ${DERIVED_SOURCES_WEBCORE_DIR}/WebKitFontFamilyNames.h) +macro(GENERATE_FONT_NAMES _infile) + set(NAMES_GENERATOR ${WEBCORE_DIR}/dom/make_names.pl) + set(_arguments --fonts ${_infile}) + set(_outputfiles ${DERIVED_SOURCES_WEBCORE_DIR}/WebKitFontFamilyNames.cpp ${DERIVED_SOURCES_WEBCORE_DIR}/WebKitFontFamilyNames.h) - ADD_CUSTOM_COMMAND( + add_custom_command( OUTPUT ${_outputfiles} MAIN_DEPENDENCY ${_infile} DEPENDS ${NAMES_GENERATOR} ${SCRIPTS_BINDINGS} COMMAND ${PERL_EXECUTABLE} -I${WEBCORE_DIR}/bindings/scripts ${NAMES_GENERATOR} --outputDir ${DERIVED_SOURCES_WEBCORE_DIR} ${_arguments} VERBATIM) -ENDMACRO () +endmacro() -MACRO (GENERATE_EVENT_FACTORY _infile _outfile) - SET(NAMES_GENERATOR ${WEBCORE_DIR}/dom/make_event_factory.pl) +macro(GENERATE_EVENT_FACTORY _infile _outfile) + set(NAMES_GENERATOR ${WEBCORE_DIR}/dom/make_event_factory.pl) - ADD_CUSTOM_COMMAND( + add_custom_command( OUTPUT ${DERIVED_SOURCES_WEBCORE_DIR}/${_outfile} MAIN_DEPENDENCY ${_infile} DEPENDS ${NAMES_GENERATOR} ${SCRIPTS_BINDINGS} COMMAND ${PERL_EXECUTABLE} -I${WEBCORE_DIR}/bindings/scripts ${NAMES_GENERATOR} --input ${_infile} --outputDir ${DERIVED_SOURCES_WEBCORE_DIR} VERBATIM) -ENDMACRO () +endmacro() -MACRO (GENERATE_EXCEPTION_CODE_DESCRIPTION _infile _outfile) - SET(NAMES_GENERATOR ${WEBCORE_DIR}/dom/make_dom_exceptions.pl) +macro(GENERATE_EXCEPTION_CODE_DESCRIPTION _infile _outfile) + set(NAMES_GENERATOR ${WEBCORE_DIR}/dom/make_dom_exceptions.pl) - ADD_CUSTOM_COMMAND( + add_custom_command( OUTPUT ${DERIVED_SOURCES_WEBCORE_DIR}/${_outfile} MAIN_DEPENDENCY ${_infile} DEPENDS ${NAMES_GENERATOR} ${SCRIPTS_BINDINGS} COMMAND ${PERL_EXECUTABLE} -I${WEBCORE_DIR}/bindings/scripts ${NAMES_GENERATOR} --input ${_infile} --outputDir ${DERIVED_SOURCES_WEBCORE_DIR} VERBATIM) -ENDMACRO () +endmacro() -MACRO (GENERATE_SETTINGS_MACROS _infile _outfile) - SET(NAMES_GENERATOR ${WEBCORE_DIR}/page/make_settings.pl) +macro(GENERATE_SETTINGS_MACROS _infile _outfile) + set(NAMES_GENERATOR ${WEBCORE_DIR}/page/make_settings.pl) - ADD_CUSTOM_COMMAND( - OUTPUT ${DERIVED_SOURCES_WEBCORE_DIR}/${_outfile} + add_custom_command( + OUTPUT ${DERIVED_SOURCES_WEBCORE_DIR}/${_outfile} ${DERIVED_SOURCES_WEBCORE_DIR}/InternalSettingsGenerated.h ${DERIVED_SOURCES_WEBCORE_DIR}/InternalSettingsGenerated.cpp ${DERIVED_SOURCES_WEBCORE_DIR}/InternalSettingsGenerated.idl MAIN_DEPENDENCY ${_infile} DEPENDS ${NAMES_GENERATOR} ${SCRIPTS_BINDINGS} COMMAND ${PERL_EXECUTABLE} -I${WEBCORE_DIR}/bindings/scripts ${NAMES_GENERATOR} --input ${_infile} --outputDir ${DERIVED_SOURCES_WEBCORE_DIR} VERBATIM) -ENDMACRO () - - -MACRO (GENERATE_DOM_NAMES _namespace _attrs) - SET(NAMES_GENERATOR ${WEBCORE_DIR}/dom/make_names.pl) - SET(_arguments --attrs ${_attrs}) - SET(_outputfiles ${DERIVED_SOURCES_WEBCORE_DIR}/${_namespace}Names.cpp ${DERIVED_SOURCES_WEBCORE_DIR}/${_namespace}Names.h) - SET(_extradef) - SET(_tags) - - FOREACH (f ${ARGN}) - IF (_tags) - SET(_extradef "${_extradef} ${f}") - ELSE () - SET(_tags ${f}) - ENDIF () - ENDFOREACH () - - IF (_tags) - SET(_arguments "${_arguments}" --tags ${_tags} --factory --wrapperFactory) - SET(_outputfiles "${_outputfiles}" ${DERIVED_SOURCES_WEBCORE_DIR}/${_namespace}ElementFactory.cpp ${DERIVED_SOURCES_WEBCORE_DIR}/${_namespace}ElementFactory.h ${DERIVED_SOURCES_WEBCORE_DIR}/JS${_namespace}ElementWrapperFactory.cpp ${DERIVED_SOURCES_WEBCORE_DIR}/JS${_namespace}ElementWrapperFactory.h) - ENDIF () - - IF (_extradef) - SET(_additionArguments "${_additionArguments}" --extraDefines=${_extradef}) - ENDIF () - - ADD_CUSTOM_COMMAND( +endmacro() + + +macro(GENERATE_DOM_NAMES _namespace _attrs) + set(NAMES_GENERATOR ${WEBCORE_DIR}/dom/make_names.pl) + set(_arguments --attrs ${_attrs}) + set(_outputfiles ${DERIVED_SOURCES_WEBCORE_DIR}/${_namespace}Names.cpp ${DERIVED_SOURCES_WEBCORE_DIR}/${_namespace}Names.h) + set(_extradef) + set(_tags) + + foreach (f ${ARGN}) + if (_tags) + set(_extradef "${_extradef} ${f}") + else () + set(_tags ${f}) + endif () + endforeach () + + if (_tags) + set(_arguments "${_arguments}" --tags ${_tags} --factory --wrapperFactory) + set(_outputfiles "${_outputfiles}" ${DERIVED_SOURCES_WEBCORE_DIR}/${_namespace}ElementFactory.cpp ${DERIVED_SOURCES_WEBCORE_DIR}/${_namespace}ElementFactory.h ${DERIVED_SOURCES_WEBCORE_DIR}/JS${_namespace}ElementWrapperFactory.cpp ${DERIVED_SOURCES_WEBCORE_DIR}/JS${_namespace}ElementWrapperFactory.h) + endif () + + if (_extradef) + set(_additionArguments "${_additionArguments}" --extraDefines=${_extradef}) + endif () + + add_custom_command( OUTPUT ${_outputfiles} DEPENDS ${NAMES_GENERATOR} ${SCRIPTS_BINDINGS} ${_attrs} ${_tags} COMMAND ${PERL_EXECUTABLE} -I${WEBCORE_DIR}/bindings/scripts ${NAMES_GENERATOR} --preprocessor "${CODE_GENERATOR_PREPROCESSOR_WITH_LINEMARKERS}" --outputDir ${DERIVED_SOURCES_WEBCORE_DIR} ${_arguments} ${_additionArguments} VERBATIM) -ENDMACRO () - - -# - Create hash table *.lut.h -# GENERATE_HASH_LUT(input_file output_file) -MACRO (GENERATE_HASH_LUT _input _output) - SET(HASH_LUT_GENERATOR "${JAVASCRIPTCORE_DIR}/create_hash_table") - - FOREACH (_tmp ${ARGN}) - IF (${_tmp} STREQUAL "MAIN_DEPENDENCY") - SET(_main_dependency ${_input}) - ENDIF () - ENDFOREACH () - - ADD_CUSTOM_COMMAND( - OUTPUT ${_output} - MAIN_DEPENDENCY ${_main_dependency} - DEPENDS ${_input} ${HASH_LUT_GENERATOR} - COMMAND ${PERL_EXECUTABLE} ${HASH_LUT_GENERATOR} ${_input} -i > ${_output} - VERBATIM) -ENDMACRO () +endmacro() -MACRO (GENERATE_GRAMMAR _prefix _input _output_header _output_source _features) +macro(GENERATE_GRAMMAR _prefix _input _output_header _output_source _features) # This is a workaround for winflexbison, which does not work corretly when # run in a different working directory than the installation directory. - GET_FILENAME_COMPONENT(_working_directory ${BISON_EXECUTABLE} PATH) + get_filename_component(_working_directory ${BISON_EXECUTABLE} PATH) - ADD_CUSTOM_COMMAND( + add_custom_command( OUTPUT ${_output_header} ${_output_source} MAIN_DEPENDENCY ${_input} DEPENDS ${_input} COMMAND ${PERL_EXECUTABLE} -I ${WEBCORE_DIR}/bindings/scripts ${WEBCORE_DIR}/css/makegrammar.pl --outputDir ${DERIVED_SOURCES_WEBCORE_DIR} --extraDefines "${_features}" --preprocessor "${CODE_GENERATOR_PREPROCESSOR}" --bison "${BISON_EXECUTABLE}" --symbolsPrefix ${_prefix} ${_input} WORKING_DIRECTORY ${_working_directory} VERBATIM) -ENDMACRO () +endmacro() -MACRO(MAKE_HASH_TOOLS _source) - GET_FILENAME_COMPONENT(_name ${_source} NAME_WE) +macro(MAKE_HASH_TOOLS _source) + get_filename_component(_name ${_source} NAME_WE) - IF (${_source} STREQUAL "DocTypeStrings") - SET(_hash_tools_h "${DERIVED_SOURCES_WEBCORE_DIR}/HashTools.h") - ELSE () - SET(_hash_tools_h "") - ENDIF () + if (${_source} STREQUAL "DocTypeStrings") + set(_hash_tools_h "${DERIVED_SOURCES_WEBCORE_DIR}/HashTools.h") + else () + set(_hash_tools_h "") + endif () - ADD_CUSTOM_COMMAND( + add_custom_command( OUTPUT ${DERIVED_SOURCES_WEBCORE_DIR}/${_name}.cpp ${_hash_tools_h} - MAIN_DEPENDENCY ${_source}.gperf + MAIN_DEPENDENCY ${_source}.gperf COMMAND ${PERL_EXECUTABLE} ${WEBCORE_DIR}/make-hash-tools.pl ${DERIVED_SOURCES_WEBCORE_DIR} ${_source}.gperf VERBATIM) - UNSET(_name) - UNSET(_hash_tools_h) -ENDMACRO() + unset(_name) + unset(_hash_tools_h) +endmacro() -MACRO (WEBKIT_INCLUDE_CONFIG_FILES_IF_EXISTS) +macro(WEBKIT_INCLUDE_CONFIG_FILES_IF_EXISTS) INCLUDE_IF_EXISTS(${CMAKE_CURRENT_SOURCE_DIR}/Platform${PORT}.cmake) -ENDMACRO () +endmacro() -MACRO (WEBKIT_WRAP_SOURCELIST) - FOREACH (_file ${ARGN}) - GET_FILENAME_COMPONENT(_basename ${_file} NAME_WE) - GET_FILENAME_COMPONENT(_path ${_file} PATH) +macro(WEBKIT_WRAP_SOURCELIST) + foreach (_file ${ARGN}) + get_filename_component(_basename ${_file} NAME_WE) + get_filename_component(_path ${_file} PATH) - IF (NOT _file MATCHES "${DERIVED_SOURCES_WEBCORE_DIR}") - STRING(REGEX REPLACE "/" "\\\\\\\\" _sourcegroup "${_path}") - SOURCE_GROUP("${_sourcegroup}" FILES ${_file}) - ENDIF () + if (NOT _file MATCHES "${DERIVED_SOURCES_WEBCORE_DIR}") + string(REGEX REPLACE "/" "\\\\\\\\" _sourcegroup "${_path}") + source_group("${_sourcegroup}" FILES ${_file}) + endif () - IF (WTF_PLATFORM_QT) - SET(_moc_filename ${DERIVED_SOURCES_WEBCORE_DIR}/${_basename}.moc) + if (WTF_PLATFORM_QT) + set(_moc_filename ${DERIVED_SOURCES_WEBCORE_DIR}/${_basename}.moc) - FILE(READ ${_file} _contents) + file(READ ${_file} _contents) - STRING(REGEX MATCHALL "#include[ ]+\"${_basename}\\.moc\"" _match "${_contents}") - IF (_match) + string(REGEX MATCHALL "#include[ ]+\"${_basename}\\.moc\"" _match "${_contents}") + if (_match) QT4_GENERATE_MOC(${_file} ${_moc_filename}) ADD_SOURCE_DEPENDENCIES(${_file} ${_moc_filename}) - ENDIF () - ENDIF () - ENDFOREACH () - - SOURCE_GROUP("DerivedSources" REGULAR_EXPRESSION "${DERIVED_SOURCES_WEBCORE_DIR}") -ENDMACRO () - - -MACRO (WEBKIT_CREATE_FORWARDING_HEADER _target_directory _file) - GET_FILENAME_COMPONENT(_absolute "${_file}" ABSOLUTE) - GET_FILENAME_COMPONENT(_name "${_file}" NAME) - SET(_content "#include \"${_absolute}\"\n") - SET(_filename "${_target_directory}/${_name}") - - IF (EXISTS "${_filename}") - FILE(READ "${_filename}" _old_content) - ENDIF () - - IF (NOT _old_content STREQUAL _content) - FILE(WRITE "${_filename}" "${_content}") - ENDIF () -ENDMACRO () - -MACRO (WEBKIT_CREATE_FORWARDING_HEADERS _framework) - SET(_processing_directories 0) - SET(_processing_files 0) - SET(_target_directory "${DERIVED_SOURCES_DIR}/ForwardingHeaders/${_framework}") - - FILE(GLOB _files "${_target_directory}/*.h") - FOREACH (_file ${_files}) - FILE(READ "${_file}" _content) - STRING(REGEX MATCH "^#include \"([^\"]*)\"" _matched ${_content}) - IF (_matched AND NOT EXISTS "${CMAKE_MATCH_1}") - FILE(REMOVE "${_file}") - ENDIF() - ENDFOREACH () - - FOREACH (_currentArg ${ARGN}) - IF ("${_currentArg}" STREQUAL "DIRECTORIES") - SET(_processing_directories 1) - SET(_processing_files 0) - ELSEIF ("${_currentArg}" STREQUAL "FILES") - SET(_processing_directories 0) - SET(_processing_files 1) - ELSEIF (_processing_directories) - FILE(GLOB _files "${_currentArg}/*.h") - FOREACH (_file ${_files}) + endif () + endif () + endforeach () + + source_group("DerivedSources" REGULAR_EXPRESSION "${DERIVED_SOURCES_WEBCORE_DIR}") +endmacro() + + +macro(WEBKIT_CREATE_FORWARDING_HEADER _target_directory _file) + get_filename_component(_absolute "${_file}" ABSOLUTE) + get_filename_component(_name "${_file}" NAME) + set(_content "#include \"${_absolute}\"\n") + set(_filename "${_target_directory}/${_name}") + + if (EXISTS "${_filename}") + file(READ "${_filename}" _old_content) + endif () + + if (NOT _old_content STREQUAL _content) + file(WRITE "${_filename}" "${_content}") + endif () +endmacro() + +macro(WEBKIT_CREATE_FORWARDING_HEADERS _framework) + set(_processing_directories 0) + set(_processing_files 0) + set(_target_directory "${DERIVED_SOURCES_DIR}/ForwardingHeaders/${_framework}") + + file(GLOB _files "${_target_directory}/*.h") + foreach (_file ${_files}) + file(READ "${_file}" _content) + string(REGEX MATCH "^#include \"([^\"]*)\"" _matched ${_content}) + if (_matched AND NOT EXISTS "${CMAKE_MATCH_1}") + file(REMOVE "${_file}") + endif () + endforeach () + + foreach (_currentArg ${ARGN}) + if ("${_currentArg}" STREQUAL "DIRECTORIES") + set(_processing_directories 1) + set(_processing_files 0) + elseif ("${_currentArg}" STREQUAL "FILES") + set(_processing_directories 0) + set(_processing_files 1) + elseif (_processing_directories) + file(GLOB _files "${_currentArg}/*.h") + foreach (_file ${_files}) WEBKIT_CREATE_FORWARDING_HEADER(${_target_directory} ${_file}) - ENDFOREACH () - ELSEIF (_processing_files) + endforeach () + elseif (_processing_files) WEBKIT_CREATE_FORWARDING_HEADER(${_target_directory} ${_currentArg}) - ENDIF () - ENDFOREACH () -ENDMACRO () + endif () + endforeach () +endmacro() diff --git a/Source/cmake/WebKitPackaging.cmake b/Source/cmake/WebKitPackaging.cmake index 94c96c1a0..0422d6cfc 100644 --- a/Source/cmake/WebKitPackaging.cmake +++ b/Source/cmake/WebKitPackaging.cmake @@ -17,161 +17,157 @@ # not defined before) # ----------------------------------------------------------------------------- -IF(NOT DEFINED CPACK_PACKAGE_NAME) - SET(CPACK_PACKAGE_NAME WebKit-${PORT}) -ENDIF() - -IF(NOT DEFINED CPACK_SOURCE_IGNORE_FILES) - SET(CPACK_SOURCE_IGNORE_FILES - # Version control: - "/CVS/" - "/\\\\.svn/" - "/\\\\.bzr/" - "/\\\\.hg/" - "/\\\\.git/" - "\\\\.swp$" - "\\\\.#" - "/#" - "/\\\\.gitignore$" - "/\\\\.gitattributes$" - - # SVN-only files should be ignored (site, examples...) - "/PerformanceTests/" - "/Examples/" - "/Websites/" - - # Other build systems: - # - Makefiles (.mk/Makefile) - "\\\\.mk$" - "\\\\.make$" - "Makefile" - # - Autotools (GTK) - "/autotools/" - "/configure\\\\.ac" - "/autogen\\\\.sh" - "/autom4te\\\\.cache/" - "/aclocal\\\\.m4$" - "/GNUmakefile" - "/GNUmakefile" - # - XCode (Mac) - "\\\\.xcodeproj" - "\\\\.xcconfig" - # - GYP - "\\\\.gyp" - # - QMake (Qt) - "\\\\.pri$" - "\\\\.pro$" - - # Development & Runtime created files - "~$" - "\\\\.mode" - "\\\\.pbxuser$" - "\\\\.perspective" - "\\\\.pyc$" - "\\\\.pyo$" - "/cmake-build/" - "/build/" - "/WebKitBuild/" - "/Tools/Scripts/webkitpy/thirdparty/autoinstalled/" - ) - - IF(NOT WEBKIT_CPACK_ADD_TESTS) - LIST(APPEND CPACK_SOURCE_IGNORE_FILES - "/LayoutTests/" - "/ManualTests/" - "/tests/" - ) - ENDIF(NOT WEBKIT_CPACK_ADD_TESTS) - - IF(NOT WEBKIT_CPACK_ADD_TOOLS) - LIST(APPEND CPACK_SOURCE_IGNORE_FILES - "/Tools/" - "/manual-tools/" - "/tools/" - "/PageLoadTools/" - ) - ENDIF(NOT WEBKIT_CPACK_ADD_TOOLS) - - - IF(NOT WEBKIT_CPACK_ALL_PORTS) - - # All file and directory patterns that Efl uses - SET(FILE_PATTERNS_Efl - "/cairo/" "/Cairo/" "cairo\\\\." "Cairo\\\\." - "/efl/" "/Efl/" "efl\\\\." "Efl\\\\." - "/glib/" "/Glib/" "glib\\\\." "Glib\\\\." - "/gobject/" "/Gobject/" "gobject\\\\." "Gobject\\\\." - "/icu/" "/Icu/" "icu\\\\." "Icu\\\\." - "/posix/" "/Posix/" "posix\\\\." "Posix\\\\." - "/soup/" "/Soup/" "soup\\\\." "Soup\\\\." - ) - - # File and Directory patterns that no CMake-ified port uses - SET(FILE_PATTERNS_UNKNOWN_PORTS - "/carbon/" "/Carbon/" "carbon\\\\." "Carbon\\\\." - "/cf/" "/Cf/" "cf\\\\." "Cf\\\\." - "/cg/" "/Cg/" "cg\\\\." "Cg\\\\." - "/chromium/" "/Chromium/" "chromium\\\\." "Chromium\\\\." - "/cocoa/" "/Cocoa/" "cocoa\\\\." "Cocoa\\\\." - "/Configurations/" "/Configurations/" "Configurations\\\\." "Configurations\\\\." - "/curl/" "/Curl/" "curl\\\\." "Curl\\\\." - "/gstreamer/" "/Gstreamer/" "gstreamer\\\\." "Gstreamer\\\\." - "/gtk/" "/Gtk/" "gtk\\\\." "Gtk\\\\." - "/iphone/" "/Iphone/" "iphone\\\\." "Iphone\\\\." - "/mac/" "/Mac/" "mac\\\\." "Mac\\\\." - "/opentype/" "/Opentype/" "opentype\\\\." "Opentype\\\\." - "/openvg/" "/Openvg/" "openvg\\\\." "Openvg\\\\." - "/os-win32/" "/Os-Win32/" "os-win32\\\\." "Os-Win32\\\\." - "/qscriptengine/" "/Qscriptengine/" "qscriptengine\\\\." "Qscriptengine\\\\." - "/qscriptstring/" "/Qscriptstring/" "qscriptstring\\\\." "Qscriptstring\\\\." - "/qscriptvalue/" "/Qscriptvalue/" "qscriptvalue\\\\." "Qscriptvalue\\\\." - "/qt/" "/Qt/" "qt\\\\." "Qt\\\\." - "/qt4/" "/Qt4/" "qt4\\\\." "Qt4\\\\." - "/skia/" "/Skia/" "skia\\\\." "Skia\\\\." - "/v8/" "/V8/" "v8\\\\." "V8\\\\." - "/V8/" "/V8/" "V8\\\\." "V8\\\\." - "/win/" "/Win/" "win\\\\." "Win\\\\." - "/wince/" "/Wince/" "wince\\\\." "Wince\\\\." - "/wx/" "/Wx/" "wx\\\\." "Wx\\\\." - "/wxcode/" "/Wxcode/" "wxcode\\\\." "Wxcode\\\\." - "/WebKitLibraries/" - "/English\\\\.lproj/" - "/Source/WebKit2/" - "\\\\.a$" - "\\\\.exe$" - "\\\\.mm$" - ) - - # Append all Unknown port patterns - FOREACH(_pattern ${FILE_PATTERNS_UNKNOWN_PORTS}) - LIST(FIND FILE_PATTERNS_${PORT} ${_pattern} _pattern_index) - IF(_pattern_index GREATER -1) - MESSAGE("pattern ${_pattern} declared of 'no-port' is actually used by ${PORT}") - ELSE() - LIST(APPEND CPACK_SOURCE_IGNORE_FILES ${_pattern}) - ENDIF() - ENDFOREACH() - - # Append all "other-ports" patterns - FOREACH(_port ${ALL_PORTS}) - IF(NOT ${_port} STREQUAL ${PORT}) - FOREACH(_pattern ${FILE_PATTERNS_${_port}}) - - LIST(FIND FILE_PATTERNS_${PORT} ${_pattern} _pattern_index) - IF(_pattern_index GREATER -1) - MESSAGE("pattern ${_pattern} of port ${_port} is also used by ${PORT}") - ELSE() - LIST(APPEND CPACK_SOURCE_IGNORE_FILES ${_pattern}) - ENDIF() - ENDFOREACH() - ENDIF() - ENDFOREACH() - - ENDIF(NOT WEBKIT_CPACK_ALL_PORTS) - -ENDIF(NOT DEFINED CPACK_SOURCE_IGNORE_FILES) +if (NOT DEFINED CPACK_PACKAGE_NAME) + set(CPACK_PACKAGE_NAME WebKit-${PORT}) +endif () + +if (NOT DEFINED CPACK_SOURCE_IGNORE_FILES) + set(CPACK_SOURCE_IGNORE_FILES + # Version control: + "/CVS/" + "/\\\\.svn/" + "/\\\\.bzr/" + "/\\\\.hg/" + "/\\\\.git/" + "\\\\.swp$" + "\\\\.#" + "/#" + "/\\\\.gitignore$" + "/\\\\.gitattributes$" + + # SVN-only files should be ignored (site, examples...) + "/PerformanceTests/" + "/Examples/" + "/Websites/" + + # Other build systems: + # - Makefiles (.mk/Makefile) + "\\\\.mk$" + "\\\\.make$" + "Makefile" + # - Autotools (GTK) + "/autotools/" + "/configure\\\\.ac" + "/autogen\\\\.sh" + "/autom4te\\\\.cache/" + "/aclocal\\\\.m4$" + "/GNUmakefile" + "/GNUmakefile" + # - XCode (Mac) + "\\\\.xcodeproj" + "\\\\.xcconfig" + # - GYP + "\\\\.gyp" + # - QMake (Qt) + "\\\\.pri$" + "\\\\.pro$" + + # Development & Runtime created files + "~$" + "\\\\.mode" + "\\\\.pbxuser$" + "\\\\.perspective" + "\\\\.pyc$" + "\\\\.pyo$" + "/cmake-build/" + "/build/" + "/WebKitBuild/" + "/Tools/Scripts/webkitpy/thirdparty/autoinstalled/" + ) + + if (NOT WEBKIT_CPACK_ADD_TESTS) + list(APPEND CPACK_SOURCE_IGNORE_FILES + "/LayoutTests/" + "/ManualTests/" + "/tests/" + ) + endif (NOT WEBKIT_CPACK_ADD_TESTS) + + if (NOT WEBKIT_CPACK_ADD_TOOLS) + list(APPEND CPACK_SOURCE_IGNORE_FILES + "/Tools/" + "/manual-tools/" + "/tools/" + "/PageLoadTools/" + ) + endif (NOT WEBKIT_CPACK_ADD_TOOLS) + + + if (NOT WEBKIT_CPACK_ALL_PORTS) + + # All file and directory patterns that Efl uses + set(FILE_PATTERNS_Efl + "/cairo/" "/Cairo/" "cairo\\\\." "Cairo\\\\." + "/efl/" "/Efl/" "efl\\\\." "Efl\\\\." + "/glib/" "/Glib/" "glib\\\\." "Glib\\\\." + "/gobject/" "/Gobject/" "gobject\\\\." "Gobject\\\\." + "/icu/" "/Icu/" "icu\\\\." "Icu\\\\." + "/posix/" "/Posix/" "posix\\\\." "Posix\\\\." + "/soup/" "/Soup/" "soup\\\\." "Soup\\\\." + ) + + # File and Directory patterns that no CMake-ified port uses + set(FILE_PATTERNS_UNKNOWN_PORTS + "/carbon/" "/Carbon/" "carbon\\\\." "Carbon\\\\." + "/cf/" "/Cf/" "cf\\\\." "Cf\\\\." + "/cg/" "/Cg/" "cg\\\\." "Cg\\\\." + "/chromium/" "/Chromium/" "chromium\\\\." "Chromium\\\\." + "/cocoa/" "/Cocoa/" "cocoa\\\\." "Cocoa\\\\." + "/Configurations/" "/Configurations/" "Configurations\\\\." "Configurations\\\\." + "/curl/" "/Curl/" "curl\\\\." "Curl\\\\." + "/gstreamer/" "/Gstreamer/" "gstreamer\\\\." "Gstreamer\\\\." + "/gtk/" "/Gtk/" "gtk\\\\." "Gtk\\\\." + "/iphone/" "/Iphone/" "iphone\\\\." "Iphone\\\\." + "/mac/" "/Mac/" "mac\\\\." "Mac\\\\." + "/opentype/" "/Opentype/" "opentype\\\\." "Opentype\\\\." + "/openvg/" "/Openvg/" "openvg\\\\." "Openvg\\\\." + "/os-win32/" "/Os-Win32/" "os-win32\\\\." "Os-Win32\\\\." + "/qscriptengine/" "/Qscriptengine/" "qscriptengine\\\\." "Qscriptengine\\\\." + "/qscriptstring/" "/Qscriptstring/" "qscriptstring\\\\." "Qscriptstring\\\\." + "/qscriptvalue/" "/Qscriptvalue/" "qscriptvalue\\\\." "Qscriptvalue\\\\." + "/qt/" "/Qt/" "qt\\\\." "Qt\\\\." + "/qt4/" "/Qt4/" "qt4\\\\." "Qt4\\\\." + "/win/" "/Win/" "win\\\\." "Win\\\\." + "/wince/" "/Wince/" "wince\\\\." "Wince\\\\." + "/wxcode/" "/Wxcode/" "wxcode\\\\." "Wxcode\\\\." + "/WebKitLibraries/" + "/English\\\\.lproj/" + "/Source/WebKit2/" + "\\\\.a$" + "\\\\.exe$" + "\\\\.mm$" + ) + + # Append all Unknown port patterns + foreach (_pattern ${FILE_PATTERNS_UNKNOWN_PORTS}) + list(FIND FILE_PATTERNS_${PORT} ${_pattern} _pattern_index) + if (_pattern_index GREATER -1) + message("pattern ${_pattern} declared of 'no-port' is actually used by ${PORT}") + else () + list(APPEND CPACK_SOURCE_IGNORE_FILES ${_pattern}) + endif () + endforeach () + + # Append all "other-ports" patterns + foreach (_port ${ALL_PORTS}) + if (NOT ${_port} STREQUAL ${PORT}) + foreach (_pattern ${FILE_PATTERNS_${_port}}) + + list(FIND FILE_PATTERNS_${PORT} ${_pattern} _pattern_index) + if (_pattern_index GREATER -1) + message("pattern ${_pattern} of port ${_port} is also used by ${PORT}") + else () + list(APPEND CPACK_SOURCE_IGNORE_FILES ${_pattern}) + endif () + endforeach () + endif () + endforeach () + + endif (NOT WEBKIT_CPACK_ALL_PORTS) + +endif (NOT DEFINED CPACK_SOURCE_IGNORE_FILES) # ----------------------------------------------------------------------------- # Include CPack that will define targets based on the variables defined before # ----------------------------------------------------------------------------- -INCLUDE(CPack) +include(CPack) diff --git a/Source/cmake/gtest/CMakeLists.txt b/Source/cmake/gtest/CMakeLists.txt index adf064705..56bf44782 100644 --- a/Source/cmake/gtest/CMakeLists.txt +++ b/Source/cmake/gtest/CMakeLists.txt @@ -3,15 +3,15 @@ # for our tests. The WebKit version of gtest needs access to some # headers from WTF and JSC for configuration. -INCLUDE_DIRECTORIES(${THIRDPARTY_DIR}/gtest +include_directories(${THIRDPARTY_DIR}/gtest ${THIRDPARTY_DIR}/gtest/include ${JAVASCRIPTCORE_DIR} ${WTF_DIR} ) -SET(GTEST_DIR "${THIRDPARTY_DIR}/gtest") +set(GTEST_DIR "${THIRDPARTY_DIR}/gtest") -ADD_LIBRARY(gtest SHARED +add_library(gtest SHARED ${GTEST_DIR}/src/gtest.cc ${GTEST_DIR}/src/gtest-death-test.cc ${GTEST_DIR}/src/gtest-filepath.cc @@ -21,13 +21,13 @@ ADD_LIBRARY(gtest SHARED ${GTEST_DIR}/src/gtest-typed-test.cc ) -ADD_DEFINITIONS(-DGTEST_CREATE_SHARED_LIBRARY=1) +add_definitions(-DGTEST_CREATE_SHARED_LIBRARY=1) -TARGET_LINK_LIBRARIES(gtest - ${WTF_LIBRARY_NAME} +target_link_libraries(gtest + WTF ) -IF(CMAKE_USE_PTHREADS_INIT) - TARGET_LINK_LIBRARIES(gtest ${CMAKE_THREAD_LIBS_INIT}) - ADD_DEFINITIONS(-DGTEST_HAS_PTHREAD=1) -ENDIF() +if (CMAKE_USE_PTHREADS_INIT) + target_link_libraries(gtest ${CMAKE_THREAD_LIBS_INIT}) + add_definitions(-DGTEST_HAS_PTHREAD=1) +endif () |