From 2fc2651226baac27029e38c9d6ef883fa32084db Mon Sep 17 00:00:00 2001 From: Steve Block Date: Wed, 18 May 2011 13:36:51 +0100 Subject: Merge WebKit at r78450: Initial merge by git. Change-Id: I6d3e5f1f868ec266a0aafdef66182ddc3f265dc1 --- Source/CMakeLists.txt | 132 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 Source/CMakeLists.txt (limited to 'Source/CMakeLists.txt') diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt new file mode 100644 index 0000000..13ea13c --- /dev/null +++ b/Source/CMakeLists.txt @@ -0,0 +1,132 @@ +CMAKE_MINIMUM_REQUIRED(VERSION 2.8) +PROJECT(WebKit) + +# Set a default build type if and only if user did not define one as command +# line options and he did not give custom CFLAGS or CXXFLAGS. Otherwise, flags +# from default build type would overwrite user-defined ones. +IF (NOT CMAKE_BUILD_TYPE AND NOT CMAKE_C_FLAGS AND NOT CMAKE_CXX_FLAGS) + SET(CMAKE_BUILD_TYPE Release) +ENDIF () +SET(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake") + +SET(JAVASCRIPTCORE_DIR "${CMAKE_SOURCE_DIR}/JavaScriptCore") +SET(WEBCORE_DIR "${CMAKE_SOURCE_DIR}/WebCore") +SET(WEBKIT_DIR "${CMAKE_SOURCE_DIR}/WebKit") +SET(TOOLS_DIR "${CMAKE_SOURCE_DIR}/../Tools") +SET(DERIVED_SOURCES_DIR "${CMAKE_BINARY_DIR}/DerivedSources") + +INCLUDE(WebKitMacros) +INCLUDE(WebKitFS) +INCLUDE(WebKitHelpers) +INCLUDE(WebKitFeatures) + +# ----------------------------------------------------------------------------- +# Determine which port will be built +# ----------------------------------------------------------------------------- +SET(ALL_PORTS Efl) +OPTION(PORT "choose which WebKit port to build (one of ${ALL_PORTS})" "NOPORT") + +# ----------------------------------------------------------------------------- +# Find common packages (used by all ports) +# ----------------------------------------------------------------------------- +FIND_PACKAGE(BISON REQUIRED) +FIND_PACKAGE(FLEX REQUIRED) +FIND_PACKAGE(Gperf REQUIRED) +FIND_PACKAGE(Perl REQUIRED) +FIND_PACKAGE(PythonInterp REQUIRED) + +# ----------------------------------------------------------------------------- +# Determine the target processor +# ----------------------------------------------------------------------------- +STRING(TOLOWER ${CMAKE_SYSTEM_PROCESSOR} LOWERCASE_CMAKE_SYSTEM_PROCESSOR) +IF (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "^arm") + SET(WTF_CPU_ARM 1) +ELSEIF (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "(x86_64)") + SET(WTF_CPU_X86_64 1) +ELSEIF (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "(i[3-6]86|x86)") + SET(WTF_CPU_X86 1) +ELSE () + MESSAGE(FATAL_ERROR "Unknown CPU '${CMAKE_SYSTEM_PROCESSOR}'") +ENDIF () + +# ----------------------------------------------------------------------------- +# Determine the operating system +# ----------------------------------------------------------------------------- +IF (CMAKE_SYSTEM_NAME MATCHES "Linux") + SET(WTF_OS_UNIX 1) + + IF (APPLE) + SET(WTF_OS_MAC_OS_X 1) + ENDIF () +ELSEIF (CMAKE_SYSTEM_NAME MATCHES "Windows") + SET(WTF_OS_WINDOWS 1) +ELSE () + MESSAGE(FATAL_ERROR "Unknown OS '${CMAKE_SYSTEM_NAME}'") +ENDIF () + +# ----------------------------------------------------------------------------- +# Default target names (can be overrriden in Options${PORT}.cmake file) +# ----------------------------------------------------------------------------- +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) + +# ----------------------------------------------------------------------------- +# Default library types +# ----------------------------------------------------------------------------- +OPTION(SHARED_CORE "build WTF, JavaScriptCore and WebCore as shared libraries") + +IF (SHARED_CORE) + SET(WTF_LIBRARY_TYPE SHARED) + SET(JavaScriptCore_LIBRARY_TYPE SHARED) + SET(WebCore_LIBRARY_TYPE SHARED) +ELSE () + SET(WTF_LIBRARY_TYPE STATIC) + SET(JavaScriptCore_LIBRARY_TYPE STATIC) + SET(WebCore_LIBRARY_TYPE STATIC) +ENDIF () + +SET(WebKit_LIBRARY_TYPE SHARED) + +# ----------------------------------------------------------------------------- +# Port-specific options +# ----------------------------------------------------------------------------- +INCLUDE(OptionsCommon) +INCLUDE(Options${PORT}) + +# ----------------------------------------------------------------------------- +# Define packaging +# ----------------------------------------------------------------------------- +INCLUDE(WebKitPackaging) + +# ----------------------------------------------------------------------------- +# Add module directories +# ----------------------------------------------------------------------------- +ADD_SUBDIRECTORY(JavaScriptCore) +ADD_SUBDIRECTORY(WebCore) +ADD_SUBDIRECTORY(WebKit) + +# ----------------------------------------------------------------------------- +# Add test browser if exists +# ----------------------------------------------------------------------------- +INCLUDE_IF_EXISTS(${TOOLS_DIR}/CMakeLists${PORT}.txt) + +# ----------------------------------------------------------------------------- +# Set compiler flags for all targets +# ----------------------------------------------------------------------------- +WEBKIT_SET_EXTRA_COMPILER_FLAGS(${WTF_LIBRARY_NAME}) +WEBKIT_SET_EXTRA_COMPILER_FLAGS(${JavaScriptCore_LIBRARY_NAME}) +WEBKIT_SET_EXTRA_COMPILER_FLAGS(${WebCore_LIBRARY_NAME}) +WEBKIT_SET_EXTRA_COMPILER_FLAGS(${WebKit_LIBRARY_NAME}) + +# ----------------------------------------------------------------------------- +# Create the configuration file +# ----------------------------------------------------------------------------- +CONFIGURE_FILE(cmakeconfig.h.cmake ${CMAKE_BINARY_DIR}/cmakeconfig.h @ONLY) + +# ----------------------------------------------------------------------------- +# Prints a summary of all enabled/disabled features +# ----------------------------------------------------------------------------- +WEBKIT_PRINT_FEATURES() -- cgit v1.1