2010-05-15 Leandro Pereira <leandro@profusion.mobi>
authoreric@webkit.org <eric@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 15 May 2010 13:37:59 +0000 (13:37 +0000)
committereric@webkit.org <eric@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 15 May 2010 13:37:59 +0000 (13:37 +0000)
        Reviewed by Adam Treat.

        [EFL] Add build system for the EFL port.
        http://webkit.org/b/37945

        * CMakeLists.txt: Added.
        * cmake/FindCFLite.cmake: Added.
        * cmake/FindCairo.cmake: Added.
        * cmake/FindEFL.cmake: Added.
        * cmake/FindFreetype.cmake: Added.
        * cmake/FindGDK-PixBuf.cmake: Added.
        * cmake/FindGDK.cmake: Added.
        * cmake/FindGIO.cmake: Added.
        * cmake/FindGlib.cmake: Added.
        * cmake/FindICU.cmake: Added.
        * cmake/FindLibSoup2.cmake: Added.
        * cmake/FindLibXlst.cmake: Added.
        * cmake/FindPango.cmake: Added.
        * cmake/FindSqlite.cmake: Added.
        * cmake/LibFindMacros.cmake: Added.
        * cmake/OptionsCommon.cmake: Added.
        * cmake/OptionsEfl.cmake: Added.
        * cmake/WebKitEfl.cmake: Added.
        * cmake/WebKitFS.cmake: Added.
        * cmake/WebKitFeatures.cmake: Added.
        * cmake/WebKitGenerators.cmake: Added.
        * cmake/WebKitHelpers.cmake: Added.
        * cmake/WebKitMacros.cmake: Added.
        * cmakeconfig.h.cmake: Added.
2010-05-15  Leandro Pereira  <leandro@profusion.mobi>

        Reviewed by Adam Treat.

        [EFL] Add build system for the EFL port.
        http://webkit.org/b/37945

        * CMakeLists.txt: Added.
        * CMakeListsEfl.txt: Added.
        * config.h: Add conditional to look for cmakeconfig.h.
        * jsc/CMakeLists.txt: Added.
        * jsc/CMakeListsEfl.txt: Added.
        * wtf/CMakeLists.txt: Added.
        * wtf/CMakeListsEfl.txt: Added.
2010-05-15  Leandro Pereira  <leandro@profusion.mobi>

        Reviewed by Adam Treat.

        [EFL] Add build system for the EFL port.
        http://webkit.org/b/37945

        * CMakeLists.txt: Added.
        * CMakeListsEfl.txt: Added.
        * config.h: Add conditional to look for cmakeconfig.h.
2010-05-15  Leandro Pereira  <leandro@profusion.mobi>

        Reviewed by Adam Treat.

        [EFL] Add build system for the EFL port.
        http://webkit.org/b/37945

        * CMakeLists.txt: Added.
        * CMakeListsEfl.txt: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@59537 268f45cc-cd09-0410-ab3c-d52691b4dbfc

40 files changed:
CMakeLists.txt [new file with mode: 0644]
ChangeLog
JavaScriptCore/CMakeLists.txt [new file with mode: 0644]
JavaScriptCore/CMakeListsEfl.txt [new file with mode: 0644]
JavaScriptCore/ChangeLog
JavaScriptCore/config.h
JavaScriptCore/jsc/CMakeLists.txt [new file with mode: 0644]
JavaScriptCore/jsc/CMakeListsEfl.txt [new file with mode: 0644]
JavaScriptCore/wtf/CMakeLists.txt [new file with mode: 0644]
JavaScriptCore/wtf/CMakeListsEfl.txt [new file with mode: 0644]
WebCore/CMakeLists.txt [new file with mode: 0644]
WebCore/CMakeListsEfl.txt [new file with mode: 0644]
WebCore/ChangeLog
WebCore/config.h
WebKit/CMakeLists.txt [new file with mode: 0644]
WebKit/CMakeListsEfl.txt [new file with mode: 0644]
WebKit/ChangeLog
cmake/FindCFLite.cmake [new file with mode: 0644]
cmake/FindCairo.cmake [new file with mode: 0644]
cmake/FindEFL.cmake [new file with mode: 0644]
cmake/FindFreetype.cmake [new file with mode: 0644]
cmake/FindGDK-PixBuf.cmake [new file with mode: 0644]
cmake/FindGDK.cmake [new file with mode: 0644]
cmake/FindGIO.cmake [new file with mode: 0644]
cmake/FindGlib.cmake [new file with mode: 0644]
cmake/FindICU.cmake [new file with mode: 0644]
cmake/FindLibSoup2.cmake [new file with mode: 0644]
cmake/FindLibXlst.cmake [new file with mode: 0644]
cmake/FindPango.cmake [new file with mode: 0644]
cmake/FindSqlite.cmake [new file with mode: 0644]
cmake/LibFindMacros.cmake [new file with mode: 0644]
cmake/OptionsCommon.cmake [new file with mode: 0644]
cmake/OptionsEfl.cmake [new file with mode: 0644]
cmake/WebKitEfl.cmake [new file with mode: 0644]
cmake/WebKitFS.cmake [new file with mode: 0644]
cmake/WebKitFeatures.cmake [new file with mode: 0644]
cmake/WebKitGenerators.cmake [new file with mode: 0644]
cmake/WebKitHelpers.cmake [new file with mode: 0644]
cmake/WebKitMacros.cmake [new file with mode: 0644]
cmakeconfig.h.cmake [new file with mode: 0644]

diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644 (file)
index 0000000..3748c26
--- /dev/null
@@ -0,0 +1,104 @@
+CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
+PROJECT(WebKit)
+
+SET(CMAKE_BUILD_TYPE Release)
+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(DERIVED_SOURCES_DIR "${CMAKE_BINARY_DIR}/DerivedSources")
+
+INCLUDE(WebKitMacros)
+INCLUDE(WebKitGenerators)
+INCLUDE(WebKitHelpers)
+INCLUDE(WebKitFeatures)
+
+# -----------------------------------------------------------------------------
+# Determine which port will be built
+# -----------------------------------------------------------------------------
+OPTION(PORT "choose which WebKit port to build" "NOPORT")
+
+# -----------------------------------------------------------------------------
+# Find common packages (used by all ports)
+# -----------------------------------------------------------------------------
+FIND_PACKAGE(BISON REQUIRED)
+FIND_PACKAGE(FLEX REQUIRED)
+FIND_PACKAGE(Perl REQUIRED)
+FIND_PACKAGE(PythonInterp REQUIRED)
+
+# -----------------------------------------------------------------------------
+# Determine the target processor
+# -----------------------------------------------------------------------------
+IF (CMAKE_SYSTEM_PROCESSOR MATCHES "arm")
+    SET(WTF_CPU_ARM 1)
+ELSEIF (CMAKE_SYSTEM_PROCESSOR MATCHES "(x86_64)")
+    SET(WTF_CPU_X86_64 1)
+ELSEIF (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 (can be overrriden in Options${PORT}.cmake file)
+# -----------------------------------------------------------------------------
+SET(WTF_LIBRARY_TYPE STATIC)
+SET(JavaScriptCore_LIBRARY_TYPE STATIC)
+SET(WebCore_LIBRARY_TYPE STATIC)
+SET(WebKit_LIBRARY_TYPE SHARED)
+
+# -----------------------------------------------------------------------------
+# Port-specific options
+# -----------------------------------------------------------------------------
+INCLUDE(OptionsCommon)
+INCLUDE(Options${PORT})
+
+# -----------------------------------------------------------------------------
+# Add module directories
+# -----------------------------------------------------------------------------
+ADD_SUBDIRECTORY(JavaScriptCore)
+ADD_SUBDIRECTORY(WebCore)
+ADD_SUBDIRECTORY(WebKit)
+
+# -----------------------------------------------------------------------------
+# 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()
index 1ef6a57..5403210 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,35 @@
+2010-05-15  Leandro Pereira  <leandro@profusion.mobi>
+
+        Reviewed by Adam Treat.
+
+        [EFL] Add build system for the EFL port.
+        http://webkit.org/b/37945
+
+        * CMakeLists.txt: Added.
+        * cmake/FindCFLite.cmake: Added.
+        * cmake/FindCairo.cmake: Added.
+        * cmake/FindEFL.cmake: Added.
+        * cmake/FindFreetype.cmake: Added.
+        * cmake/FindGDK-PixBuf.cmake: Added.
+        * cmake/FindGDK.cmake: Added.
+        * cmake/FindGIO.cmake: Added.
+        * cmake/FindGlib.cmake: Added.
+        * cmake/FindICU.cmake: Added.
+        * cmake/FindLibSoup2.cmake: Added.
+        * cmake/FindLibXlst.cmake: Added.
+        * cmake/FindPango.cmake: Added.
+        * cmake/FindSqlite.cmake: Added.
+        * cmake/LibFindMacros.cmake: Added.
+        * cmake/OptionsCommon.cmake: Added.
+        * cmake/OptionsEfl.cmake: Added.
+        * cmake/WebKitEfl.cmake: Added.
+        * cmake/WebKitFS.cmake: Added.
+        * cmake/WebKitFeatures.cmake: Added.
+        * cmake/WebKitGenerators.cmake: Added.
+        * cmake/WebKitHelpers.cmake: Added.
+        * cmake/WebKitMacros.cmake: Added.
+        * cmakeconfig.h.cmake: Added.
+
 2010-05-14  Simon Hausmann  <simon.hausmann@nokia.com>
 
         Rubber-stamped by Antti Koivisto.
diff --git a/JavaScriptCore/CMakeLists.txt b/JavaScriptCore/CMakeLists.txt
new file mode 100644 (file)
index 0000000..f0281e4
--- /dev/null
@@ -0,0 +1,276 @@
+SET(JavaScriptCore_INCLUDE_DIRECTORIES
+    "${CMAKE_BINARY_DIR}"
+    "${JAVASCRIPTCORE_DIR}"
+    "${JAVASCRIPTCORE_DIR}/API"
+    "${JAVASCRIPTCORE_DIR}/ForwardingHeaders"
+    "${JAVASCRIPTCORE_DIR}/assembler"
+    "${JAVASCRIPTCORE_DIR}/bytecode"
+    "${JAVASCRIPTCORE_DIR}/bytecompiler"
+    "${JAVASCRIPTCORE_DIR}/debugger"
+    "${JAVASCRIPTCORE_DIR}/interpreter"
+    "${JAVASCRIPTCORE_DIR}/jit"
+    "${JAVASCRIPTCORE_DIR}/parser"
+    "${JAVASCRIPTCORE_DIR}/pcre"
+    "${JAVASCRIPTCORE_DIR}/profiler"
+    "${JAVASCRIPTCORE_DIR}/runtime"
+    "${JAVASCRIPTCORE_DIR}/yarr"
+    "${WTF_INCLUDE_DIRECTORIES}"
+    "${CMAKE_SOURCE_DIR}"
+)
+
+SET(JavaScriptCore_SOURCES
+    API/JSBase.cpp
+    API/JSCallbackConstructor.cpp
+    API/JSCallbackFunction.cpp
+    API/JSCallbackObject.cpp
+    API/JSClassRef.cpp
+    API/JSContextRef.cpp
+    API/JSObjectRef.cpp
+    API/JSProfilerPrivate.cpp
+    API/JSStringRef.cpp
+    API/JSValueRef.cpp
+    API/JSWeakObjectMapRefPrivate.cpp
+    API/OpaqueJSString.cpp
+
+    bytecode/CodeBlock.cpp
+    bytecode/JumpTable.cpp
+    bytecode/Opcode.cpp
+    bytecode/SamplingTool.cpp
+    bytecode/StructureStubInfo.cpp
+
+    bytecompiler/BytecodeGenerator.cpp
+    bytecompiler/NodesCodegen.cpp
+
+    debugger/Debugger.cpp
+    debugger/DebuggerActivation.cpp
+    debugger/DebuggerCallFrame.cpp
+
+    interpreter/CallFrame.cpp
+    interpreter/Interpreter.cpp
+    interpreter/RegisterFile.cpp
+
+    jit/ExecutableAllocator.cpp
+    jit/ExecutableAllocatorFixedVMPool.cpp
+    jit/ExecutableAllocatorPosix.cpp
+    jit/ExecutableAllocatorSymbian.cpp
+    jit/ExecutableAllocatorWin.cpp
+    jit/JITStubs.cpp
+    jit/JITOpcodes.cpp
+    jit/JITOpcodes32_64.cpp
+    jit/JITPropertyAccess.cpp
+    jit/JITPropertyAccess32_64.cpp
+    jit/JITArithmetic.cpp
+    jit/JITCall.cpp
+    jit/JIT.cpp
+
+    parser/Lexer.cpp
+    parser/Nodes.cpp
+    parser/Parser.cpp
+    parser/ParserArena.cpp
+
+    pcre/pcre_compile.cpp
+    pcre/pcre_exec.cpp
+    pcre/pcre_tables.cpp
+    pcre/pcre_ucp_searchfuncs.cpp
+    pcre/pcre_xclass.cpp
+
+    profiler/Profile.cpp
+    profiler/ProfileGenerator.cpp
+    profiler/ProfileNode.cpp
+    profiler/Profiler.cpp
+
+    runtime/ArgList.cpp
+    runtime/Arguments.cpp
+    runtime/ArrayConstructor.cpp
+    runtime/ArrayPrototype.cpp
+    runtime/BooleanConstructor.cpp
+    runtime/BooleanObject.cpp
+    runtime/BooleanPrototype.cpp
+    runtime/CallData.cpp
+    runtime/Collector.cpp
+    runtime/CommonIdentifiers.cpp
+    runtime/Completion.cpp
+    runtime/ConstructData.cpp
+    runtime/DateConstructor.cpp
+    runtime/DateConversion.cpp
+    runtime/DateInstance.cpp
+    runtime/DatePrototype.cpp
+    runtime/Error.cpp
+    runtime/ErrorConstructor.cpp
+    runtime/ErrorInstance.cpp
+    runtime/ErrorPrototype.cpp
+    runtime/ExceptionHelpers.cpp
+    runtime/Executable.cpp
+    runtime/FunctionConstructor.cpp
+    runtime/FunctionPrototype.cpp
+    runtime/GetterSetter.cpp
+    runtime/GlobalEvalFunction.cpp
+    runtime/Identifier.cpp
+    runtime/InitializeThreading.cpp
+    runtime/InternalFunction.cpp
+    runtime/JSActivation.cpp
+    runtime/JSAPIValueWrapper.cpp
+    runtime/JSArray.cpp
+    runtime/JSByteArray.cpp
+    runtime/JSCell.cpp
+    runtime/JSFunction.cpp
+    runtime/JSGlobalData.cpp
+    runtime/JSGlobalObject.cpp
+    runtime/JSGlobalObjectFunctions.cpp
+    runtime/JSImmediate.cpp
+    runtime/JSLock.cpp
+    runtime/JSNotAnObject.cpp
+    runtime/JSNumberCell.cpp
+    runtime/JSObject.cpp
+    runtime/JSONObject.cpp
+    runtime/JSPropertyNameIterator.cpp
+    runtime/JSStaticScopeObject.cpp
+    runtime/JSString.cpp
+    runtime/JSValue.cpp
+    runtime/JSVariableObject.cpp
+    runtime/JSWrapperObject.cpp
+    runtime/JSZombie.cpp
+    runtime/LiteralParser.cpp
+    runtime/Lookup.cpp
+    runtime/MarkStack.cpp
+    runtime/MathObject.cpp
+    runtime/NativeErrorConstructor.cpp
+    runtime/NativeErrorPrototype.cpp
+    runtime/NumberConstructor.cpp
+    runtime/NumberObject.cpp
+    runtime/NumberPrototype.cpp
+    runtime/ObjectConstructor.cpp
+    runtime/ObjectPrototype.cpp
+    runtime/Operations.cpp
+    runtime/PropertyDescriptor.cpp
+    runtime/PropertyNameArray.cpp
+    runtime/PropertySlot.cpp
+    runtime/PrototypeFunction.cpp
+    runtime/RegExp.cpp
+    runtime/RegExpConstructor.cpp
+    runtime/RegExpObject.cpp
+    runtime/RegExpPrototype.cpp
+    runtime/RopeImpl.cpp
+    runtime/ScopeChain.cpp
+    runtime/SmallStrings.cpp
+    runtime/StringConstructor.cpp
+    runtime/StringObject.cpp
+    runtime/StringPrototype.cpp
+    runtime/Structure.cpp
+    runtime/StructureChain.cpp
+    runtime/TimeoutChecker.cpp
+    runtime/UString.cpp
+
+    yarr/RegexCompiler.cpp
+    yarr/RegexInterpreter.cpp
+    yarr/RegexJIT.cpp
+
+    wtf/DateMath.cpp
+)
+SET(JavaScriptCore_HEADERS )
+
+SET(JavaScriptCore_LUT_FILES
+    runtime/ArrayPrototype.cpp
+    runtime/DatePrototype.cpp
+    runtime/JSONObject.cpp
+    runtime/MathObject.cpp
+    runtime/NumberConstructor.cpp
+    runtime/RegExpConstructor.cpp
+    runtime/RegExpObject.cpp
+    runtime/StringPrototype.cpp
+)
+
+SET(JavaScriptCore_LIBRARIES
+    ${WTF_LIBRARY_NAME}
+)
+
+
+# GENERATOR 1-A: LUT creator
+FOREACH (_file ${JavaScriptCore_LUT_FILES})
+    GET_FILENAME_COMPONENT(_name ${_file} NAME_WE)
+    GENERATE_HASH_LUT(${JAVASCRIPTCORE_DIR}/${_file} ${DERIVED_SOURCES_DIR}/${_name}.lut.h)
+    LIST(APPEND JavaScriptCore_HEADERS ${DERIVED_SOURCES_DIR}/${_name}.lut.h)
+ENDFOREACH ()
+
+
+# GENERATOR 1-B: particular LUT creator (for 1 file only)
+GENERATE_HASH_LUT(${JAVASCRIPTCORE_DIR}/parser/Keywords.table ${DERIVED_SOURCES_DIR}/Lexer.lut.h MAIN_DEPENDENCY)
+LIST(APPEND JavaScriptCore_HEADERS ${DERIVED_SOURCES_DIR}/Lexer.lut.h)
+
+# GENERATOR 2: bison grammar
+ADD_CUSTOM_COMMAND(
+    OUTPUT ${DERIVED_SOURCES_DIR}/Grammar.cpp ${DERIVED_SOURCES_DIR}/Grammar.h
+    MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/parser/Grammar.y
+    COMMAND ${BISON_EXECUTABLE} -d -p jscyy ${JAVASCRIPTCORE_DIR}/parser/Grammar.y -o ${DERIVED_SOURCES_DIR}/Grammar.cpp --defines=${DERIVED_SOURCES_DIR}/Grammar.h
+    COMMENT "[BISON][JSCYY] Building parser with bison"
+    VERBATIM)
+LIST(APPEND JavaScriptCore_HEADERS ${DERIVED_SOURCES_DIR}/Grammar.h)
+LIST(APPEND JavaScriptCore_SOURCES ${DERIVED_SOURCES_DIR}/Grammar.cpp)
+
+
+# GENERATOR: "chartables.c": compile and execute the chartables generator (and add it to sources)
+IF (MSVC)
+    SET(JSC_DFTABLES_PREPROCESSOR --preprocessor=cl.exe)
+ENDIF ()
+ADD_CUSTOM_COMMAND(
+    OUTPUT ${DERIVED_SOURCES_DIR}/chartables.c
+    MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/pcre/dftables
+    COMMAND ${PERL_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/pcre/dftables ${JSC_DFTABLES_PREPROCESSOR} ${DERIVED_SOURCES_DIR}/chartables.c
+    VERBATIM)
+ADD_SOURCE_DEPENDENCIES(${JAVASCRIPTCORE_DIR}/pcre/pcre_tables.cpp ${DERIVED_SOURCES_DIR}/chartables.c)
+
+
+#GENERATOR: "RegExpJitTables.h": tables used by Yarr
+ADD_CUSTOM_COMMAND(
+    OUTPUT ${DERIVED_SOURCES_DIR}/RegExpJitTables.h
+    MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/create_regex_tables
+    COMMAND ${PYTHON_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/create_regex_tables > ${DERIVED_SOURCES_DIR}/RegExpJitTables.h
+    VERBATIM)
+ADD_SOURCE_DEPENDENCIES(${JAVASCRIPTCORE_DIR}/yarr/RegexCompiler.cpp ${DERIVED_SOURCES_DIR}/RegExpJitTables.h)
+
+
+
+IF (WTF_CPU_ARM)
+    LIST(APPEND JavaScriptCore_SOURCES
+        assembler/ARMAssembler.cpp
+        assembler/MacroAssemblerARM.cpp
+    )
+ELSEIF (WTF_CPU_MIPS)
+ELSEIF (WTF_CPU_X86)
+ELSEIF (WTF_CPU_X86_64)
+ELSE ()
+    MESSAGE(FATAL_ERROR "Unknown CPU")
+ENDIF ()
+
+
+INCLUDE_IF_EXISTS(${JAVASCRIPTCORE_DIR}/CMakeLists${PORT}.txt)
+
+
+# Declare source groups for Visual Studio folders
+SOURCE_GROUP(API "API/")
+SOURCE_GROUP(assembler "assembler/")
+SOURCE_GROUP(bytecode "bytecode/")
+SOURCE_GROUP(bytecompiler "bytecompiler/")
+SOURCE_GROUP(debugger "debugger/")
+SOURCE_GROUP(bytecode "bytecode/")
+SOURCE_GROUP(interpreter "interpreter/")
+SOURCE_GROUP(jit "jit/")
+SOURCE_GROUP(parser "parser/")
+SOURCE_GROUP(pcre "pcre/")
+SOURCE_GROUP(profiler "profiler/")
+SOURCE_GROUP(runtime "runtime/")
+SOURCE_GROUP(yarr "yarr/")
+SOURCE_GROUP(wtf "wtf/")
+
+ADD_SUBDIRECTORY(wtf)
+ADD_SUBDIRECTORY(jsc)
+
+WEBKIT_WRAP_SOURCELIST(${JavaScriptCore_SOURCES})
+INCLUDE_DIRECTORIES(${JavaScriptCore_INCLUDE_DIRECTORIES})
+ADD_DEFINITIONS(-DBUILDING_JavaScriptCore)
+ADD_LIBRARY(${JavaScriptCore_LIBRARY_NAME} ${JavaScriptCore_LIBRARY_TYPE} ${JavaScriptCore_HEADERS} ${JavaScriptCore_SOURCES})
+TARGET_LINK_LIBRARIES(${JavaScriptCore_LIBRARY_NAME} ${JavaScriptCore_LIBRARIES})
+ADD_TARGET_PROPERTIES(${JavaScriptCore_LIBRARY_NAME} LINK_FLAGS ${JavaScriptCore_LINK_FLAGS})
+
+INSTALL(TARGETS ${JavaScriptCore_LIBRARY_NAME} DESTINATION lib)
+
diff --git a/JavaScriptCore/CMakeListsEfl.txt b/JavaScriptCore/CMakeListsEfl.txt
new file mode 100644 (file)
index 0000000..aca73a8
--- /dev/null
@@ -0,0 +1,11 @@
+LIST(APPEND JavaScriptCore_SOURCES
+    runtime/MarkStackPosix.cpp
+)
+
+LIST(APPEND JavaScriptCore_LIBRARIES
+    ${ICU_I18N_LIBRARIES}
+)
+
+LIST(APPEND JavaScriptCore_LINK_FLAGS
+    ${ECORE_LDFLAGS}
+)
\ No newline at end of file
index b6a0ba7..67aa7f9 100644 (file)
@@ -1,3 +1,18 @@
+2010-05-15  Leandro Pereira  <leandro@profusion.mobi>
+
+        Reviewed by Adam Treat.
+
+        [EFL] Add build system for the EFL port.
+        http://webkit.org/b/37945
+
+        * CMakeLists.txt: Added.
+        * CMakeListsEfl.txt: Added.
+        * config.h: Add conditional to look for cmakeconfig.h.
+        * jsc/CMakeLists.txt: Added.
+        * jsc/CMakeListsEfl.txt: Added.
+        * wtf/CMakeLists.txt: Added.
+        * wtf/CMakeListsEfl.txt: Added.
+
 2010-05-15  Chao-ying Fu  <fu@mips.com>
 
         Reviewed by Oliver Hunt.
index 9810885..a2b6285 100644 (file)
  */
 
 #if defined(HAVE_CONFIG_H) && HAVE_CONFIG_H
+#ifdef BUILDING_WITH_CMAKE
+#include "cmakeconfig.h"
+#else
 #include "autotoolsconfig.h"
 #endif
+#endif
 
 #include <wtf/Platform.h>
 
diff --git a/JavaScriptCore/jsc/CMakeLists.txt b/JavaScriptCore/jsc/CMakeLists.txt
new file mode 100644 (file)
index 0000000..cc39e14
--- /dev/null
@@ -0,0 +1,21 @@
+SET(JSC_HEADERS
+)
+
+SET(JSC_SOURCES
+    ../jsc.cpp
+)
+
+SET(JSC_LIBRARIES
+    ${JavaScriptCore_LIBRARY_NAME}
+)
+
+
+SET(JSC_PORT_FLAGS )
+INCLUDE_IF_EXISTS(${JAVASCRIPTCORE_DIR}/jsc/CMakeLists${PORT}.txt)
+
+
+WEBKIT_WRAP_SOURCELIST(${JSC_SOURCES})
+INCLUDE_DIRECTORIES(./ ${JavaScriptCore_INCLUDE_DIRECTORIES})
+ADD_EXECUTABLE(${JSC_EXECUTABLE_NAME} ${JSC_HEADERS} ${JSC_SOURCES})
+TARGET_LINK_LIBRARIES(${JSC_EXECUTABLE_NAME} ${JSC_LIBRARIES})
+ADD_TARGET_PROPERTIES(${JSC_EXECUTABLE_NAME} LINK_FLAGS ${JSC_LINK_FLAGS})
diff --git a/JavaScriptCore/jsc/CMakeListsEfl.txt b/JavaScriptCore/jsc/CMakeListsEfl.txt
new file mode 100644 (file)
index 0000000..ab1a013
--- /dev/null
@@ -0,0 +1,3 @@
+LIST(APPEND JSC_LINK_FLAGS
+    ${ECORE_LDFLAGS}
+)
diff --git a/JavaScriptCore/wtf/CMakeLists.txt b/JavaScriptCore/wtf/CMakeLists.txt
new file mode 100644 (file)
index 0000000..f4d90ce
--- /dev/null
@@ -0,0 +1,41 @@
+SET(WTF_SOURCES
+    Assertions.cpp
+    ByteArray.cpp
+    CurrentTime.cpp
+    FastMalloc.cpp
+    HashTable.cpp
+    MainThread.cpp
+    RandomNumber.cpp
+    RefCountedLeakCounter.cpp
+    StringExtras.cpp
+    Threading.cpp
+    TypeTraits.cpp
+    WTFThreadData.cpp
+    dtoa.cpp
+
+    text/AtomicString.cpp
+    text/CString.cpp
+    text/StringImpl.cpp
+    text/StringStatics.cpp
+    text/WTFString.cpp
+
+    unicode/UTF8.cpp
+)
+
+SET(WTF_LIBRARIES
+)
+
+SET(WTF_PORT_FLAGS )
+INCLUDE_IF_EXISTS(${JAVASCRIPTCORE_DIR}/wtf/CMakeLists${PORT}.txt)
+
+LIST(APPEND WTF_INCLUDE_DIRECTORIES
+    "${CMAKE_BINARY_DIR}"
+)
+
+WEBKIT_WRAP_SOURCELIST(${WTF_SOURCES})
+INCLUDE_DIRECTORIES(${WTF_INCLUDE_DIRECTORIES})
+ADD_DEFINITIONS(-DBUILDING_WTF)
+ADD_LIBRARY(${WTF_LIBRARY_NAME} ${WTF_LIBRARY_TYPE} ${WTF_SOURCES})
+TARGET_LINK_LIBRARIES(${WTF_LIBRARY_NAME} ${WTF_LIBRARIES})
+
+ADD_TARGET_PROPERTIES(${WTF_LIBRARY_NAME} LINK_FLAGS ${WTF_LINK_FLAGS})
diff --git a/JavaScriptCore/wtf/CMakeListsEfl.txt b/JavaScriptCore/wtf/CMakeListsEfl.txt
new file mode 100644 (file)
index 0000000..3e128be
--- /dev/null
@@ -0,0 +1,27 @@
+ADD_DEFINITIONS(-DUSE_SYSTEM_MALLOC=1)
+
+LIST(APPEND WTF_SOURCES
+    efl/MainThreadEfl.cpp
+
+    gobject/GOwnPtr.cpp
+    gobject/GRefPtr.cpp
+
+    ThreadIdentifierDataPthreads.cpp
+    ThreadingPthreads.cpp
+
+    unicode/icu/CollatorICU.cpp
+)
+
+LIST(APPEND WTF_LIBRARIES
+    pthread
+    ${ICU_LIBRARIES}
+)
+
+LIST(APPEND WTF_LINK_FLAGS
+    ${ECORE_LDFLAGS}
+)
+
+LIST(APPEND WTF_INCLUDE_DIRECTORIES
+    ${ECORE_INCLUDE_DIRS}
+    ${JAVASCRIPTCORE_DIR}/wtf/unicode/
+)
diff --git a/WebCore/CMakeLists.txt b/WebCore/CMakeLists.txt
new file mode 100644 (file)
index 0000000..1a3220f
--- /dev/null
@@ -0,0 +1,1695 @@
+SET(WebCore_INCLUDE_DIRECTORIES
+    "${WEBCORE_DIR}"
+    "${WEBCORE_DIR}/accessibility"
+    "${WEBCORE_DIR}/bindings/js"
+    "${WEBCORE_DIR}/bridge"
+    "${WEBCORE_DIR}/bridge/c"
+    "${WEBCORE_DIR}/bridge/jni/jsc"
+    "${WEBCORE_DIR}/bridge/jsc"
+    "${WEBCORE_DIR}/css"
+    "${WEBCORE_DIR}/dom"
+    "${WEBCORE_DIR}/dom/default"
+    "${WEBCORE_DIR}/editing"
+    "${WEBCORE_DIR}/history"
+    "${WEBCORE_DIR}/html"
+    "${WEBCORE_DIR}/html/canvas"
+    "${WEBCORE_DIR}/inspector"
+    "${WEBCORE_DIR}/loader"
+    "${WEBCORE_DIR}/loader/appcache"
+    "${WEBCORE_DIR}/loader/archive"
+    "${WEBCORE_DIR}/loader/icon"
+    "${WEBCORE_DIR}/notifications"
+    "${WEBCORE_DIR}/page"
+    "${WEBCORE_DIR}/page/animation"
+    "${WEBCORE_DIR}/platform"
+    "${WEBCORE_DIR}/platform/animation"
+    "${WEBCORE_DIR}/platform/graphics"
+    "${WEBCORE_DIR}/platform/graphics/filters"
+    "${WEBCORE_DIR}/platform/graphics/transforms"
+    "${WEBCORE_DIR}/platform/image-decoders"
+    "${WEBCORE_DIR}/platform/image-decoders/bmp"
+    "${WEBCORE_DIR}/platform/image-decoders/gif"
+    "${WEBCORE_DIR}/platform/image-decoders/ico"
+    "${WEBCORE_DIR}/platform/image-decoders/jpeg"
+    "${WEBCORE_DIR}/platform/image-decoders/png"
+    "${WEBCORE_DIR}/platform/mock"
+    "${WEBCORE_DIR}/platform/network"
+    "${WEBCORE_DIR}/platform/sql"
+    "${WEBCORE_DIR}/platform/text"
+    "${WEBCORE_DIR}/plugins"
+    "${WEBCORE_DIR}/rendering"
+    "${WEBCORE_DIR}/rendering/style"
+    "${WEBCORE_DIR}/storage"
+    "${WEBCORE_DIR}/svg"
+    "${WEBCORE_DIR}/svg/animation"
+    "${WEBCORE_DIR}/svg/graphics"
+    "${WEBCORE_DIR}/svg/graphics/filters"
+    "${WEBCORE_DIR}/workers"
+    "${WEBCORE_DIR}/xml"
+    "${JAVASCRIPTCORE_DIR}"
+    "${JAVASCRIPTCORE_DIR}/ForwardingHeaders"
+    "${JAVASCRIPTCORE_DIR}/API"
+    "${JAVASCRIPTCORE_DIR}/assembler"
+    "${JAVASCRIPTCORE_DIR}/bytecode"
+    "${JAVASCRIPTCORE_DIR}/bytecompiler"
+    "${JAVASCRIPTCORE_DIR}/debugger"
+    "${JAVASCRIPTCORE_DIR}/interpreter"
+    "${JAVASCRIPTCORE_DIR}/jit"
+    "${JAVASCRIPTCORE_DIR}/parser"
+    "${JAVASCRIPTCORE_DIR}/pcre"
+    "${JAVASCRIPTCORE_DIR}/profiler"
+    "${JAVASCRIPTCORE_DIR}/runtime"
+    "${JAVASCRIPTCORE_DIR}/wtf"
+    "${JAVASCRIPTCORE_DIR}/wtf/unicode"
+    "${DERIVED_SOURCES_DIR}"
+    "${CMAKE_SOURCE_DIR}"
+    "${CMAKE_BINARY_DIR}"
+)
+
+SET(WebCore_IDL_INCLUDES
+    bindings/js
+    css
+    dom
+    html
+    html/canvas
+    inspector
+    loader/appcache
+    page
+    plugins
+    storage
+    svg
+    workers
+    xml
+)
+
+SET(WebCore_IDL_PURE_FILES
+    svg/ElementTimeControl.idl
+    svg/SVGAnimatedPathData.idl
+    svg/SVGAnimatedPoints.idl
+    svg/SVGExternalResourcesRequired.idl
+    svg/SVGFilterPrimitiveStandardAttributes.idl
+    svg/SVGFitToViewBox.idl
+    svg/SVGLangSpace.idl
+    svg/SVGLocatable.idl
+    svg/SVGStylable.idl
+    svg/SVGTests.idl
+    svg/SVGTransformable.idl
+    svg/SVGURIReference.idl
+    svg/SVGViewSpec.idl
+    svg/SVGZoomAndPan.idl
+)
+
+SET(WebCore_IDL_FILES
+    css/CSSCharsetRule.idl
+    css/CSSFontFaceRule.idl
+    css/CSSImportRule.idl
+    css/CSSMediaRule.idl
+    css/CSSPageRule.idl
+    css/CSSPrimitiveValue.idl
+    css/CSSRule.idl
+    css/CSSRuleList.idl
+    css/CSSStyleDeclaration.idl
+    css/CSSStyleRule.idl
+    css/CSSStyleSheet.idl
+    css/CSSValue.idl
+    css/CSSValueList.idl
+    css/CSSVariablesDeclaration.idl
+    css/CSSVariablesRule.idl
+    css/Counter.idl
+    css/MediaList.idl
+    css/RGBColor.idl
+    css/Rect.idl
+    css/StyleMedia.idl
+    css/StyleSheet.idl
+    css/StyleSheetList.idl
+    css/WebKitCSSKeyframeRule.idl
+    css/WebKitCSSKeyframesRule.idl
+    css/WebKitCSSMatrix.idl
+    css/WebKitCSSTransformValue.idl
+
+    dom/Attr.idl
+    dom/BeforeLoadEvent.idl
+    dom/CDATASection.idl
+    dom/CharacterData.idl
+    dom/ClientRect.idl
+    dom/ClientRectList.idl
+    dom/Clipboard.idl
+    dom/Comment.idl
+    dom/CompositionEvent.idl
+    dom/CustomEvent.idl
+    dom/DOMCoreException.idl
+    dom/DOMImplementation.idl
+    dom/Document.idl
+    dom/DocumentFragment.idl
+    dom/DocumentType.idl
+    dom/Element.idl
+    dom/Entity.idl
+    dom/EntityReference.idl
+    dom/ErrorEvent.idl
+    dom/Event.idl
+    dom/EventException.idl
+    dom/KeyboardEvent.idl
+    dom/MessageChannel.idl
+    dom/MessageEvent.idl
+    dom/MessagePort.idl
+    dom/MouseEvent.idl
+    dom/MutationEvent.idl
+    dom/NamedNodeMap.idl
+    dom/Node.idl
+    dom/NodeFilter.idl
+    dom/NodeIterator.idl
+    dom/NodeList.idl
+    dom/Notation.idl
+    dom/OverflowEvent.idl
+    dom/PageTransitionEvent.idl
+    dom/PopStateEvent.idl
+    dom/ProcessingInstruction.idl
+    dom/ProgressEvent.idl
+    dom/Range.idl
+    dom/RangeException.idl
+    dom/Text.idl
+    dom/TextEvent.idl
+    dom/Touch.idl
+    dom/TouchEvent.idl
+    dom/TouchList.idl
+    dom/TreeWalker.idl
+    dom/UIEvent.idl
+    dom/WebKitAnimationEvent.idl
+    dom/WebKitTransitionEvent.idl
+    dom/WheelEvent.idl
+
+    html/Blob.idl
+    html/DOMFormData.idl
+    html/DataGridColumn.idl
+    html/DataGridColumnList.idl
+    html/File.idl
+    html/FileError.idl
+    html/FileList.idl
+    html/FileReader.idl
+    html/HTMLAllCollection.idl
+    html/HTMLAnchorElement.idl
+    html/HTMLAppletElement.idl
+    html/HTMLAreaElement.idl
+    html/HTMLAudioElement.idl
+    html/HTMLBRElement.idl
+    html/HTMLBaseElement.idl
+    html/HTMLBaseFontElement.idl
+    html/HTMLBlockquoteElement.idl
+    html/HTMLBodyElement.idl
+    html/HTMLButtonElement.idl
+    html/HTMLCanvasElement.idl
+    html/HTMLCollection.idl
+    html/HTMLDListElement.idl
+    html/HTMLDataGridCellElement.idl
+    html/HTMLDataGridColElement.idl
+    html/HTMLDataGridElement.idl
+    html/HTMLDataGridRowElement.idl
+    html/HTMLDataListElement.idl
+    html/HTMLDirectoryElement.idl
+    html/HTMLDivElement.idl
+    html/HTMLDocument.idl
+    html/HTMLElement.idl
+    html/HTMLEmbedElement.idl
+    html/HTMLFieldSetElement.idl
+    html/HTMLFontElement.idl
+    html/HTMLFormElement.idl
+    html/HTMLFrameElement.idl
+    html/HTMLFrameSetElement.idl
+    html/HTMLHRElement.idl
+    html/HTMLHeadElement.idl
+    html/HTMLHeadingElement.idl
+    html/HTMLHtmlElement.idl
+    html/HTMLIFrameElement.idl
+    html/HTMLImageElement.idl
+    html/HTMLInputElement.idl
+    html/HTMLIsIndexElement.idl
+    html/HTMLLIElement.idl
+    html/HTMLLabelElement.idl
+    html/HTMLLegendElement.idl
+    html/HTMLLinkElement.idl
+    html/HTMLMapElement.idl
+    html/HTMLMarqueeElement.idl
+    html/HTMLMediaElement.idl
+    html/HTMLMenuElement.idl
+    html/HTMLMetaElement.idl
+    html/HTMLModElement.idl
+    html/HTMLOListElement.idl
+    html/HTMLObjectElement.idl
+    html/HTMLOptGroupElement.idl
+    html/HTMLOptionElement.idl
+    html/HTMLOptionsCollection.idl
+    html/HTMLParagraphElement.idl
+    html/HTMLParamElement.idl
+    html/HTMLPreElement.idl
+    html/HTMLProgressElement.idl
+    html/HTMLQuoteElement.idl
+    html/HTMLScriptElement.idl
+    html/HTMLSelectElement.idl
+    html/HTMLSourceElement.idl
+    html/HTMLStyleElement.idl
+    html/HTMLTableCaptionElement.idl
+    html/HTMLTableCellElement.idl
+    html/HTMLTableColElement.idl
+    html/HTMLTableElement.idl
+    html/HTMLTableRowElement.idl
+    html/HTMLTableSectionElement.idl
+    html/HTMLTextAreaElement.idl
+    html/HTMLTitleElement.idl
+    html/HTMLUListElement.idl
+    html/HTMLVideoElement.idl
+    html/ImageData.idl
+    html/MediaError.idl
+    html/TextMetrics.idl
+    html/ValidityState.idl
+    html/VoidCallback.idl
+
+    html/canvas/CanvasGradient.idl
+    html/canvas/CanvasPattern.idl
+    html/canvas/CanvasRenderingContext.idl
+    html/canvas/CanvasRenderingContext2D.idl
+    html/canvas/WebGLArray.idl
+    html/canvas/WebGLArrayBuffer.idl
+    html/canvas/WebGLByteArray.idl
+    html/canvas/WebGLFloatArray.idl
+    html/canvas/WebGLIntArray.idl
+    html/canvas/WebGLRenderingContext.idl
+    html/canvas/WebGLShortArray.idl
+    html/canvas/WebGLUnsignedByteArray.idl
+    html/canvas/WebGLUnsignedIntArray.idl
+    html/canvas/WebGLUnsignedShortArray.idl
+
+    inspector/InjectedScriptHost.idl
+    inspector/InspectorBackend.idl
+    inspector/InspectorFrontendHost.idl
+    inspector/JavaScriptCallFrame.idl
+    inspector/ScriptProfile.idl
+    inspector/ScriptProfileNode.idl
+
+    loader/appcache/DOMApplicationCache.idl
+
+    notifications/Notification.idl
+    notifications/NotificationCenter.idl
+
+    page/BarInfo.idl
+    page/Console.idl
+    page/Coordinates.idl
+    page/DOMSelection.idl
+    page/DOMWindow.idl
+    page/EventSource.idl
+    page/Geolocation.idl
+    page/Geoposition.idl
+    page/History.idl
+    page/Location.idl
+    page/Navigator.idl
+    page/PositionError.idl
+    page/Screen.idl
+    page/WebKitPoint.idl
+    page/WorkerNavigator.idl
+
+    plugins/MimeType.idl
+    plugins/MimeTypeArray.idl
+    plugins/Plugin.idl
+    plugins/PluginArray.idl
+
+    storage/Database.idl
+    storage/DatabaseCallback.idl
+    storage/DatabaseSync.idl
+    storage/SQLError.idl
+    storage/SQLResultSet.idl
+    storage/SQLResultSetRowList.idl
+    storage/Storage.idl
+    storage/StorageEvent.idl
+    storage/SQLStatementCallback.idl
+    storage/SQLStatementErrorCallback.idl
+    storage/SQLTransaction.idl
+    storage/SQLTransactionCallback.idl
+    storage/SQLTransactionErrorCallback.idl
+    storage/SQLTransactionSync.idl
+    storage/SQLTransactionSyncCallback.idl
+
+    workers/AbstractWorker.idl
+    workers/DedicatedWorkerContext.idl
+    workers/SharedWorker.idl
+    workers/SharedWorkerContext.idl
+    workers/Worker.idl
+    workers/WorkerContext.idl
+    workers/WorkerLocation.idl
+
+    xml/DOMParser.idl
+    xml/XMLHttpRequest.idl
+    xml/XMLHttpRequestException.idl
+    xml/XMLHttpRequestProgressEvent.idl
+    xml/XMLHttpRequestUpload.idl
+    xml/XMLSerializer.idl
+    xml/XPathEvaluator.idl
+    xml/XPathException.idl
+    xml/XPathExpression.idl
+    xml/XPathNSResolver.idl
+    xml/XPathResult.idl
+    xml/XSLTProcessor.idl
+)
+
+IF (ENABLE_SVG)
+    LIST(APPEND WebCore_IDL_FILES
+        svg/SVGAElement.idl
+        svg/SVGAltGlyphElement.idl
+        svg/SVGAngle.idl
+        svg/SVGAnimateColorElement.idl
+        svg/SVGAnimateElement.idl
+        svg/SVGAnimateTransformElement.idl
+        svg/SVGAnimatedAngle.idl
+        svg/SVGAnimatedBoolean.idl
+        svg/SVGAnimatedEnumeration.idl
+        svg/SVGAnimatedInteger.idl
+        svg/SVGAnimatedLength.idl
+        svg/SVGAnimatedLengthList.idl
+        svg/SVGAnimatedNumber.idl
+        svg/SVGAnimatedNumberList.idl
+        svg/SVGAnimatedPreserveAspectRatio.idl
+        svg/SVGAnimatedRect.idl
+        svg/SVGAnimatedString.idl
+        svg/SVGAnimatedTransformList.idl
+        svg/SVGAnimationElement.idl
+        svg/SVGCircleElement.idl
+        svg/SVGClipPathElement.idl
+        svg/SVGColor.idl
+        svg/SVGComponentTransferFunctionElement.idl
+        svg/SVGCursorElement.idl
+        svg/SVGDefsElement.idl
+        svg/SVGDescElement.idl
+        svg/SVGDocument.idl
+        svg/SVGElement.idl
+        svg/SVGElementInstance.idl
+        svg/SVGElementInstanceList.idl
+        svg/SVGEllipseElement.idl
+        svg/SVGException.idl
+        svg/SVGFEBlendElement.idl
+        svg/SVGFEColorMatrixElement.idl
+        svg/SVGFEComponentTransferElement.idl
+        svg/SVGFECompositeElement.idl
+        svg/SVGFEDiffuseLightingElement.idl
+        svg/SVGFEDisplacementMapElement.idl
+        svg/SVGFEDistantLightElement.idl
+        svg/SVGFEFloodElement.idl
+        svg/SVGFEFuncAElement.idl
+        svg/SVGFEFuncBElement.idl
+        svg/SVGFEFuncGElement.idl
+        svg/SVGFEFuncRElement.idl
+        svg/SVGFEGaussianBlurElement.idl
+        svg/SVGFEImageElement.idl
+        svg/SVGFEMergeElement.idl
+        svg/SVGFEMergeNodeElement.idl
+        svg/SVGFEMorphologyElement.idl
+        svg/SVGFEOffsetElement.idl
+        svg/SVGFEPointLightElement.idl
+        svg/SVGFESpecularLightingElement.idl
+        svg/SVGFESpotLightElement.idl
+        svg/SVGFETileElement.idl
+        svg/SVGFETurbulenceElement.idl
+        svg/SVGFilterElement.idl
+        svg/SVGFontElement.idl
+        svg/SVGFontFaceElement.idl
+        svg/SVGFontFaceFormatElement.idl
+        svg/SVGFontFaceNameElement.idl
+        svg/SVGFontFaceSrcElement.idl
+        svg/SVGFontFaceUriElement.idl
+        svg/SVGForeignObjectElement.idl
+        svg/SVGGElement.idl
+        svg/SVGGlyphElement.idl
+        svg/SVGGradientElement.idl
+        svg/SVGHKernElement.idl
+        svg/SVGImageElement.idl
+        svg/SVGLength.idl
+        svg/SVGLengthList.idl
+        svg/SVGLineElement.idl
+        svg/SVGLinearGradientElement.idl
+        svg/SVGMarkerElement.idl
+        svg/SVGMaskElement.idl
+        svg/SVGMatrix.idl
+        svg/SVGMetadataElement.idl
+        svg/SVGMissingGlyphElement.idl
+        svg/SVGNumber.idl
+        svg/SVGNumberList.idl
+        svg/SVGPaint.idl
+        svg/SVGPathElement.idl
+        svg/SVGPathSeg.idl
+        svg/SVGPathSegArcAbs.idl
+        svg/SVGPathSegArcRel.idl
+        svg/SVGPathSegClosePath.idl
+        svg/SVGPathSegCurvetoCubicAbs.idl
+        svg/SVGPathSegCurvetoCubicRel.idl
+        svg/SVGPathSegCurvetoCubicSmoothAbs.idl
+        svg/SVGPathSegCurvetoCubicSmoothRel.idl
+        svg/SVGPathSegCurvetoQuadraticAbs.idl
+        svg/SVGPathSegCurvetoQuadraticRel.idl
+        svg/SVGPathSegCurvetoQuadraticSmoothAbs.idl
+        svg/SVGPathSegCurvetoQuadraticSmoothRel.idl
+        svg/SVGPathSegLinetoAbs.idl
+        svg/SVGPathSegLinetoHorizontalAbs.idl
+        svg/SVGPathSegLinetoHorizontalRel.idl
+        svg/SVGPathSegLinetoRel.idl
+        svg/SVGPathSegLinetoVerticalAbs.idl
+        svg/SVGPathSegLinetoVerticalRel.idl
+        svg/SVGPathSegList.idl
+        svg/SVGPathSegMovetoAbs.idl
+        svg/SVGPathSegMovetoRel.idl
+        svg/SVGPatternElement.idl
+        svg/SVGPoint.idl
+        svg/SVGPointList.idl
+        svg/SVGPolygonElement.idl
+        svg/SVGPolylineElement.idl
+        svg/SVGPreserveAspectRatio.idl
+        svg/SVGRadialGradientElement.idl
+        svg/SVGRect.idl
+        svg/SVGRectElement.idl
+        svg/SVGRenderingIntent.idl
+        svg/SVGSVGElement.idl
+        svg/SVGScriptElement.idl
+        svg/SVGSetElement.idl
+        svg/SVGStopElement.idl
+        svg/SVGStringList.idl
+        svg/SVGStyleElement.idl
+        svg/SVGSwitchElement.idl
+        svg/SVGSymbolElement.idl
+        svg/SVGTRefElement.idl
+        svg/SVGTSpanElement.idl
+        svg/SVGTextContentElement.idl
+        svg/SVGTextElement.idl
+        svg/SVGTextPathElement.idl
+        svg/SVGTextPositioningElement.idl
+        svg/SVGTitleElement.idl
+        svg/SVGTransform.idl
+        svg/SVGTransformList.idl
+        svg/SVGUnitTypes.idl
+        svg/SVGUseElement.idl
+        svg/SVGViewElement.idl
+        svg/SVGVKernElement.idl
+        svg/SVGZoomEvent.idl
+    )
+ENDIF()
+
+SET(WebCore_SOURCES
+    ${DERIVED_SOURCES_DIR}/CSSGrammar.cpp
+    ${DERIVED_SOURCES_DIR}/HTMLElementFactory.cpp
+    ${DERIVED_SOURCES_DIR}/HTMLEntityNames.c
+    ${DERIVED_SOURCES_DIR}/HTMLNames.cpp
+    ${DERIVED_SOURCES_DIR}/JSHTMLElementWrapperFactory.cpp
+    ${DERIVED_SOURCES_DIR}/UserAgentStyleSheetsData.cpp
+    ${DERIVED_SOURCES_DIR}/XMLNames.cpp
+    ${DERIVED_SOURCES_DIR}/XMLNSNames.cpp
+    ${DERIVED_SOURCES_DIR}/XPathGrammar.cpp
+
+    accessibility/AXObjectCache.cpp
+    accessibility/AccessibilityARIAGrid.cpp
+    accessibility/AccessibilityARIAGridCell.cpp
+    accessibility/AccessibilityARIAGridRow.cpp
+    accessibility/AccessibilityImageMapLink.cpp
+    accessibility/AccessibilityList.cpp
+    accessibility/AccessibilityListBox.cpp
+    accessibility/AccessibilityListBoxOption.cpp
+    accessibility/AccessibilityMediaControls.cpp
+    accessibility/AccessibilityMenuList.cpp
+    accessibility/AccessibilityMenuListOption.cpp
+    accessibility/AccessibilityMenuListPopup.cpp
+    accessibility/AccessibilityObject.cpp
+    accessibility/AccessibilityRenderObject.cpp
+    accessibility/AccessibilityScrollbar.cpp
+    accessibility/AccessibilitySlider.cpp
+    accessibility/AccessibilityTable.cpp
+    accessibility/AccessibilityTableCell.cpp
+    accessibility/AccessibilityTableColumn.cpp
+    accessibility/AccessibilityTableHeaderContainer.cpp
+    accessibility/AccessibilityTableRow.cpp
+
+    bindings/ScriptControllerBase.cpp
+
+    bindings/js/DOMObjectHashTableMap.cpp
+    bindings/js/DOMWrapperWorld.cpp
+    bindings/js/GCController.cpp
+    bindings/js/JSAttrCustom.cpp
+    bindings/js/JSCDATASectionCustom.cpp
+    bindings/js/JSCSSRuleCustom.cpp
+    bindings/js/JSCSSRuleListCustom.cpp
+    bindings/js/JSCSSStyleDeclarationCustom.cpp
+    bindings/js/JSCSSValueCustom.cpp
+    bindings/js/JSCallbackData.cpp
+    bindings/js/JSCanvasRenderingContext2DCustom.cpp
+    bindings/js/JSCanvasRenderingContextCustom.cpp
+    bindings/js/JSClipboardCustom.cpp
+    bindings/js/JSConsoleCustom.cpp
+    bindings/js/JSCoordinatesCustom.cpp
+    bindings/js/JSCustomPositionCallback.cpp
+    bindings/js/JSCustomPositionErrorCallback.cpp
+    bindings/js/JSCustomSQLStatementErrorCallback.cpp
+    bindings/js/JSDatabaseCustom.cpp
+    bindings/js/JSDatabaseSyncCustom.cpp
+    bindings/js/JSCustomVoidCallback.cpp
+    bindings/js/JSCustomXPathNSResolver.cpp
+    bindings/js/JSDOMApplicationCacheCustom.cpp
+    bindings/js/JSDOMBinding.cpp
+    bindings/js/JSDOMFormDataCustom.cpp
+    bindings/js/JSDOMGlobalObject.cpp
+    bindings/js/JSDOMWindowBase.cpp
+    bindings/js/JSDOMWindowCustom.cpp
+    bindings/js/JSDOMWindowShell.cpp
+    bindings/js/JSDOMWrapper.cpp
+    bindings/js/JSDataGridColumnListCustom.cpp
+    bindings/js/JSDataGridDataSource.cpp
+    bindings/js/JSDatabaseCustom.cpp
+    bindings/js/JSDebugWrapperSet.cpp
+    bindings/js/JSDedicatedWorkerContextCustom.cpp
+    bindings/js/JSDocumentCustom.cpp
+    bindings/js/JSElementCustom.cpp
+    bindings/js/JSEventCustom.cpp
+    bindings/js/JSEventListener.cpp
+    bindings/js/JSEventSourceConstructor.cpp
+    bindings/js/JSEventTarget.cpp
+    bindings/js/JSExceptionBase.cpp
+    bindings/js/JSGeolocationCustom.cpp
+    bindings/js/JSHTMLAllCollectionCustom.cpp
+    bindings/js/JSHTMLAppletElementCustom.cpp
+    bindings/js/JSHTMLCanvasElementCustom.cpp
+    bindings/js/JSHTMLCollectionCustom.cpp
+    bindings/js/JSHTMLDataGridElementCustom.cpp
+    bindings/js/JSHTMLDocumentCustom.cpp
+    bindings/js/JSHTMLElementCustom.cpp
+    bindings/js/JSHTMLEmbedElementCustom.cpp
+    bindings/js/JSHTMLFormElementCustom.cpp
+    bindings/js/JSHTMLFrameElementCustom.cpp
+    bindings/js/JSHTMLFrameSetElementCustom.cpp
+    bindings/js/JSHTMLIFrameElementCustom.cpp
+    bindings/js/JSHTMLInputElementCustom.cpp
+    bindings/js/JSHTMLObjectElementCustom.cpp
+    bindings/js/JSHTMLOptionsCollectionCustom.cpp
+    bindings/js/JSHTMLSelectElementCustom.cpp
+    bindings/js/JSHistoryCustom.cpp
+    bindings/js/JSImageConstructor.cpp
+    bindings/js/JSImageDataCustom.cpp
+    bindings/js/JSInjectedScriptHostCustom.cpp
+    bindings/js/JSInspectorFrontendHostCustom.cpp
+    bindings/js/JSJavaScriptCallFrameCustom.cpp
+    bindings/js/JSLazyEventListener.cpp
+    bindings/js/JSLocationCustom.cpp
+    bindings/js/JSMessageChannelConstructor.cpp
+    bindings/js/JSMessageChannelCustom.cpp
+    bindings/js/JSMessageEventCustom.cpp
+    bindings/js/JSMessagePortCustom.cpp
+    bindings/js/JSMimeTypeArrayCustom.cpp
+    bindings/js/JSNamedNodeMapCustom.cpp
+    bindings/js/JSNavigatorCustom.cpp
+    bindings/js/JSNodeCustom.cpp
+    bindings/js/JSNodeFilterCondition.cpp
+    bindings/js/JSNodeFilterCustom.cpp
+    bindings/js/JSNodeIteratorCustom.cpp
+    bindings/js/JSNodeListCustom.cpp
+    bindings/js/JSOptionConstructor.cpp
+    bindings/js/JSPluginArrayCustom.cpp
+    bindings/js/JSPluginCustom.cpp
+    bindings/js/JSPluginElementFunctions.cpp
+    bindings/js/JSPopStateEventCustom.cpp
+    bindings/js/JSSQLResultSetRowListCustom.cpp
+    bindings/js/JSSQLTransactionCustom.cpp
+    bindings/js/JSSQLTransactionSyncCustom.cpp
+    bindings/js/JSScriptProfileNodeCustom.cpp
+    bindings/js/JSSharedWorkerConstructor.cpp
+    bindings/js/JSSharedWorkerCustom.cpp
+    bindings/js/JSStorageCustom.cpp
+    bindings/js/JSStyleSheetCustom.cpp
+    bindings/js/JSStyleSheetListCustom.cpp
+    bindings/js/JSTextCustom.cpp
+    bindings/js/JSTreeWalkerCustom.cpp
+    bindings/js/JSWebKitCSSMatrixConstructor.cpp
+    bindings/js/JSWebKitPointConstructor.cpp
+    bindings/js/JSWorkerConstructor.cpp
+    bindings/js/JSWorkerContextBase.cpp
+    bindings/js/JSWorkerContextCustom.cpp
+    bindings/js/JSWorkerContextErrorHandler.cpp
+    bindings/js/JSWorkerCustom.cpp
+    bindings/js/JSXMLHttpRequestConstructor.cpp
+    bindings/js/JSXMLHttpRequestCustom.cpp
+    bindings/js/JSXMLHttpRequestUploadCustom.cpp
+    bindings/js/JSXSLTProcessorConstructor.cpp
+    bindings/js/JSXSLTProcessorCustom.cpp
+    bindings/js/JavaScriptCallFrame.cpp
+    bindings/js/ScheduledAction.cpp
+    bindings/js/ScriptArray.cpp
+    bindings/js/ScriptCachedFrameData.cpp
+    bindings/js/ScriptCallFrame.cpp
+    bindings/js/ScriptCallStack.cpp
+    bindings/js/ScriptController.cpp
+    bindings/js/ScriptControllerEfl.cpp
+    bindings/js/ScriptDebugServer.cpp
+    bindings/js/ScriptEventListener.cpp
+    bindings/js/ScriptFunctionCall.cpp
+    bindings/js/ScriptObject.cpp
+    bindings/js/ScriptProfiler.cpp
+    bindings/js/ScriptState.cpp
+    bindings/js/ScriptValue.cpp
+    bindings/js/SerializedScriptValue.cpp
+    bindings/js/WorkerScriptController.cpp
+
+    bridge/IdentifierRep.cpp
+    bridge/NP_jsobject.cpp
+    bridge/npruntime.cpp
+    bridge/runtime_array.cpp
+    bridge/runtime_method.cpp
+    bridge/runtime_object.cpp
+    bridge/runtime_root.cpp
+
+    bridge/c/CRuntimeObject.cpp
+    bridge/c/c_class.cpp
+    bridge/c/c_instance.cpp
+    bridge/c/c_runtime.cpp
+    bridge/c/c_utility.cpp
+
+    bridge/jsc/BridgeJSC.cpp
+
+    css/CSSBorderImageValue.cpp
+    css/CSSCanvasValue.cpp
+    css/CSSCharsetRule.cpp
+    css/CSSComputedStyleDeclaration.cpp
+    css/CSSCursorImageValue.cpp
+    css/CSSFontFace.cpp
+    css/CSSFontFaceRule.cpp
+    css/CSSFontFaceSource.cpp
+    css/CSSFontFaceSrcValue.cpp
+    css/CSSFontSelector.cpp
+    css/CSSFunctionValue.cpp
+    css/CSSGradientValue.cpp
+    css/CSSHelper.cpp
+    css/CSSImageGeneratorValue.cpp
+    css/CSSImageValue.cpp
+    css/CSSImportRule.cpp
+    css/CSSInheritedValue.cpp
+    css/CSSInitialValue.cpp
+    css/CSSMediaRule.cpp
+    css/CSSMutableStyleDeclaration.cpp
+    css/CSSPageRule.cpp
+    css/CSSParser.cpp
+    css/CSSParserValues.cpp
+    css/CSSPrimitiveValue.cpp
+    css/CSSProperty.cpp
+    css/CSSPropertyLonghand.cpp
+    css/CSSReflectValue.cpp
+    css/CSSRule.cpp
+    css/CSSRuleList.cpp
+    css/CSSSegmentedFontFace.cpp
+    css/CSSSelector.cpp
+    css/CSSSelectorList.cpp
+    css/CSSStyleDeclaration.cpp
+    css/CSSStyleRule.cpp
+    css/CSSStyleSelector.cpp
+    css/CSSStyleSheet.cpp
+    css/CSSTimingFunctionValue.cpp
+    css/CSSUnicodeRangeValue.cpp
+    css/CSSValueList.cpp
+    css/CSSVariableDependentValue.cpp
+    css/CSSVariablesDeclaration.cpp
+    css/CSSVariablesRule.cpp
+    css/FontFamilyValue.cpp
+    css/FontValue.cpp
+    css/MediaFeatureNames.cpp
+    css/MediaList.cpp
+    css/MediaQuery.cpp
+    css/MediaQueryEvaluator.cpp
+    css/MediaQueryExp.cpp
+    css/RGBColor.cpp
+    css/ShadowValue.cpp
+    css/StyleBase.cpp
+    css/StyleList.cpp
+    css/StyleMedia.cpp
+    css/StyleSheet.cpp
+    css/StyleSheetList.cpp
+    css/WebKitCSSKeyframeRule.cpp
+    css/WebKitCSSKeyframesRule.cpp
+    css/WebKitCSSMatrix.cpp
+    css/WebKitCSSTransformValue.cpp
+
+    dom/ActiveDOMObject.cpp
+    dom/Attr.cpp
+    dom/Attribute.cpp
+    dom/BeforeTextInsertedEvent.cpp
+    dom/BeforeUnloadEvent.cpp
+    dom/CDATASection.cpp
+    dom/CSSMappedAttributeDeclaration.cpp
+    dom/CanvasSurface.cpp
+    dom/CharacterData.cpp
+    dom/CheckedRadioButtons.cpp
+    dom/ChildNodeList.cpp
+    dom/ClassNodeList.cpp
+    dom/ClientRect.cpp
+    dom/ClientRectList.cpp
+    dom/Clipboard.cpp
+    dom/ClipboardEvent.cpp
+    dom/Comment.cpp
+    dom/CompositionEvent.cpp
+    dom/ContainerNode.cpp
+    dom/CustomEvent.cpp
+    dom/DOMImplementation.cpp
+    dom/Document.cpp
+    dom/DocumentFragment.cpp
+    dom/DocumentType.cpp
+    dom/DynamicNodeList.cpp
+    dom/EditingText.cpp
+    dom/Element.cpp
+    dom/Entity.cpp
+    dom/EntityReference.cpp
+    dom/ErrorEvent.cpp
+    dom/Event.cpp
+    dom/EventNames.cpp
+    dom/EventTarget.cpp
+    dom/ExceptionBase.cpp
+    dom/ExceptionCode.cpp
+    dom/InputElement.cpp
+    dom/KeyboardEvent.cpp
+    dom/MappedAttribute.cpp
+    dom/MessageChannel.cpp
+    dom/MessageEvent.cpp
+    dom/MessagePort.cpp
+    dom/MessagePortChannel.cpp
+    dom/MouseEvent.cpp
+    dom/MouseRelatedEvent.cpp
+    dom/MutationEvent.cpp
+    dom/NameNodeList.cpp
+    dom/NamedAttrMap.cpp
+    dom/NamedMappedAttrMap.cpp
+    dom/Node.cpp
+    dom/NodeFilter.cpp
+    dom/NodeFilterCondition.cpp
+    dom/NodeIterator.cpp
+    dom/Notation.cpp
+    dom/OptionElement.cpp
+    dom/OptionGroupElement.cpp
+    dom/OverflowEvent.cpp
+    dom/PageTransitionEvent.cpp
+    dom/PopStateEvent.cpp
+    dom/Position.cpp
+    dom/PositionIterator.cpp
+    dom/ProcessingInstruction.cpp
+    dom/ProgressEvent.cpp
+    dom/QualifiedName.cpp
+    dom/Range.cpp
+    dom/RegisteredEventListener.cpp
+    dom/ScriptElement.cpp
+    dom/ScriptExecutionContext.cpp
+    dom/SelectElement.cpp
+    dom/SelectorNodeList.cpp
+    dom/SpaceSplitString.cpp
+    dom/StaticNodeList.cpp
+    dom/StyleElement.cpp
+    dom/StyledElement.cpp
+    dom/TagNodeList.cpp
+    dom/Text.cpp
+    dom/TextEvent.cpp
+    dom/TransformSourceLibxslt.cpp
+    dom/Traversal.cpp
+    dom/TreeWalker.cpp
+    dom/UIEvent.cpp
+    dom/UIEventWithKeyState.cpp
+    dom/UserGestureIndicator.cpp
+    dom/ViewportArguments.cpp
+    dom/WebKitAnimationEvent.cpp
+    dom/WebKitTransitionEvent.cpp
+    dom/WheelEvent.cpp
+    dom/XMLTokenizer.cpp
+    dom/XMLTokenizerLibxml2.cpp
+    dom/XMLTokenizerScope.cpp
+
+    dom/default/PlatformMessagePortChannel.cpp
+
+    editing/AppendNodeCommand.cpp
+    editing/ApplyStyleCommand.cpp
+    editing/BreakBlockquoteCommand.cpp
+    editing/CompositeEditCommand.cpp
+    editing/CreateLinkCommand.cpp
+    editing/DeleteButton.cpp
+    editing/DeleteButtonController.cpp
+    editing/DeleteFromTextNodeCommand.cpp
+    editing/DeleteSelectionCommand.cpp
+    editing/EditCommand.cpp
+    editing/Editor.cpp
+    editing/EditorCommand.cpp
+    editing/FormatBlockCommand.cpp
+    editing/HTMLInterchange.cpp
+    editing/IndentOutdentCommand.cpp
+    editing/InsertIntoTextNodeCommand.cpp
+    editing/InsertLineBreakCommand.cpp
+    editing/InsertListCommand.cpp
+    editing/InsertNodeBeforeCommand.cpp
+    editing/InsertParagraphSeparatorCommand.cpp
+    editing/InsertTextCommand.cpp
+    editing/JoinTextNodesCommand.cpp
+    editing/MergeIdenticalElementsCommand.cpp
+    editing/ModifySelectionListLevel.cpp
+    editing/MoveSelectionCommand.cpp
+    editing/RemoveCSSPropertyCommand.cpp
+    editing/RemoveFormatCommand.cpp
+    editing/RemoveNodeCommand.cpp
+    editing/RemoveNodePreservingChildrenCommand.cpp
+    editing/ReplaceNodeWithSpanCommand.cpp
+    editing/ReplaceSelectionCommand.cpp
+    editing/SelectionController.cpp
+    editing/SetNodeAttributeCommand.cpp
+    editing/SmartReplace.cpp
+    editing/SplitElementCommand.cpp
+    editing/SplitTextNodeCommand.cpp
+    editing/SplitTextNodeContainingElementCommand.cpp
+    editing/TextIterator.cpp
+    editing/TypingCommand.cpp
+    editing/UnlinkCommand.cpp
+    editing/VisiblePosition.cpp
+    editing/VisibleSelection.cpp
+    editing/WrapContentsInDummySpanCommand.cpp
+    editing/htmlediting.cpp
+    editing/markup.cpp
+    editing/visible_units.cpp
+
+    history/BackForwardList.cpp
+    history/CachedFrame.cpp
+    history/CachedPage.cpp
+    history/HistoryItem.cpp
+    history/PageCache.cpp
+
+    html/Blob.cpp
+    html/CollectionCache.cpp
+    html/DOMDataGridDataSource.cpp
+    html/DOMFormData.cpp
+    html/DataGridColumn.cpp
+    html/DataGridColumnList.cpp
+    html/DateComponents.cpp
+    html/File.cpp
+    html/FileList.cpp
+    html/FormDataList.cpp
+    html/HTMLAllCollection.cpp
+    html/HTMLAnchorElement.cpp
+    html/HTMLAppletElement.cpp
+    html/HTMLAreaElement.cpp
+    html/HTMLBRElement.cpp
+    html/HTMLBaseElement.cpp
+    html/HTMLBaseFontElement.cpp
+    html/HTMLBlockquoteElement.cpp
+    html/HTMLBodyElement.cpp
+    html/HTMLButtonElement.cpp
+    html/HTMLCanvasElement.cpp
+    html/HTMLCollection.cpp
+    html/HTMLDListElement.cpp
+    html/HTMLDataGridCellElement.cpp
+    html/HTMLDataGridColElement.cpp
+    html/HTMLDataGridElement.cpp
+    html/HTMLDataGridRowElement.cpp
+    html/HTMLDataListElement.cpp
+    html/HTMLDirectoryElement.cpp
+    html/HTMLDivElement.cpp
+    html/HTMLDocument.cpp
+    html/HTMLElement.cpp
+    html/HTMLEmbedElement.cpp
+    html/HTMLFieldSetElement.cpp
+    html/HTMLFontElement.cpp
+    html/HTMLFormCollection.cpp
+    html/HTMLFormControlElement.cpp
+    html/HTMLFormElement.cpp
+    html/HTMLFrameElement.cpp
+    html/HTMLFrameElementBase.cpp
+    html/HTMLFrameOwnerElement.cpp
+    html/HTMLFrameSetElement.cpp
+    html/HTMLHRElement.cpp
+    html/HTMLHeadElement.cpp
+    html/HTMLHeadingElement.cpp
+    html/HTMLHtmlElement.cpp
+    html/HTMLIFrameElement.cpp
+    html/HTMLImageElement.cpp
+    html/HTMLImageLoader.cpp
+    html/HTMLInputElement.cpp
+    html/HTMLIsIndexElement.cpp
+    html/HTMLKeygenElement.cpp
+    html/HTMLLIElement.cpp
+    html/HTMLLabelElement.cpp
+    html/HTMLLegendElement.cpp
+    html/HTMLLinkElement.cpp
+    html/HTMLMapElement.cpp
+    html/HTMLMarqueeElement.cpp
+    html/HTMLMenuElement.cpp
+    html/HTMLMetaElement.cpp
+    html/HTMLModElement.cpp
+    html/HTMLNameCollection.cpp
+    html/HTMLOListElement.cpp
+    html/HTMLObjectElement.cpp
+    html/HTMLOptGroupElement.cpp
+    html/HTMLOptionElement.cpp
+    html/HTMLOptionsCollection.cpp
+    html/HTMLParagraphElement.cpp
+    html/HTMLParamElement.cpp
+    html/HTMLParser.cpp
+    html/HTMLParserErrorCodes.cpp
+    html/HTMLPlugInElement.cpp
+    html/HTMLPlugInImageElement.cpp
+    html/HTMLPreElement.cpp
+    html/HTMLProgressElement.cpp
+    html/HTMLQuoteElement.cpp
+    html/HTMLScriptElement.cpp
+    html/HTMLSelectElement.cpp
+    html/HTMLStyleElement.cpp
+    html/HTMLTableCaptionElement.cpp
+    html/HTMLTableCellElement.cpp
+    html/HTMLTableColElement.cpp
+    html/HTMLTableElement.cpp
+    html/HTMLTablePartElement.cpp
+    html/HTMLTableRowElement.cpp
+    html/HTMLTableRowsCollection.cpp
+    html/HTMLTableSectionElement.cpp
+    html/HTMLTextAreaElement.cpp
+    html/HTMLTitleElement.cpp
+    html/HTMLTokenizer.cpp
+    html/HTMLUListElement.cpp
+    html/HTMLViewSourceDocument.cpp
+    html/ImageData.cpp
+    html/PreloadScanner.cpp
+    html/StepRange.cpp
+    html/ValidityState.cpp
+    html/canvas/CanvasGradient.cpp
+    html/canvas/CanvasPattern.cpp
+    html/canvas/CanvasPixelArray.cpp
+    html/canvas/CanvasRenderingContext.cpp
+    html/canvas/CanvasRenderingContext2D.cpp
+    html/canvas/CanvasStyle.cpp
+
+    inspector/ConsoleMessage.cpp
+    inspector/InjectedScript.cpp
+    inspector/InjectedScriptHost.cpp
+    inspector/InspectorBackend.cpp
+    inspector/InspectorCSSStore.cpp
+    inspector/InspectorController.cpp
+    inspector/InspectorDOMAgent.cpp
+    inspector/InspectorDOMStorageResource.cpp
+    inspector/InspectorDatabaseResource.cpp
+    inspector/InspectorFrontend.cpp
+    inspector/InspectorFrontendClientLocal.cpp
+    inspector/InspectorFrontendHost.cpp
+    inspector/InspectorResource.cpp
+    inspector/InspectorTimelineAgent.cpp
+    inspector/TimelineRecordFactory.cpp
+
+    loader/Cache.cpp
+    loader/CachedCSSStyleSheet.cpp
+    loader/CachedFont.cpp
+    loader/CachedImage.cpp
+    loader/CachedResource.cpp
+    loader/CachedResourceClientWalker.cpp
+    loader/CachedResourceHandle.cpp
+    loader/CachedScript.cpp
+    loader/CachedXSLStyleSheet.cpp
+    loader/CrossOriginAccessControl.cpp
+    loader/CrossOriginPreflightResultCache.cpp
+    loader/DocLoader.cpp
+    loader/DocumentLoader.cpp
+    loader/DocumentThreadableLoader.cpp
+    loader/DocumentWriter.cpp
+    loader/FTPDirectoryDocument.cpp
+    loader/FTPDirectoryParser.cpp
+    loader/FormState.cpp
+    loader/FrameLoader.cpp
+    loader/HistoryController.cpp
+    loader/ImageDocument.cpp
+    loader/ImageLoader.cpp
+    loader/MainResourceLoader.cpp
+    loader/MediaDocument.cpp
+    loader/NavigationAction.cpp
+    loader/NetscapePlugInStreamLoader.cpp
+    loader/PlaceholderDocument.cpp
+    loader/PluginDocument.cpp
+    loader/PolicyCallback.cpp
+    loader/PolicyChecker.cpp
+    loader/ProgressTracker.cpp
+    loader/RedirectScheduler.cpp
+    loader/Request.cpp
+    loader/ResourceLoadNotifier.cpp
+    loader/ResourceLoader.cpp
+    loader/SubresourceLoader.cpp
+    loader/TextDocument.cpp
+    loader/TextResourceDecoder.cpp
+    loader/ThreadableLoader.cpp
+    loader/WorkerThreadableLoader.cpp
+
+    loader/appcache/ApplicationCache.cpp
+    loader/appcache/ApplicationCacheGroup.cpp
+    loader/appcache/ApplicationCacheHost.cpp
+    loader/appcache/ApplicationCacheResource.cpp
+    loader/appcache/ApplicationCacheStorage.cpp
+    loader/appcache/DOMApplicationCache.cpp
+    loader/appcache/ManifestParser.cpp
+
+    loader/archive/ArchiveFactory.cpp
+    loader/archive/ArchiveResource.cpp
+    loader/archive/ArchiveResourceCollection.cpp
+
+    loader/icon/IconDatabase.cpp
+    loader/icon/IconLoader.cpp
+    loader/icon/IconRecord.cpp
+    loader/icon/PageURLRecord.cpp
+    loader/loader.cpp
+
+    page/BarInfo.cpp
+    page/Chrome.cpp
+    page/Console.cpp
+    page/ContextMenuController.cpp
+    page/DOMSelection.cpp
+    page/DOMTimer.cpp
+    page/DOMWindow.cpp
+    page/DragController.cpp
+    page/EventHandler.cpp
+    page/EventSource.cpp
+    page/FocusController.cpp
+    page/Frame.cpp
+    page/FrameTree.cpp
+    page/FrameView.cpp
+    page/Geolocation.cpp
+    page/GeolocationController.cpp
+    page/GeolocationPositionCache.cpp
+    page/History.cpp
+    page/Location.cpp
+    page/MouseEventWithHitTestResults.cpp
+    page/Navigator.cpp
+    page/NavigatorBase.cpp
+    page/OriginAccessEntry.cpp
+    page/Page.cpp
+    page/PageGroup.cpp
+    page/PageGroupLoadDeferrer.cpp
+    page/PluginHalter.cpp
+    page/PrintContext.cpp
+    page/Screen.cpp
+    page/SecurityOrigin.cpp
+    page/Settings.cpp
+    page/SpatialNavigation.cpp
+    page/UserContentURLPattern.cpp
+    page/WindowFeatures.cpp
+    page/WorkerNavigator.cpp
+    page/XSSAuditor.cpp
+
+    page/animation/AnimationBase.cpp
+    page/animation/AnimationController.cpp
+    page/animation/CompositeAnimation.cpp
+    page/animation/ImplicitAnimation.cpp
+    page/animation/KeyframeAnimation.cpp
+
+    platform/Arena.cpp
+    platform/ContentType.cpp
+    platform/ContextMenu.cpp
+    platform/CrossThreadCopier.cpp
+    platform/DeprecatedPtrListImpl.cpp
+    platform/DragData.cpp
+    platform/DragImage.cpp
+    platform/FileChooser.cpp
+    platform/GeolocationService.cpp
+    platform/KURL.cpp
+    platform/Length.cpp
+    platform/LinkHash.cpp
+    platform/Logging.cpp
+    platform/MIMETypeRegistry.cpp
+    platform/Scrollbar.cpp
+    platform/ScrollbarThemeComposite.cpp
+    platform/ScrollView.cpp
+    platform/SharedBuffer.cpp
+    platform/ThreadGlobalData.cpp
+    platform/ThreadTimers.cpp
+    platform/Timer.cpp
+    platform/UUID.cpp
+    platform/Widget.cpp
+
+    platform/animation/Animation.cpp
+    platform/animation/AnimationList.cpp
+
+    platform/graphics/BitmapImage.cpp
+    platform/graphics/Color.cpp
+    platform/graphics/FloatPoint.cpp
+    platform/graphics/FloatPoint3D.cpp
+    platform/graphics/FloatQuad.cpp
+    platform/graphics/FloatRect.cpp
+    platform/graphics/FloatSize.cpp
+    platform/graphics/Font.cpp
+    platform/graphics/FontCache.cpp
+    platform/graphics/FontData.cpp
+    platform/graphics/FontDescription.cpp
+    platform/graphics/FontFallbackList.cpp
+    platform/graphics/FontFamily.cpp
+    platform/graphics/FontFastPath.cpp
+    platform/graphics/GeneratedImage.cpp
+    platform/graphics/GlyphPageTreeNode.cpp
+    platform/graphics/Gradient.cpp
+    platform/graphics/GraphicsContext.cpp
+    platform/graphics/GraphicsTypes.cpp
+    platform/graphics/Image.cpp
+    platform/graphics/ImageBuffer.cpp
+    platform/graphics/ImageSource.cpp
+    platform/graphics/IntRect.cpp
+    platform/graphics/Path.cpp
+    platform/graphics/PathTraversalState.cpp
+    platform/graphics/Pattern.cpp
+    platform/graphics/Pen.cpp
+    platform/graphics/SegmentedFontData.cpp
+    platform/graphics/SimpleFontData.cpp
+    platform/graphics/StringTruncator.cpp
+    platform/graphics/WidthIterator.cpp
+
+    platform/graphics/filters/FEBlend.cpp
+    platform/graphics/filters/FEColorMatrix.cpp
+    platform/graphics/filters/FEComponentTransfer.cpp
+    platform/graphics/filters/FEComposite.cpp
+    platform/graphics/filters/FEGaussianBlur.cpp
+    platform/graphics/filters/FilterEffect.cpp
+    platform/graphics/filters/ImageBufferFilter.cpp
+    platform/graphics/filters/SourceAlpha.cpp
+    platform/graphics/filters/SourceGraphic.cpp
+
+    platform/graphics/transforms/AffineTransform.cpp
+    platform/graphics/transforms/Matrix3DTransformOperation.cpp
+    platform/graphics/transforms/MatrixTransformOperation.cpp
+    platform/graphics/transforms/PerspectiveTransformOperation.cpp
+    platform/graphics/transforms/RotateTransformOperation.cpp
+    platform/graphics/transforms/ScaleTransformOperation.cpp
+    platform/graphics/transforms/SkewTransformOperation.cpp
+    platform/graphics/transforms/TransformOperations.cpp
+    platform/graphics/transforms/TransformationMatrix.cpp
+    platform/graphics/transforms/TranslateTransformOperation.cpp
+
+    platform/image-decoders/ImageDecoder.cpp
+    platform/image-decoders/bmp/BMPImageDecoder.cpp
+    platform/image-decoders/bmp/BMPImageReader.cpp
+    platform/image-decoders/gif/GIFImageDecoder.cpp
+    platform/image-decoders/gif/GIFImageReader.cpp
+    platform/image-decoders/ico/ICOImageDecoder.cpp
+    platform/image-decoders/jpeg/JPEGImageDecoder.cpp
+    platform/image-decoders/png/PNGImageDecoder.cpp
+
+    platform/mock/GeolocationServiceMock.cpp
+
+    platform/network/AuthenticationChallengeBase.cpp
+    platform/network/Credential.cpp
+    platform/network/FormData.cpp
+    platform/network/FormDataBuilder.cpp
+    platform/network/HTTPHeaderMap.cpp
+    platform/network/HTTPParsers.cpp
+    platform/network/NetworkStateNotifier.cpp
+    platform/network/ProtectionSpace.cpp
+    platform/network/ResourceErrorBase.cpp
+    platform/network/ResourceHandle.cpp
+    platform/network/ResourceRequestBase.cpp
+    platform/network/ResourceResponseBase.cpp
+
+    platform/sql/SQLValue.cpp
+    platform/sql/SQLiteAuthorizer.cpp
+    platform/sql/SQLiteDatabase.cpp
+    platform/sql/SQLiteFileSystem.cpp
+    platform/sql/SQLiteStatement.cpp
+    platform/sql/SQLiteTransaction.cpp
+
+    platform/text/Base64.cpp
+    platform/text/BidiContext.cpp
+    platform/text/RegularExpression.cpp
+    platform/text/SegmentedString.cpp
+    platform/text/String.cpp
+    platform/text/StringBuilder.cpp
+    platform/text/TextBoundaries.cpp
+    platform/text/TextCodec.cpp
+    platform/text/TextCodecLatin1.cpp
+    platform/text/TextCodecUTF16.cpp
+    platform/text/TextCodecUserDefined.cpp
+    platform/text/TextEncoding.cpp
+    platform/text/TextEncodingRegistry.cpp
+    platform/text/TextStream.cpp
+    platform/text/UnicodeRange.cpp
+
+    plugins/MimeTypeArray.cpp
+    plugins/MimeType.cpp
+    plugins/PluginArray.cpp
+    plugins/Plugin.cpp
+    plugins/PluginData.cpp
+    plugins/PluginDataNone.cpp
+    plugins/PluginMainThreadScheduler.cpp
+    plugins/PluginViewNone.cpp
+    plugins/npapi.cpp
+
+    rendering/AutoTableLayout.cpp
+    rendering/BidiRun.cpp
+    rendering/CounterNode.cpp
+    rendering/EllipsisBox.cpp
+    rendering/FixedTableLayout.cpp
+    rendering/HitTestResult.cpp
+    rendering/InlineBox.cpp
+    rendering/InlineFlowBox.cpp
+    rendering/InlineTextBox.cpp
+    rendering/LayoutState.cpp
+    rendering/RenderApplet.cpp
+    rendering/RenderArena.cpp
+    rendering/RenderBR.cpp
+    rendering/RenderBlock.cpp
+    rendering/RenderBlockLineLayout.cpp
+    rendering/RenderBox.cpp
+    rendering/RenderBoxModelObject.cpp
+    rendering/RenderButton.cpp
+    rendering/RenderCounter.cpp
+    rendering/RenderDataGrid.cpp
+    rendering/RenderEmbeddedObject.cpp
+    rendering/RenderFieldset.cpp
+    rendering/RenderFileUploadControl.cpp
+    rendering/RenderFlexibleBox.cpp
+    rendering/RenderFrame.cpp
+    rendering/RenderFrameBase.cpp
+    rendering/RenderFrameSet.cpp
+    rendering/RenderHTMLCanvas.cpp
+    rendering/RenderIFrame.cpp
+    rendering/RenderImage.cpp
+    rendering/RenderImageGeneratedContent.cpp
+    rendering/RenderInline.cpp
+    rendering/RenderLayer.cpp
+    rendering/RenderLineBoxList.cpp
+    rendering/RenderListBox.cpp
+    rendering/RenderListItem.cpp
+    rendering/RenderListMarker.cpp
+    rendering/RenderMarquee.cpp
+    rendering/RenderMenuList.cpp
+    rendering/RenderObject.cpp
+    rendering/RenderObjectChildList.cpp
+    rendering/RenderPart.cpp
+    rendering/RenderProgress.cpp
+    rendering/RenderReplaced.cpp
+    rendering/RenderReplica.cpp
+    rendering/RenderRuby.cpp
+    rendering/RenderRubyBase.cpp
+    rendering/RenderRubyRun.cpp
+    rendering/RenderRubyText.cpp
+    rendering/RenderScrollbar.cpp
+    rendering/RenderScrollbarPart.cpp
+    rendering/RenderScrollbarTheme.cpp
+    rendering/RenderSlider.cpp
+    rendering/RenderTable.cpp
+    rendering/RenderTableCell.cpp
+    rendering/RenderTableCol.cpp
+    rendering/RenderTableRow.cpp
+    rendering/RenderTableSection.cpp
+    rendering/RenderText.cpp
+    rendering/RenderTextControl.cpp
+    rendering/RenderTextControlMultiLine.cpp
+    rendering/RenderTextControlSingleLine.cpp
+    rendering/RenderTextFragment.cpp
+    rendering/RenderTheme.cpp
+    rendering/RenderTreeAsText.cpp
+    rendering/RenderView.cpp
+    rendering/RenderWidget.cpp
+    rendering/RenderWordBreak.cpp
+    rendering/RootInlineBox.cpp
+    rendering/ScrollBehavior.cpp
+    rendering/TextControlInnerElements.cpp
+    rendering/TransformState.cpp
+    rendering/break_lines.cpp
+    rendering/style/BindingURI.cpp
+    rendering/style/ContentData.cpp
+    rendering/style/CounterDirectives.cpp
+    rendering/style/FillLayer.cpp
+    rendering/style/KeyframeList.cpp
+    rendering/style/NinePieceImage.cpp
+    rendering/style/RenderStyle.cpp
+    rendering/style/ShadowData.cpp
+    rendering/style/StyleBackgroundData.cpp
+    rendering/style/StyleBoxData.cpp
+    rendering/style/StyleCachedImage.cpp
+    rendering/style/StyleFlexibleBoxData.cpp
+    rendering/style/StyleGeneratedImage.cpp
+    rendering/style/StyleInheritedData.cpp
+    rendering/style/StyleMarqueeData.cpp
+    rendering/style/StyleMultiColData.cpp
+    rendering/style/StyleRareInheritedData.cpp
+    rendering/style/StyleRareNonInheritedData.cpp
+    rendering/style/StyleSurroundData.cpp
+    rendering/style/StyleTransformData.cpp
+    rendering/style/StyleVisualData.cpp
+
+    storage/AbstractDatabase.cpp
+    storage/ChangeVersionWrapper.cpp
+    storage/Database.cpp
+    storage/DatabaseAuthorizer.cpp
+    storage/DatabaseSync.cpp
+    storage/DatabaseTask.cpp
+    storage/DatabaseThread.cpp
+    storage/DatabaseTracker.cpp
+    storage/LocalStorageTask.cpp
+    storage/LocalStorageThread.cpp
+    storage/OriginQuotaManager.cpp
+    storage/OriginUsageRecord.cpp
+    storage/SQLResultSet.cpp
+    storage/SQLResultSetRowList.cpp
+    storage/SQLStatement.cpp
+    storage/SQLTransaction.cpp
+    storage/SQLTransactionClient.cpp
+    storage/SQLTransactionCoordinator.cpp
+    storage/SQLTransactionSync.cpp
+    storage/Storage.cpp
+    storage/StorageAreaImpl.cpp
+    storage/StorageAreaSync.cpp
+    storage/StorageEvent.cpp
+    storage/StorageEventDispatcher.cpp
+    storage/StorageMap.cpp
+    storage/StorageNamespace.cpp
+    storage/StorageNamespaceImpl.cpp
+    storage/StorageSyncManager.cpp
+
+    workers/AbstractWorker.cpp
+    workers/DedicatedWorkerContext.cpp
+    workers/DedicatedWorkerThread.cpp
+    workers/DefaultSharedWorkerRepository.cpp
+    workers/SharedWorker.cpp
+    workers/SharedWorkerContext.cpp
+    workers/SharedWorkerThread.cpp
+    workers/Worker.cpp
+    workers/WorkerContext.cpp
+    workers/WorkerLocation.cpp
+    workers/WorkerMessagingProxy.cpp
+    workers/WorkerRunLoop.cpp
+    workers/WorkerScriptLoader.cpp
+    workers/WorkerThread.cpp
+
+    xml/DOMParser.cpp
+    xml/NativeXPathNSResolver.cpp
+    xml/XMLHttpRequest.cpp
+    xml/XMLHttpRequestProgressEventThrottle.cpp
+    xml/XMLHttpRequestUpload.cpp
+    xml/XMLSerializer.cpp
+    xml/XPathEvaluator.cpp
+    xml/XPathExpression.cpp
+    xml/XPathExpressionNode.cpp
+    xml/XPathFunctions.cpp
+    xml/XPathNSResolver.cpp
+    xml/XPathNamespace.cpp
+    xml/XPathNodeSet.cpp
+    xml/XPathParser.cpp
+    xml/XPathPath.cpp
+    xml/XPathPredicate.cpp
+    xml/XPathResult.cpp
+    xml/XPathStep.cpp
+    xml/XPathUtil.cpp
+    xml/XPathValue.cpp
+    xml/XPathVariableReference.cpp
+    xml/XSLImportRule.cpp
+    xml/XSLStyleSheetLibxslt.cpp
+    xml/XSLTExtensions.cpp
+    xml/XSLTProcessor.cpp
+    xml/XSLTProcessorLibxslt.cpp
+    xml/XSLTUnicodeSort.cpp
+)
+
+IF (ENABLE_SVG)
+    LIST(APPEND WebCore_SOURCES
+        ${DERIVED_SOURCES_DIR}/JSSVGElementWrapperFactory.cpp
+        ${DERIVED_SOURCES_DIR}/SVGElementFactory.cpp
+        ${DERIVED_SOURCES_DIR}/SVGNames.cpp
+        ${DERIVED_SOURCES_DIR}/XLinkNames.cpp
+        bindings/js/JSSVGElementInstanceCustom.cpp
+        bindings/js/JSSVGLengthCustom.cpp
+        bindings/js/JSSVGMatrixCustom.cpp
+        bindings/js/JSSVGPathSegCustom.cpp
+        bindings/js/JSSVGPathSegListCustom.cpp
+        css/SVGCSSComputedStyleDeclaration.cpp
+        css/SVGCSSParser.cpp
+        css/SVGCSSStyleSelector.cpp
+        rendering/PointerEventsHitRules.cpp
+        rendering/RenderForeignObject.cpp
+        rendering/RenderPath.cpp
+        rendering/RenderSVGBlock.cpp
+        rendering/RenderSVGContainer.cpp
+        rendering/RenderSVGGradientStop.cpp
+        rendering/RenderSVGHiddenContainer.cpp
+        rendering/RenderSVGImage.cpp
+        rendering/RenderSVGInline.cpp
+        rendering/RenderSVGInlineText.cpp
+        rendering/RenderSVGModelObject.cpp
+        rendering/RenderSVGResource.cpp
+        rendering/RenderSVGResourceClipper.cpp
+        rendering/RenderSVGResourceFilter.cpp
+        rendering/RenderSVGResourceGradient.cpp
+        rendering/RenderSVGResourceLinearGradient.cpp
+        rendering/RenderSVGResourceMarker.cpp
+        rendering/RenderSVGResourceMasker.cpp
+        rendering/RenderSVGResourcePattern.cpp
+        rendering/RenderSVGResourceRadialGradient.cpp
+        rendering/RenderSVGResourceSolidColor.cpp
+        rendering/RenderSVGRoot.cpp
+        rendering/RenderSVGShadowTreeRootContainer.cpp
+        rendering/RenderSVGTSpan.cpp
+        rendering/RenderSVGText.cpp
+        rendering/RenderSVGTextPath.cpp
+        rendering/RenderSVGTransformableContainer.cpp
+        rendering/RenderSVGViewportContainer.cpp
+        rendering/SVGCharacterData.cpp
+        rendering/SVGCharacterLayoutInfo.cpp
+        rendering/SVGInlineFlowBox.cpp
+        rendering/SVGInlineTextBox.cpp
+        rendering/SVGMarkerLayoutInfo.cpp
+        rendering/SVGRenderSupport.cpp
+        rendering/SVGRenderTreeAsText.cpp
+        rendering/SVGRootInlineBox.cpp
+        rendering/SVGShadowTreeElements.cpp
+        rendering/SVGTextLayoutUtilities.cpp
+        rendering/style/SVGRenderStyle.cpp
+        rendering/style/SVGRenderStyleDefs.cpp
+        svg/ColorDistance.cpp
+        svg/SVGAElement.cpp
+        svg/SVGAltGlyphElement.cpp
+        svg/SVGAngle.cpp
+        svg/SVGAnimateColorElement.cpp
+        svg/SVGAnimateElement.cpp
+        svg/SVGAnimateMotionElement.cpp
+        svg/SVGAnimateTransformElement.cpp
+        svg/SVGAnimatedPathData.cpp
+        svg/SVGAnimatedPoints.cpp
+        svg/SVGAnimationElement.cpp
+        svg/SVGCircleElement.cpp
+        svg/SVGClipPathElement.cpp
+        svg/SVGColor.cpp
+        svg/SVGComponentTransferFunctionElement.cpp
+        svg/SVGCursorElement.cpp
+        svg/SVGDefsElement.cpp
+        svg/SVGDescElement.cpp
+        svg/SVGDocument.cpp
+        svg/SVGDocumentExtensions.cpp
+        svg/SVGElement.cpp
+        svg/SVGElementInstance.cpp
+        svg/SVGElementInstanceList.cpp
+        svg/SVGEllipseElement.cpp
+        svg/SVGExternalResourcesRequired.cpp
+        svg/SVGFEBlendElement.cpp
+        svg/SVGFEColorMatrixElement.cpp
+        svg/SVGFEComponentTransferElement.cpp
+        svg/SVGFECompositeElement.cpp
+        svg/SVGFEDiffuseLightingElement.cpp
+        svg/SVGFEDisplacementMapElement.cpp
+        svg/SVGFEDistantLightElement.cpp
+        svg/SVGFEFloodElement.cpp
+        svg/SVGFEFuncAElement.cpp
+        svg/SVGFEFuncBElement.cpp
+        svg/SVGFEFuncGElement.cpp
+        svg/SVGFEFuncRElement.cpp
+        svg/SVGFEGaussianBlurElement.cpp
+        svg/SVGFEImageElement.cpp
+        svg/SVGFELightElement.cpp
+        svg/SVGFEMergeElement.cpp
+        svg/SVGFEMergeNodeElement.cpp
+        svg/SVGFEMorphologyElement.cpp
+        svg/SVGFEOffsetElement.cpp
+        svg/SVGFEPointLightElement.cpp
+        svg/SVGFESpecularLightingElement.cpp
+        svg/SVGFESpotLightElement.cpp
+        svg/SVGFETileElement.cpp
+        svg/SVGFETurbulenceElement.cpp
+        svg/SVGFilterElement.cpp
+        svg/SVGFilterPrimitiveStandardAttributes.cpp
+        svg/SVGFitToViewBox.cpp
+        svg/SVGFont.cpp
+        svg/SVGFontData.cpp
+        svg/SVGFontElement.cpp
+        svg/SVGFontFaceElement.cpp
+        svg/SVGFontFaceFormatElement.cpp
+        svg/SVGFontFaceNameElement.cpp
+        svg/SVGFontFaceSrcElement.cpp
+        svg/SVGFontFaceUriElement.cpp
+        svg/SVGForeignObjectElement.cpp
+        svg/SVGGElement.cpp
+        svg/SVGGlyphElement.cpp
+        svg/SVGGradientElement.cpp
+        svg/SVGHKernElement.cpp
+        svg/SVGImageElement.cpp
+        svg/SVGImageLoader.cpp
+        svg/SVGLangSpace.cpp
+        svg/SVGLength.cpp
+        svg/SVGLengthList.cpp
+        svg/SVGLineElement.cpp
+        svg/SVGLinearGradientElement.cpp
+        svg/SVGLocatable.cpp
+        svg/SVGMPathElement.cpp
+        svg/SVGMarkerElement.cpp
+        svg/SVGMaskElement.cpp
+        svg/SVGMetadataElement.cpp
+        svg/SVGMissingGlyphElement.cpp
+        svg/SVGNumberList.cpp
+        svg/SVGPaint.cpp
+        svg/SVGParserUtilities.cpp
+        svg/SVGPathElement.cpp
+        svg/SVGPathSegArc.cpp
+        svg/SVGPathSegClosePath.cpp
+        svg/SVGPathSegCurvetoCubic.cpp
+        svg/SVGPathSegCurvetoCubicSmooth.cpp
+        svg/SVGPathSegCurvetoQuadratic.cpp
+        svg/SVGPathSegCurvetoQuadraticSmooth.cpp
+        svg/SVGPathSegLineto.cpp
+        svg/SVGPathSegLinetoHorizontal.cpp
+        svg/SVGPathSegLinetoVertical.cpp
+        svg/SVGPathSegList.cpp
+        svg/SVGPathSegMoveto.cpp
+        svg/SVGPatternElement.cpp
+        svg/SVGPointList.cpp
+        svg/SVGPolyElement.cpp
+        svg/SVGPolygonElement.cpp
+        svg/SVGPolylineElement.cpp
+        svg/SVGPreserveAspectRatio.cpp
+        svg/SVGRadialGradientElement.cpp
+        svg/SVGRectElement.cpp
+        svg/SVGSVGElement.cpp
+        svg/SVGScriptElement.cpp
+        svg/SVGSetElement.cpp
+        svg/SVGStopElement.cpp
+        svg/SVGStringList.cpp
+        svg/SVGStylable.cpp
+        svg/SVGStyleElement.cpp
+        svg/SVGStyledElement.cpp
+        svg/SVGStyledLocatableElement.cpp
+        svg/SVGStyledTransformableElement.cpp
+        svg/SVGSwitchElement.cpp
+        svg/SVGSymbolElement.cpp
+        svg/SVGTRefElement.cpp
+        svg/SVGTSpanElement.cpp
+        svg/SVGTests.cpp
+        svg/SVGTextContentElement.cpp
+        svg/SVGTextElement.cpp
+        svg/SVGTextPathElement.cpp
+        svg/SVGTextPositioningElement.cpp
+        svg/SVGTitleElement.cpp
+        svg/SVGTransform.cpp
+        svg/SVGTransformDistance.cpp
+        svg/SVGTransformList.cpp
+        svg/SVGTransformable.cpp
+        svg/SVGURIReference.cpp
+        svg/SVGUseElement.cpp
+        svg/SVGViewElement.cpp
+        svg/SVGVKernElement.cpp
+        svg/SVGViewSpec.cpp
+        svg/SVGZoomAndPan.cpp
+        svg/SVGZoomEvent.cpp
+        svg/animation/SMILTime.cpp
+        svg/animation/SMILTimeContainer.cpp
+        svg/animation/SVGSMILElement.cpp
+        svg/graphics/SVGImage.cpp
+        svg/graphics/filters/SVGFEConvolveMatrix.cpp
+        svg/graphics/filters/SVGFEDiffuseLighting.cpp
+        svg/graphics/filters/SVGFEDisplacementMap.cpp
+        svg/graphics/filters/SVGFEFlood.cpp
+        svg/graphics/filters/SVGFEImage.cpp
+        svg/graphics/filters/SVGFELighting.cpp
+        svg/graphics/filters/SVGFEMerge.cpp
+        svg/graphics/filters/SVGFEMorphology.cpp
+        svg/graphics/filters/SVGFEOffset.cpp
+        svg/graphics/filters/SVGFESpecularLighting.cpp
+        svg/graphics/filters/SVGFETile.cpp
+        svg/graphics/filters/SVGFETurbulence.cpp
+        svg/graphics/filters/SVGFilter.cpp
+        svg/graphics/filters/SVGFilterBuilder.cpp
+        svg/graphics/filters/SVGLightSource.cpp
+    )
+ENDIF()
+
+SET(IDL_INCLUDES "")
+FOREACH (_include ${WebCore_IDL_INCLUDES})
+    LIST(APPEND IDL_INCLUDES --include=${WEBCORE_DIR}/${_include})
+ENDFOREACH()
+
+FOREACH (_file ${WebCore_IDL_FILES})
+    GENERATE_JS_FROM_IDL(${_file})
+ENDFOREACH ()
+
+FOREACH (_file ${WebCore_IDL_PURE_FILES})
+    GENERATE_JS_FROM_IDL_PURE(${_file})
+ENDFOREACH ()
+
+LIST(APPEND WebCore_SOURCES ${JS_IDL_FILES})
+
+GENERATE_GPERF("c" ${WEBCORE_DIR}/html/HTMLEntityNames.gperf findEntity "-c")
+GENERATE_GPERF("c" ${WEBCORE_DIR}/platform/ColorData.gperf findColor "")
+GENERATE_GPERF("cpp" ${WEBCORE_DIR}/html/DocTypeStrings.gperf findDoctypeEntry "-F,PubIDInfo::eAlmostStandards,PubIDInfo::eAlmostStandards")
+
+GENERATE_TOKENIZER()
+GENERATE_USER_AGENT_STYLES()
+
+GENERATE_GRAMMAR(cssyy ${WEBCORE_DIR}/css/CSSGrammar.y)
+GENERATE_GRAMMAR(xpathyy ${WEBCORE_DIR}/xml/XPathGrammar.y)
+
+GENERATE_CSS_PROPERTY_NAMES()
+GENERATE_CSS_VALUE_KEYWORDS()
+
+ADD_SOURCE_DERIVED_DEPENDENCIES(${DERIVED_SOURCES_DIR}/CSSGrammar.cpp CSSValueKeywords.h)
+ADD_SOURCE_DERIVED_DEPENDENCIES(${DERIVED_SOURCES_DIR}/CSSGrammar.cpp CSSPropertyNames.h)
+ADD_SOURCE_DERIVED_DEPENDENCIES(${WEBCORE_DIR}/css/CSSPrimitiveValueMappings.h CSSValueKeywords.h)
+ADD_SOURCE_DERIVED_DEPENDENCIES(${WEBCORE_DIR}/html/HTMLDocument.cpp DocTypeStrings.cpp)
+ADD_SOURCE_DERIVED_DEPENDENCIES(${WEBCORE_DIR}/platform/graphics/Color.cpp ColorData.c)
+ADD_SOURCE_DERIVED_DEPENDENCIES(${WEBCORE_DIR}/css/CSSParser.cpp tokenizer.cpp)
+ADD_SOURCE_DERIVED_DEPENDENCIES(${WEBCORE_DIR}/html/PreloadScanner.cpp HTMLEntityNames.c)
+ADD_SOURCE_DERIVED_DEPENDENCIES(${WEBCORE_DIR}/css/CSSStyleSelector.cpp UserAgentStyleSheetsData.cpp UserAgentStyleSheets.h)
+
+GENERATE_DOM_NAMES_FACTORY(HTML ${WEBCORE_DIR}/html/HTMLTagNames.in ${WEBCORE_DIR}/html/HTMLAttributeNames.in "${HTML_FEATURES}")
+GENERATE_DOM_NAMES_FACTORY(SVG ${WEBCORE_DIR}/svg/svgtags.in ${WEBCORE_DIR}/svg/svgattrs.in "${SVG_FEATURES}")
+GENERATE_DOM_NAMES_ONLY(XLink ${WEBCORE_DIR}/svg/xlinkattrs.in)
+GENERATE_DOM_NAMES_ONLY(XMLNS ${WEBCORE_DIR}/xml/xmlnsattrs.in)
+GENERATE_DOM_NAMES_ONLY(XML ${WEBCORE_DIR}/xml/xmlattrs.in)
+
+SET(WebCore_LIBRARIES
+    ${JavaScriptCore_LIBRARY_NAME}
+)
+
+
+# Declare source groups for Visual Studio folders
+SOURCE_GROUP(accessibility "accessibility/")
+SOURCE_GROUP(bindings "bindings/")
+SOURCE_GROUP(bridge "bridge/")
+SOURCE_GROUP(Configurations "Configurations/")
+SOURCE_GROUP(css "css/")
+SOURCE_GROUP(dom "dom/")
+SOURCE_GROUP(editing "editing/")
+SOURCE_GROUP(ForwardingHeaders "ForwardingHeaders/")
+SOURCE_GROUP(history "history/")
+SOURCE_GROUP(html "html/")
+SOURCE_GROUP(icu "icu/")
+SOURCE_GROUP(inspector "inspector/")
+SOURCE_GROUP(JavaScriptCore "JavaScriptCore/")
+SOURCE_GROUP(loader "loader/")
+SOURCE_GROUP(manual-tests "manual-tests/")
+SOURCE_GROUP(mathml "mathml/")
+SOURCE_GROUP(notifications "notifications/")
+SOURCE_GROUP(page "page/")
+SOURCE_GROUP(platform "platform/")
+SOURCE_GROUP(plugins "plugins/")
+SOURCE_GROUP(Programs "Programs/")
+SOURCE_GROUP(rendering "rendering/")
+SOURCE_GROUP(Resources "Resources/")
+SOURCE_GROUP(SharedScript "SharedScript/")
+SOURCE_GROUP(storage "storage/")
+SOURCE_GROUP(svg "svg/")
+SOURCE_GROUP(WebCore "WebCore/")
+SOURCE_GROUP(websockets "websockets/")
+SOURCE_GROUP(wml "wml/")
+SOURCE_GROUP(workers "workers/")
+SOURCE_GROUP(xml "xml/")
+
+INCLUDE_IF_EXISTS(${WEBCORE_DIR}/CMakeLists${PORT}.txt)
+
+ADD_DEFINITIONS(-DBUILDING_WebCore)
+INCLUDE_DIRECTORIES(${WebCore_INCLUDE_DIRECTORIES})
+ADD_LIBRARY(${WebCore_LIBRARY_NAME} ${WebCore_LIBRARY_TYPE} ${WebCore_SOURCES})
+TARGET_LINK_LIBRARIES(${WebCore_LIBRARY_NAME} ${WebCore_LIBRARIES})
+
+INSTALL(TARGETS ${WebCore_LIBRARY_NAME} DESTINATION lib)
diff --git a/WebCore/CMakeListsEfl.txt b/WebCore/CMakeListsEfl.txt
new file mode 100644 (file)
index 0000000..b4667af
--- /dev/null
@@ -0,0 +1,136 @@
+LIST(APPEND WebCore_INCLUDE_DIRECTORIES
+  "${JAVASCRIPTCORE_DIR}/wtf/gobject"
+  "${JAVASCRIPTCORE_DIR}/wtf/text"
+  "${WEBCORE_DIR}/platform/efl"
+  "${WEBCORE_DIR}/platform/text/efl"
+  "${WEBCORE_DIR}/platform/graphics/efl"
+  "${WEBCORE_DIR}/page/efl"
+  "${WEBCORE_DIR}/acessibility/efl"
+  "${WEBKIT_DIR}/efl/WebCoreSupport"
+  "${WEBKIT_DIR}/efl/ewk"
+)
+
+LIST(APPEND WebCore_SOURCES
+  accessibility/efl/AccessibilityObjectEfl.cpp
+  page/efl/DragControllerEfl.cpp
+  page/efl/EventHandlerEfl.cpp
+  page/efl/FrameEfl.cpp
+  platform/efl/ClipboardEfl.cpp
+  platform/efl/ContextMenuEfl.cpp
+  platform/efl/ContextMenuItemEfl.cpp
+  platform/efl/CursorEfl.cpp
+  platform/efl/DragDataEfl.cpp
+  platform/efl/DragImageEfl.cpp
+  platform/efl/EventLoopEfl.cpp
+  platform/efl/FileChooserEfl.cpp
+  platform/efl/FileSystemEfl.cpp
+  platform/efl/KURLEfl.cpp
+  platform/efl/Language.cpp
+  platform/efl/LocalizedStringsEfl.cpp
+  platform/efl/LoggingEfl.cpp
+  platform/efl/MIMETypeRegistryEfl.cpp
+  platform/efl/PasteboardEfl.cpp
+  platform/efl/PlatformKeyboardEventEfl.cpp
+  platform/efl/PlatformMouseEventEfl.cpp
+  platform/efl/PlatformScreenEfl.cpp
+  platform/efl/PlatformWheelEventEfl.cpp
+  platform/efl/PopupMenuEfl.cpp
+  platform/efl/RenderThemeEfl.cpp
+  platform/efl/ScrollViewEfl.cpp
+  platform/efl/ScrollbarEfl.cpp
+  platform/efl/ScrollbarThemeEfl.cpp
+  platform/efl/SearchPopupMenuEfl.cpp
+  platform/efl/SharedBufferEfl.cpp
+  platform/efl/SharedTimerEfl.cpp
+  platform/efl/SoundEfl.cpp
+  platform/efl/SystemTimeEfl.cpp
+  platform/efl/TemporaryLinkStubs.cpp
+  platform/efl/WidgetEfl.cpp
+  platform/graphics/efl/FloatRectEfl.cpp
+  platform/graphics/efl/FontEfl.cpp
+  platform/graphics/efl/IconEfl.cpp
+  platform/graphics/efl/ImageEfl.cpp
+  platform/graphics/efl/IntPointEfl.cpp
+  platform/graphics/efl/IntRectEfl.cpp
+  platform/posix/FileSystemPOSIX.cpp
+  platform/text/efl/TextBreakIteratorInternalICUEfl.cpp
+)
+
+IF (WTF_PLATFORM_CAIRO)
+  LIST(APPEND WebCore_INCLUDE_DIRECTORIES
+    "${WEBCORE_DIR}/platform/graphics/cairo"
+  )
+  LIST(APPEND WebCore_SOURCES
+    platform/graphics/cairo/FontCacheCairo.cpp
+    platform/graphics/cairo/FontCairo.cpp
+    platform/graphics/cairo/FontCustomPlatformData.cpp
+    platform/graphics/cairo/FontPlatformDataCairo.cpp
+    platform/graphics/cairo/GlyphPageTreeNodeCairo.cpp
+    platform/graphics/cairo/GradientCairo.cpp
+    platform/graphics/cairo/GraphicsContextCairo.cpp
+    platform/graphics/cairo/ImageBufferCairo.cpp
+    platform/graphics/cairo/ImageCairo.cpp
+    platform/graphics/cairo/PathCairo.cpp
+    platform/graphics/cairo/PatternCairo.cpp
+    platform/graphics/cairo/SimpleFontDataCairo.cpp
+    platform/graphics/cairo/TransformationMatrixCairo.cpp
+
+    platform/image-decoders/cairo/ImageDecoderCairo.cpp
+  )
+ENDIF ()
+
+IF (WTF_USE_SOUP)
+  LIST(APPEND WebCore_INCLUDE_DIRECTORIES
+    "${WEBCORE_DIR}/platform/network/soup"
+  )
+  LIST(APPEND WebCore_SOURCES
+    platform/network/soup/CookieJarSoup.cpp
+    platform/network/soup/GOwnPtrSoup.cpp
+    platform/network/soup/ResourceHandleSoup.cpp
+    platform/network/soup/ResourceRequestSoup.cpp
+    platform/network/soup/ResourceResponseSoup.cpp
+  )
+ENDIF ()
+
+IF (WTF_USE_ICU_UNICODE)
+  LIST(APPEND WebCore_SOURCES
+    editing/SmartReplaceICU.cpp
+    platform/text/TextEncodingDetectorICU.cpp
+    platform/text/TextBreakIteratorICU.cpp
+    platform/text/TextCodecICU.cpp
+  )
+ENDIF ()
+
+LIST(APPEND WebCore_LIBRARIES
+  ${Cairo_LIBRARIES}
+  ${ECORE_X_LIBRARIES}
+  ${EFLDEPS_LIBRARIES}
+  ${EVAS_LIBRARIES}
+  ${Freetype_LIBRARIES}
+  ${GDK_LIBRARIES}
+  ${Glib_LIBRARIES}
+  ${GTK_LIBRARIES}
+  ${ICU_LIBRARIES}
+  ${LIBSOUP24_LIBRARIES}
+  ${LIBXML2_LIBRARIES}
+  ${LIBXSLT_LIBRARIES}
+  ${Pango_LIBRARIES}
+  ${SQLITE_LIBRARIES}
+)
+
+LIST(APPEND WebCore_INCLUDE_DIRECTORIES
+  ${Cairo_INCLUDE_DIRS}
+  ${ECORE_X_INCLUDE_DIRS}
+  ${EFLDEPS_INCLUDE_DIRS}
+  ${EVAS_INCLUDE_DIRS}
+  ${Freetype_INCLUDE_DIRS}
+  ${GDK_INCLUDE_DIRS}
+  ${Glib_INCLUDE_DIRS}
+  ${GTK_INCLUDE_DIRS}
+  ${ICU_INCLUDE_DIRS}
+  ${LIBSOUP24_INCLUDE_DIRS}
+  ${LIBXML2_INCLUDE_DIRS}
+  ${LIBXSLT_INCLUDE_DIRS}
+  ${Pango_INCLUDE_DIRS}
+  ${SQLITE_INCLUDE_DIRS}
+)
index 99527fe..b675d66 100644 (file)
@@ -1,3 +1,14 @@
+2010-05-15  Leandro Pereira  <leandro@profusion.mobi>
+
+        Reviewed by Adam Treat.
+
+        [EFL] Add build system for the EFL port.
+        http://webkit.org/b/37945
+
+        * CMakeLists.txt: Added.
+        * CMakeListsEfl.txt: Added.
+        * config.h: Add conditional to look for cmakeconfig.h.
+
 2010-05-15  Adam Barth  <abarth@webkit.org>
 
         Reviewed by Darin Adler.
index bcee496..f9e5fda 100644 (file)
  */
 
 #if defined(HAVE_CONFIG_H) && HAVE_CONFIG_H
+#ifdef BUILDING_WITH_CMAKE
+#include "cmakeconfig.h"
+#else
 #include "autotoolsconfig.h"
 #endif
+#endif
 
 #include <wtf/Platform.h>
 
diff --git a/WebKit/CMakeLists.txt b/WebKit/CMakeLists.txt
new file mode 100644 (file)
index 0000000..5b0cebd
--- /dev/null
@@ -0,0 +1,63 @@
+SET(WebKit_INCLUDE_DIRECTORIES
+    "${WEBKIT_DIR}"
+    "${WEBCORE_DIR}"
+    "${WEBCORE_DIR}/bindings/js"
+    "${WEBCORE_DIR}/bridge"
+    "${WEBCORE_DIR}/bridge/jsc"
+    "${WEBCORE_DIR}/css"
+    "${WEBCORE_DIR}/dom"
+    "${WEBCORE_DIR}/editing"
+    "${WEBCORE_DIR}/history"
+    "${WEBCORE_DIR}/html"
+    "${WEBCORE_DIR}/inspector"
+    "${WEBCORE_DIR}/loader"
+    "${WEBCORE_DIR}/loader/icon"
+    "${WEBCORE_DIR}/page"
+    "${WEBCORE_DIR}/page/animation"
+    "${WEBCORE_DIR}/platform"
+    "${WEBCORE_DIR}/platform/animation"
+    "${WEBCORE_DIR}/platform/graphics"
+    "${WEBCORE_DIR}/platform/graphics/cairo"
+    "${WEBCORE_DIR}/platform/graphics/transforms"
+    "${WEBCORE_DIR}/platform/network"
+    "${WEBCORE_DIR}/platform/network/soup"
+    "${WEBCORE_DIR}/platform/sql"
+    "${WEBCORE_DIR}/platform/text"
+    "${WEBCORE_DIR}/plugins"
+    "${WEBCORE_DIR}/rendering"
+    "${WEBCORE_DIR}/rendering/style"
+    "${WEBCORE_DIR}/storage"
+    "${WEBCORE_DIR}/svg"
+    "${JAVASCRIPTCORE_DIR}"
+    "${JAVASCRIPTCORE_DIR}/ForwardingHeaders"
+    "${JAVASCRIPTCORE_DIR}/API"
+    "${JAVASCRIPTCORE_DIR}/assembler"
+    "${JAVASCRIPTCORE_DIR}/bytecode"
+    "${JAVASCRIPTCORE_DIR}/bytecompiler"
+    "${JAVASCRIPTCORE_DIR}/debugger"
+    "${JAVASCRIPTCORE_DIR}/interpreter"
+    "${JAVASCRIPTCORE_DIR}/jit"
+    "${JAVASCRIPTCORE_DIR}/parser"
+    "${JAVASCRIPTCORE_DIR}/profiler"
+    "${JAVASCRIPTCORE_DIR}/runtime"
+    "${JAVASCRIPTCORE_DIR}/wtf"
+    "${JAVASCRIPTCORE_DIR}/wtf/unicode"
+    "${DERIVED_SOURCES_DIR}"
+    "${CMAKE_BINARY_DIR}"
+)
+
+SET(WebKit_LIBRARIES
+    ${JavaScriptCore_LIBRARY_NAME}
+    ${WebCore_LIBRARY_NAME}
+)
+
+INCLUDE_IF_EXISTS(${WEBKIT_DIR}/CMakeLists${PORT}.txt)
+
+ADD_DEFINITIONS(-DBUILDING_WebKit)
+INCLUDE_DIRECTORIES(${WebKit_INCLUDE_DIRECTORIES})
+ADD_LIBRARY(${WebKit_LIBRARY_NAME} ${WebKit_LIBRARY_TYPE} ${WebKit_SOURCES})
+TARGET_LINK_LIBRARIES(${WebKit_LIBRARY_NAME} ${WebKit_LIBRARIES})
+ADD_TARGET_PROPERTIES(${WebKit_LIBRARY_NAME} LINK_FLAGS ${WebKit_LINK_FLAGS})
+
+INSTALL(TARGETS ${WebKit_LIBRARY_NAME} DESTINATION lib)
+
diff --git a/WebKit/CMakeListsEfl.txt b/WebKit/CMakeListsEfl.txt
new file mode 100644 (file)
index 0000000..046b613
--- /dev/null
@@ -0,0 +1,108 @@
+INCLUDE(WebKitEfl)
+
+LIST(APPEND WebKit_LINK_FLAGS
+    ${ECORE_X_LDFLAGS}
+    ${EDJE_LDFLAGS}
+    ${EFLDEPS_LDFLAGS}
+    ${EVAS_LDFLAGS}
+)
+
+LIST(APPEND WebKit_INCLUDE_DIRECTORIES
+    "${WEBKIT_DIR}/efl/ewk"
+    "${WEBKIT_DIR}/efl/WebCoreSupport"
+    ${Cairo_INCLUDE_DIRS}
+    ${ECORE_X_INCLUDE_DIRS}
+    ${EDJE_INCLUDE_DIRS}
+    ${EFLDEPS_INCLUDE_DIRS}
+    ${EVAS_INCLUDE_DIRS}
+    ${Gdk_INCLUDE_DIRS}
+    ${Glib_INCLUDE_DIRS}
+    ${LIBSOUP2_INCLUDE_DIRS}
+    ${LIBXML2_INCLUDE_DIRS}
+    ${LIBXSLT_INCLUDE_DIRS}
+    ${SQLITE_INCLUDE_DIRS}
+)
+
+LIST(APPEND WebKit_SOURCES
+    efl/WebCoreSupport/ChromeClientEfl.cpp
+    efl/WebCoreSupport/ContextMenuClientEfl
+    efl/WebCoreSupport/DragClientEfl.cpp
+    efl/WebCoreSupport/EditorClientEfl.cpp
+    efl/WebCoreSupport/FrameLoaderClientEfl.cpp
+    efl/WebCoreSupport/InspectorClientEfl.cpp
+
+    efl/ewk/ewk_frame.cpp
+    efl/ewk/ewk_history.cpp
+    efl/ewk/ewk_main.cpp
+    efl/ewk/ewk_settings.cpp
+    efl/ewk/ewk_util.cpp
+    efl/ewk/ewk_view.cpp
+    efl/ewk/ewk_view_single.c
+)
+
+LIST(APPEND WebKit_LIBRARIES
+    ${Cairo_LIBRARIES}
+    ${ECORE_X_LIBRARIES}
+    ${EFLDEPS_LIBRARIES}
+    ${Freetype_LIBRARIES}
+    ${Gdk_LIBRARIES}
+    ${Glib_LIBRARIES}
+    ${Gtk_LIBRARIES}
+    ${LIBSOUP_LIBRARIES}
+    ${LIBXML2_LIBRARIES}
+    ${Pango_LIBRARIES}
+    ${SQLITE_LIBRARIES}
+)
+
+FILE(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/WebKit/efl/DefaultTheme)
+GENERATE_EDJ(
+    ${WEBKIT_DIR}/efl/DefaultTheme/default.edc
+    ${CMAKE_BINARY_DIR}/WebKit/efl/DefaultTheme/default.edj
+    "-id;${WEBKIT_DIR}/efl/DefaultTheme"
+)
+
+SET(EWebLauncher_SOURCES
+    efl/DefaultTheme/default.edj
+    efl/EWebLauncher/main.c
+)
+
+SET(EWebLauncher_LIBRARIES
+    ${JavaScriptCore_LIBRARY_NAME}
+    ${WebCore_LIBRARY_NAME}
+    ${WebKit_LIBRARY_NAME}
+    ${Cairo_LIBRARIES}
+    ${ECORE_X_LIBRARIES}
+    ${EDJE_LIBRARIES}
+    ${EFLDEPS_LIBRARIES}
+    ${EVAS_LIBRARIES}
+    ${Gdk_LIBRARIES}
+    ${Glib_LIBRARIES}
+    ${LIBSOUP2_LIBRARIES}
+    ${LIBXML2_LIBRARIES}
+    ${LIBXSLT_LIBRARIES}
+    ${SQLITE_LIBRARIES}
+)
+
+SET(EWebLauncher_LINK_FLAGS
+    ${ECORE_X_LDFLAGS}
+    ${EDJE_LDFLAGS}
+    ${EFLDEPS_LDFLAGS}
+    ${EVAS_LDFLAGS}
+)
+
+ADD_EXECUTABLE(../Programs/EWebLauncher ${EWebLauncher_SOURCES})
+TARGET_LINK_LIBRARIES(../Programs/EWebLauncher ${EWebLauncher_LIBRARIES})
+ADD_TARGET_PROPERTIES(../Programs/EWebLauncher LINK_FLAGS ${EWebLauncher_LINK_FLAGS})
+
+CONFIGURE_FILE(
+    efl/ewebkit.pc.in
+    ${CMAKE_BINARY_DIR}/WebKit/efl/ewebkit.pc
+    @ONLY)
+INSTALL(FILES ${CMAKE_BINARY_DIR}/WebKit/efl/ewebkit.pc
+    DESTINATION lib/pkgconfig)
+
+FILE(GLOB EWebKit_HEADERS "${CMAKE_CURRENT_SOURCE_DIR}/efl/ewk/*.h")
+LIST(REMOVE_ITEM EWebKit_HEADERS "${CMAKE_CURRENT_SOURCE_DIR}/efl/ewk/ewk_private.h")
+
+INSTALL(FILES ${EWebKit_HEADERS}
+        DESTINATION include/EWebKit)
index caf5189..ea021c1 100644 (file)
@@ -1,3 +1,13 @@
+2010-05-15  Leandro Pereira  <leandro@profusion.mobi>
+
+        Reviewed by Adam Treat.
+
+        [EFL] Add build system for the EFL port.
+        http://webkit.org/b/37945
+
+        * CMakeLists.txt: Added.
+        * CMakeListsEfl.txt: Added.
+
 2010-05-14  Lucas De Marchi  <lucas.demarchi@profusion.mobi>
 
         Reviewed by David Levin.
diff --git a/cmake/FindCFLite.cmake b/cmake/FindCFLite.cmake
new file mode 100644 (file)
index 0000000..ea2c2f3
--- /dev/null
@@ -0,0 +1,22 @@
+# - Try to find the CFLite library
+# Once done this will define
+#
+#  CFLITE_FOUND - System has CFLite
+#  CFLITE_INCLUDE_DIR - The CFLite include directory
+#  CFLITE_LIBRARIES - The libraries needed to use CFLite
+
+# use pkg-config to get the directories and then use these values
+# in the FIND_PATH() and FIND_LIBRARY() calls
+FIND_PACKAGE(PkgConfig)
+
+FIND_PATH(CFLITE_INCLUDE_DIR NAMES CoreFoundation/CoreFoundation.h)
+
+FIND_LIBRARY(CFLITE_LIBRARIES NAMES CFLite.lib)
+
+INCLUDE(FindPackageHandleStandardArgs)
+
+# handle the QUIETLY and REQUIRED arguments and set COREFOUNDATION_FOUND to TRUE if
+# all listed variables are TRUE
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(CFLite DEFAULT_MSG CFLITE_LIBRARIES CFLITE_INCLUDE_DIR)
+
+MARK_AS_ADVANCED(CFLITE_INCLUDE_DIR CFLITE_LIBRARIES)
diff --git a/cmake/FindCairo.cmake b/cmake/FindCairo.cmake
new file mode 100644 (file)
index 0000000..acde22e
--- /dev/null
@@ -0,0 +1,34 @@
+# - Try to find Cairo
+# Once done, this will define
+#
+#  Cairo_FOUND - system has Cairo
+#  Cairo_INCLUDE_DIRS - the Cairo include directories
+#  Cairo_LIBRARIES - link these to use Cairo
+
+include(LibFindMacros)
+
+# Dependencies
+libfind_package(Cairo Freetype)
+
+# Use pkg-config to get hints about paths
+libfind_pkg_check_modules(Cairo_PKGCONF cairo)
+
+# Include dir
+find_path(Cairo_INCLUDE_DIR
+  NAMES cairo.h
+  PATHS ${Cairo_PKGCONF_INCLUDE_DIRS}
+  PATH_SUFFIXES cairo
+)
+
+# Finally the library itself
+find_library(Cairo_LIBRARY
+  NAMES cairo
+  PATHS ${Cairo_PKGCONF_LIBRARY_DIRS}
+)
+
+# Set the include dir variables and the libraries and let libfind_process do the rest.
+# NOTE: Singular variables for this library, plural for libraries this this lib depends on.
+set(Cairo_PROCESS_INCLUDES Cairo_INCLUDE_DIR Freetype_INCLUDE_DIRS)
+set(Cairo_PROCESS_LIBS Cairo_LIBRARY Freetype_LIBRARIES)
+libfind_process(Cairo)
+
diff --git a/cmake/FindEFL.cmake b/cmake/FindEFL.cmake
new file mode 100644 (file)
index 0000000..7dce495
--- /dev/null
@@ -0,0 +1,16 @@
+INCLUDE(FindPkgConfig)
+
+PKG_CHECK_MODULES (EDJE REQUIRED edje>=0.9.9.063)
+PKG_CHECK_MODULES (ECORE REQUIRED ecore>=0.9.9.063)
+PKG_CHECK_MODULES (ECORE_EVAS REQUIRED ecore-evas>=0.9.9.063)
+PKG_CHECK_MODULES (EFLDEPS REQUIRED
+  eina-0>=0.9.9.063
+  evas>=0.9.9.063
+  ecore>=0.9.9.063
+  ecore-file>=0.9.9.063
+  ecore-evas>=0.9.9.063
+  edje>=0.9.9.063)
+PKG_CHECK_MODULES (EINA REQUIRED eina-0>=0.9.9.063)
+PKG_CHECK_MODULES (ECORE_X REQUIRED ecore-x>=0.9.9.063)
+PKG_CHECK_MODULES (EVAS REQUIRED evas>=0.9.9.063)
+
diff --git a/cmake/FindFreetype.cmake b/cmake/FindFreetype.cmake
new file mode 100644 (file)
index 0000000..b4c1685
--- /dev/null
@@ -0,0 +1,31 @@
+# - Try to find Freetype2
+# Once done, this will define
+#
+#  Freetype_FOUND - system has Freetype
+#  Freetype_INCLUDE_DIRS - the Freetype include directories
+#  Freetype_LIBRARIES - link these to use Freetype
+
+include(LibFindMacros)
+
+# Use pkg-config to get hints about paths
+libfind_pkg_check_modules(Freetype_PKGCONF freetype2)
+
+# Include dir
+find_path(Freetype_INCLUDE_DIR
+  NAMES freetype/freetype.h
+  PATHS ${Freetype_PKGCONF_INCLUDE_DIRS}
+  PATH_SUFFIXES freetype2
+)
+
+# Finally the library itself
+find_library(Freetype_LIBRARY
+  NAMES freetype
+  PATHS ${Freetype_PKGCONF_LIBRARY_DIRS}
+)
+
+# Set the include dir variables and the libraries and let libfind_process do the rest.
+# NOTE: Singular variables for this library, plural for libraries this this lib depends on.
+set(Freetype_PROCESS_INCLUDES Freetype_INCLUDE_DIR)
+set(Freetype_PROCESS_LIBS Freetype_LIBRARY)
+libfind_process(Freetype)
+
diff --git a/cmake/FindGDK-PixBuf.cmake b/cmake/FindGDK-PixBuf.cmake
new file mode 100644 (file)
index 0000000..d21d87a
--- /dev/null
@@ -0,0 +1,32 @@
+# - Try to find gdk-pixbuf 2.0
+# Once done, this will define
+#
+#  GDK-PixBuf_FOUND - system has GDK-PixBuf
+#  GDK-PixBuf_INCLUDE_DIRS - the GDK-PixBuf include directories
+#  GDK-PixBuf_LIBRARIES - link these to use GDK-PixBuf
+
+include(LibFindMacros)
+
+# Use pkg-config to get hints about paths
+libfind_pkg_check_modules(GDK-PixBuf_PKGCONF gdk-pixbuf-2.0)
+
+# Main include dir
+find_path(GDK-PixBuf_INCLUDE_DIR
+  NAMES gdk-pixbuf/gdk-pixbuf.h
+  PATHS ${GDK-PixBuf_PKGCONF_INCLUDE_DIRS}
+  PATH_SUFFIXES gtk-2.0
+)
+
+# Finally the library itself
+find_library(GDK-PixBuf_LIBRARY
+  NAMES gdk_pixbuf-2.0
+  PATHS ${GDK-PixBuf_PKGCONF_LIBRARY_DIRS}
+)
+
+# Set the include dir variables and the libraries and let libfind_process do the rest.
+# NOTE: Singular variables for this library, plural for libraries this this lib depends on.
+set(GDK-PixBuf_PROCESS_INCLUDES GDK-PixBuf_INCLUDE_DIR)
+set(GDK-PixBuf_PROCESS_LIBS GDK-PixBuf_LIBRARY)
+libfind_process(GDK-PixBuf)
+
+
diff --git a/cmake/FindGDK.cmake b/cmake/FindGDK.cmake
new file mode 100644 (file)
index 0000000..f7c469e
--- /dev/null
@@ -0,0 +1,43 @@
+# - Try to find GDK 2.0
+# Once done, this will define
+#
+#  GDK_FOUND - system has GDK
+#  GDK_INCLUDE_DIRS - the GDK include directories
+#  GDK_LIBRARIES - link these to use GDK
+
+include(LibFindMacros)
+
+# Dependencies
+libfind_package(GDK GDK-PixBuf)
+libfind_package(GDK Pango)
+libfind_package(GDK GIO)
+
+# Use pkg-config to get hints about paths
+libfind_pkg_check_modules(GDK_PKGCONF gdk-2.0)
+
+# Main include dir
+find_path(GDK_INCLUDE_DIR
+  NAMES gdk/gdk.h
+  PATHS ${GDK_PKGCONF_INCLUDE_DIRS}
+  PATH_SUFFIXES gtk-2.0
+)
+
+# Glib-related libraries also use a separate config header, which is in lib dir
+find_path(GDKConfig_INCLUDE_DIR
+  NAMES gdkconfig.h
+  PATHS ${GDK_PKGCONF_INCLUDE_DIRS} /usr
+  PATH_SUFFIXES lib/gtk-2.0/include
+)
+
+# Finally the library itself
+find_library(GDK_LIBRARY
+  NAMES gdk-x11-2.0 gdk-win32-2.0
+  PATHS ${GDK_PKGCONF_LIBRARY_DIRS}
+)
+
+# Set the include dir variables and the libraries and let libfind_process do the rest.
+# NOTE: Singular variables for this library, plural for libraries this this lib depends on.
+set(GDK_PROCESS_INCLUDES GDK_INCLUDE_DIR GDKConfig_INCLUDE_DIR GDK-PixBuf_INCLUDE_DIRS Pango_INCLUDE_DIRS GIO_INCLUDE_DIRS)
+set(GDK_PROCESS_LIBS GDK_LIBRARY GDK-PixBuf_LIBRARIES Pango_LIBRARIES GIO_LIBRARIES)
+libfind_process(GDK)
+
diff --git a/cmake/FindGIO.cmake b/cmake/FindGIO.cmake
new file mode 100644 (file)
index 0000000..c32a3bf
--- /dev/null
@@ -0,0 +1,27 @@
+# - Try to find GIO 2.0
+# Once done, this will define
+#
+#  GIO_FOUND - system has GIO
+#  GIO_INCLUDE_DIRS - the GIO include directories
+#  GIO_LIBRARIES - link these to use GIO
+
+include(LibFindMacros)
+
+# Dependencies
+libfind_package(GIO Glib)
+
+# Use pkg-config to get hints about paths
+libfind_pkg_check_modules(GIO_PKGCONF gio-2.0)
+
+# Find the library
+find_library(GIO_LIBRARY
+  NAMES gio-2.0
+  PATHS ${GIO_PKGCONF_LIBRARY_DIRS}
+)
+
+# Set the include dir variables and the libraries and let libfind_process do the rest.
+# NOTE: Singular variables for this library, plural for libraries this this lib depends on.
+set(GIO_PROCESS_INCLUDES Glib_INCLUDE_DIRS)
+set(GIO_PROCESS_LIBS GIO_LIBRARY Glib_LIBRARIES)
+libfind_process(GIO)
+
diff --git a/cmake/FindGlib.cmake b/cmake/FindGlib.cmake
new file mode 100644 (file)
index 0000000..d3547d5
--- /dev/null
@@ -0,0 +1,39 @@
+# - Try to find Glib-2.0 (with gobject)
+# Once done, this will define
+#
+#  Glib_FOUND - system has Glib
+#  Glib_INCLUDE_DIRS - the Glib include directories
+#  Glib_LIBRARIES - link these to use Glib
+
+include(LibFindMacros)
+
+# Use pkg-config to get hints about paths
+libfind_pkg_check_modules(Glib_PKGCONF glib-2.0)
+
+# Main include dir
+find_path(Glib_INCLUDE_DIR
+  NAMES glib.h
+  PATHS ${Glib_PKGCONF_INCLUDE_DIRS}
+  PATH_SUFFIXES glib-2.0
+)
+
+# Glib-related libraries also use a separate config header, which is in lib dir
+find_path(GlibConfig_INCLUDE_DIR
+  NAMES glibconfig.h
+  PATHS ${Glib_PKGCONF_INCLUDE_DIRS} /usr
+  PATH_SUFFIXES lib/glib-2.0/include
+)
+
+# Finally the library itself
+find_library(Glib_LIBRARY
+  NAMES glib-2.0
+  PATHS ${Glib_PKGCONF_LIBRARY_DIRS}
+)
+
+# Set the include dir variables and the libraries and let libfind_process do the rest.
+# NOTE: Singular variables for this library, plural for libraries this this lib depends on.
+set(Glib_PROCESS_INCLUDES Glib_INCLUDE_DIR GlibConfig_INCLUDE_DIR)
+set(Glib_PROCESS_LIBS Glib_LIBRARY)
+libfind_process(Glib)
+
+
diff --git a/cmake/FindICU.cmake b/cmake/FindICU.cmake
new file mode 100644 (file)
index 0000000..225c731
--- /dev/null
@@ -0,0 +1,77 @@
+# Finds the International Components for Unicode (ICU) Library
+#
+#  ICU_FOUND          - True if ICU found.
+#  ICU_I18N_FOUND     - True if ICU's internationalization library found.
+#  ICU_INCLUDE_DIRS   - Directory to include to get ICU headers
+#                       Note: always include ICU headers as, e.g.,
+#                       unicode/utypes.h
+#  ICU_LIBRARIES      - Libraries to link against for the common ICU
+#  ICU_I18N_LIBRARIES - Libraries to link against for ICU internationaliation
+#                       (note: in addition to ICU_LIBRARIES)
+
+# Look for the header file.
+FIND_PATH(
+    ICU_INCLUDE_DIR
+    NAMES unicode/utypes.h
+    DOC "Include directory for the ICU library")
+MARK_AS_ADVANCED(ICU_INCLUDE_DIR)
+
+# Look for the library.
+FIND_LIBRARY(
+    ICU_LIBRARY
+    NAMES icuuc cygicuuc cygicuuc32
+    DOC "Libraries to link against for the common parts of ICU")
+MARK_AS_ADVANCED(ICU_LIBRARY)
+
+# Copy the results to the output variables.
+IF (ICU_INCLUDE_DIR AND ICU_LIBRARY)
+    SET(ICU_FOUND 1)
+    SET(ICU_LIBRARIES ${ICU_LIBRARY})
+    SET(ICU_INCLUDE_DIRS ${ICU_INCLUDE_DIR})
+
+    SET(ICU_VERSION 0)
+    SET(ICU_MAJOR_VERSION 0)
+    SET(ICU_MINOR_VERSION 0)
+    FILE(READ "${ICU_INCLUDE_DIR}/unicode/uversion.h" _ICU_VERSION_CONENTS)
+    STRING(REGEX REPLACE ".*#define U_ICU_VERSION_MAJOR_NUM ([0-9]+).*" "\\1" ICU_MAJOR_VERSION "${_ICU_VERSION_CONENTS}")
+    STRING(REGEX REPLACE ".*#define U_ICU_VERSION_MINOR_NUM ([0-9]+).*" "\\1" ICU_MINOR_VERSION "${_ICU_VERSION_CONENTS}")
+
+    SET(ICU_VERSION "${ICU_MAJOR_VERSION}.${ICU_MINOR_VERSION}")
+
+    # Look for the ICU internationalization libraries
+    FIND_LIBRARY(
+        ICU_I18N_LIBRARY
+        NAMES icuin icui18n cygicuin cygicuin32
+        DOC "Libraries to link against for ICU internationalization")
+    MARK_AS_ADVANCED(ICU_I18N_LIBRARY)
+    IF (ICU_I18N_LIBRARY)
+        SET(ICU_I18N_FOUND 1)
+        SET(ICU_I18N_LIBRARIES ${ICU_I18N_LIBRARY})
+    ELSE ()
+        SET(ICU_I18N_FOUND 0)
+        SET(ICU_I18N_LIBRARIES)
+    ENDIF ()
+ELSE ()
+    SET(ICU_FOUND 0)
+    SET(ICU_I18N_FOUND 0)
+    SET(ICU_LIBRARIES)
+    SET(ICU_I18N_LIBRARIES)
+    SET(ICU_INCLUDE_DIRS)
+    SET(ICU_VERSION)
+    SET(ICU_MAJOR_VERSION)
+    SET(ICU_MINOR_VERSION)
+ENDIF ()
+
+IF (ICU_FOUND)
+    IF (NOT ICU_FIND_QUIETLY)
+        MESSAGE(STATUS "Found ICU header files in ${ICU_INCLUDE_DIRS}")
+        MESSAGE(STATUS "Found ICU libraries: ${ICU_LIBRARIES}")
+    ENDIF ()
+ELSE ()
+    IF (ICU_FIND_REQUIRED)
+        MESSAGE(FATAL_ERROR "Could not find ICU")
+    ELSE ()
+        MESSAGE(STATUS "Optional package ICU was not found")
+    ENDIF ()
+ENDIF ()
+
diff --git a/cmake/FindLibSoup2.cmake b/cmake/FindLibSoup2.cmake
new file mode 100644 (file)
index 0000000..955066c
--- /dev/null
@@ -0,0 +1,186 @@
+# - Try to find libsoup
+# Find libsoup headers, libraries and the answer to all questions.
+#
+#  LIBSOUP2_FOUND                True if libsoup2 got found
+#  LIBSOUP2_INCLUDE_DIRS         Location of libsoup2 headers 
+#  LIBSOUP2_LIBRARIES            List of libaries to use libsoup2
+#  LIBSOUP2_LIBRARY_DIRS         Location of libsoup2 library
+#
+#  LIBSOUP22_FOUND               True if libsoup2.2 got found
+#  LIBSOUP22_INCLUDE_DIRS        Location of libsoup2.2 headers 
+#  LIBSOUP22_LIBRARIES           List of libaries to use libsoup2.2
+#  LIBSOUP22_LIBRARY_DIRS        Location of libsoup2.2 library
+#
+#  LIBSOUP24_FOUND               True if libsoup2.4 got found
+#  LIBSOUP24_INCLUDE_DIRS        Location of libsoup2.4 headers 
+#  LIBSOUP24_LIBRARIES           List of libaries to use libsoup2.4
+#  LIBSOUP24_LIBRARY_DIRS        Location of libsoup2.4 library
+#
+#  Set LIBSOUP2_MIN_VERSION to find libsoup2.2 or libsoup2.4 if only 
+#  one of both libraries is supported
+#
+#  Don't use LIBSOUP2_MIN_VERSION if you want to support 
+#  libsoup2.2 and libsoup2.4. 
+#  Instead use LIBSPOUP22_MIN_VERSION and LIBSPOUP24_MIN_VERSION.
+#
+#  Set LIBSPOUP22_MIN_VERSION to find libsoup2.2 which version is
+#  greater than LIBSPOUP22_MIN_VERSION
+#
+#  Set LIBSPOUP24_MIN_VERSION to find libsoup2.4 which version is
+#  greater than LIBSPOUP24_MIN_VERSION
+#
+#  WARNING: It is not possible to set LIBSPOUP22_MIN_VERSION 
+#  and support any version of libsoup2.4 at the same time.
+#  In this situation you have to set LIBSPOUP24_MIN_VERSION also.
+#  The same applies to LIBSPOUP24_MIN_VERSION and libsoup2.2.
+#
+#  Copyright (c) 2007 Daniel Gollub <gollub@b1-systems.de>
+#  Copyright (c) 2008 Bjoern Ricks  <bjoern.ricks@gmail.com>
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 
+# 1. Redistributions of source code must retain the copyright
+#    notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the copyright
+#    notice, this list of conditions and the following disclaimer in the
+#    documentation and/or other materials provided with the distribution.
+# 3. The name of the author may not be used to endorse or promote products
+#    derived from this software without specific prior written permission.
+# 
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+INCLUDE( FindPkgConfig )
+
+IF ( LibSoup2_FIND_REQUIRED )
+       SET( _pkgconfig_REQUIRED "REQUIRED" )
+ELSE( LibSoup2_FIND_REQUIRED )
+       SET( _pkgconfig_REQUIRED "" )
+ENDIF ( LibSoup2_FIND_REQUIRED )
+
+IF ( LIBSOUP2_MIN_VERSION )
+       STRING(REGEX REPLACE "^(2)(\\.)([0-9]*)(\\.?)(.*)" "\\3" LIBSOUP2_VERSION_MINOR "${LIBSOUP2_MIN_VERSION}")
+       IF ( LIBSOUP2_VERSION_MINOR EQUAL "2" )
+               SET( LIBSOUP22_MIN_VERSION "${LIBSOUP2_MIN_VERSION}" )
+       ELSE ( LIBSOUP2_VERSION_MINOR EQUAL "2" )
+               SET( LIBSOUP24_MIN_VERSION "${LIBSOUP2_MIN_VERSION}" )
+       ENDIF ( LIBSOUP2_VERSION_MINOR EQUAL "2" )
+ENDIF ( LIBSOUP2_MIN_VERSION )
+
+# try to find libsoup2.2>=LIBSOUP22_MIN_VERSION
+IF ( LIBSOUP22_MIN_VERSION )
+       PKG_SEARCH_MODULE( LIBSOUP22 libsoup-2.2>=${LIBSOUP22_MIN_VERSION} libsoup2>=${LIBSOUP22_MIN_VERSION} )
+ENDIF ( LIBSOUP22_MIN_VERSION )
+
+# try to find libsoup2.4>=LIBSOUP24_MIN_VERSION
+IF ( LIBSOUP24_MIN_VERSION )
+       PKG_SEARCH_MODULE( LIBSOUP24 libsoup-2.4>=${LIBSOUP24_MIN_VERSION} libsoup2>=${LIBSOUP24_MIN_VERSION} )
+ENDIF ( LIBSOUP24_MIN_VERSION )        
+
+# try to find any version of libsoup2.4 if LIBSOUP22_MIN_VERSION is not set
+IF ( NOT LIBSOUP24_FOUND AND NOT LIBSOUP22_MIN_VERSION )
+       PKG_SEARCH_MODULE( LIBSOUP24 libsoup-2.4 libsoup2 )
+ENDIF ( NOT LIBSOUP24_FOUND AND NOT LIBSOUP22_MIN_VERSION)
+
+# try to find any version of libsoup2.2 if LIBSOUP24_MIN_VERSION is not set
+IF ( NOT LIBSOUP22_FOUND AND NOT LIBSOUP24_MIN_VERSION )
+       PKG_SEARCH_MODULE( LIBSOUP22 libsoup-2.2 libsoup2 )
+ENDIF ( NOT LIBSOUP22_FOUND AND NOT LIBSOUP24_MIN_VERSION)
+
+# set LIBSOUP2_ variables
+IF ( LIBSOUP24_FOUND )
+       # prefer libsoup2.4 to libsoup2.2 if both are found
+       SET( LIBSOUP2_FOUND ${LIBSOUP24_FOUND} CACHE INTERNAL "" )
+       SET( LIBSOUP2_INCLUDE_DIRS ${LIBSOUP24_INCLUDE_DIRS} CACHE INTERNAL "" )
+       SET( LIBSOUP2_LIBRARIES ${LIBSOUP24_LIBRARIES} CACHE INTERNAL "" )
+       SET( LIBSOUP2_LIBRARY_DIRS ${LIBSOUP24_LIBRARY_DIRS} CACHE INTERNAL "" )
+       SET( LIBSOUP2_VERSION ${LIBSOUP24_VERSION} CACHE INTERNAL "" )
+ELSEIF ( LIBSOUP22_FOUND )
+       SET( LIBSOUP2_FOUND ${LIBSOUP22_FOUND} CACHE INTERNAL "" )
+       SET( LIBSOUP2_INCLUDE_DIRS ${LIBSOUP22_INCLUDE_DIRS} CACHE INTERNAL "" )
+       SET( LIBSOUP2_LIBRARIES ${LIBSOUP22_LIBRARIES} CACHE INTERNAL "" )
+       SET( LIBSOUP2_LIBRARY_DIRS ${LIBSOUP22_LIBRARY_DIRS} CACHE INTERNAL "" )
+       SET( LIBSOUP2_VERSION ${LIBSOUP22_VERSION} CACHE INTERNAL "" )
+ELSEIF( PKG_CONFIG_FOUND AND LibSoup2_FIND_REQUIRED )
+       # raise an error if both libs are not found 
+       # and FIND_PACKAGE( LibSoup2 REQUIRED ) was called
+       MESSAGE( SEND_ERROR "package libsoup2 not found" )
+ENDIF ( LIBSOUP24_FOUND )
+
+IF( NOT LIBSOUP2_FOUND AND NOT PKG_CONFIG_FOUND )
+       # WARNING:
+       # This case is executed if pkg-config isn't installed.
+       # Currently in this case it is only checked if libsoup2.2 is available.
+       # Therefore please don't use this cmake module without pkg-config!
+       FIND_PATH( _libsoup2_include_DIR libsoup/soup.h PATH_SUFFIXES libsoup libsoup-2.2 )
+       FIND_LIBRARY( _libsoup2_LIBRARY soup-2.2)
+
+       IF ( _libsoup2_include_DIR AND _libsoup2_LIBRARY )
+               SET ( _libsoup2_FOUND TRUE )
+       ENDIF ( _libsoup2_include_DIR AND _libsoup2_LIBRARY )
+
+       IF ( _libsoup2_FOUND )
+               SET ( LIBSOUP2_INCLUDE_DIRS ${_libsoup2_include_DIR} )
+               SET ( LIBSOUP2_LIBRARIES ${_libsoup2_LIBRARY} )
+       
+               # find requited glib2
+               IF( NOT GLIB2_FOUND )
+                       FIND_PACKAGE( GLIB2 REQUIRED )
+                       IF ( GLIB2_FOUND )
+                               SET ( LIBSOUP2_INCLUDE_DIRS ${LIBSOUP2_INCLUDE_DIRS} ${GLIB2_INCLUDE_DIRS} )
+                               SET ( LIBSOUP2_LIBRARIES ${LIBSOUP2_LIBRARIES} ${GLIB2_LIBRARIES} )
+                       ENDIF ( GLIB2_FOUND )
+               ENDIF( NOT GLIB2_FOUND )
+               
+               # find required libxml2
+               IF( NOT LIBXML2_FOUND )
+                       FIND_PACKAGE( LibXml2 REQUIRED )
+                       IF ( LIBXML2_FOUND )
+                               SET ( LIBSOUP2_INCLUDE_DIRS ${LIBSOUP2_INCLUDE_DIRS} ${LIBXML2_INCLUDE_DIRS} )
+                               SET ( LIBSOUP2_LIBRARIES ${LIBSOUP2_LIBRARIES} ${LIBXML2_LIBRARIES} )
+                       ENDIF( LIBXML2_FOUND )
+               ENDIF( NOT LIBXML2_FOUND )
+               
+               # find required gnutls
+               IF( NOT GNUTLS_FOUND )
+                       FIND_PACKAGE( GNUTLS REQUIRED )
+                       IF ( GNUTLS_FOUND )
+                               SET ( LIBSOUP2_INCLUDE_DIRS ${LIBSOUP2_INCLUDE_DIRS} ${GNUTLS_INCLUDE_DIRS} )
+                               SET ( LIBSOUP2_LIBRARIES ${LIBSOUP2_LIBRARIES} ${GNUTLS_LIBRARIES} )
+                       ENDIF( GNUTLS_FOUND )
+               ENDIF( NOT GNUTLS_FOUND )
+       ENDIF ( _libsoup2_FOUND )
+
+       MARK_AS_ADVANCED( _libsoup2_include_DIR  _libsoup2_LIBRARY )
+
+       # Report results
+       IF ( LIBSOUP2_LIBRARIES AND LIBSOUP2_INCLUDE_DIRS AND _libsoup2_FOUND ) 
+               SET( LIBSOUP2_FOUND 1 )
+               IF ( NOT LibSoup2_FIND_QUIETLY )
+                       MESSAGE( STATUS "Found libsoup2: ${_libsoup2_LIBRARY}" )
+               ENDIF ( NOT LibSoup2_FIND_QUIETLY )
+       ELSE ( LIBSOUP2_LIBRARIES AND LIBSOUP_INCLUDE_DIRS AND _libsoup2_FOUND )        
+               IF ( LibSoup2_FIND_REQUIRED )
+                       MESSAGE( SEND_ERROR "Could NOT find libsoup2" )
+               ELSE ( LibSoup2_FIND_REQUIRED )
+                       IF ( NOT LibSoup2_FIND_QUIETLY )
+                               MESSAGE( STATUS "Could NOT find libsoup2" )     
+                       ENDIF ( NOT LibSoup2_FIND_QUIETLY )
+               ENDIF ( LibSoup2_FIND_REQUIRED )
+       ENDIF ( LIBSOUP2_LIBRARIES AND LIBSOUP2_INCLUDE_DIRS AND _libsoup2_FOUND )
+ENDIF( NOT LIBSOUP2_FOUND AND NOT PKG_CONFIG_FOUND )
+
+# Hide advanced variables from CMake GUIs
+MARK_AS_ADVANCED( LIBSOUP2_LIBRARIES LIBSOUP2_INCLUDE_DIRS )
+
diff --git a/cmake/FindLibXlst.cmake b/cmake/FindLibXlst.cmake
new file mode 100644 (file)
index 0000000..1c55c4c
--- /dev/null
@@ -0,0 +1,68 @@
+# - Try to find LibXslt
+# Once done this will define
+#
+#  LIBXSLT_FOUND - system has LibXslt
+#  LIBXSLT_INCLUDE_DIR - the LibXslt include directory
+#  LIBXSLT_LIBRARIES - Link these to LibXslt
+#  LIBXSLT_DEFINITIONS - Compiler switches required for using LibXslt
+#  LIBXSLT_XSLTPROC_EXECUTABLE - path to the xsltproc tool
+
+# Copyright (c) 2006, Alexander Neundorf, <neundorf@kde.org>
+#
+# Redistribution and use is allowed according to the terms of the BSD license.
+# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
+
+
+IF (LIBXSLT_INCLUDE_DIR AND LIBXSLT_LIBRARIES)
+   # in cache already
+   SET(LibXslt_FIND_QUIETLY TRUE)
+ENDIF (LIBXSLT_INCLUDE_DIR AND LIBXSLT_LIBRARIES)
+
+IF (NOT WIN32)
+   # use pkg-config to get the directories and then use these values
+   # in the FIND_PATH() and FIND_LIBRARY() calls
+   find_package(PkgConfig)
+   pkg_check_modules(PC_XSLT QUIET libxslt)
+   SET(LIBXSLT_DEFINITIONS ${PC_XSLT_CFLAGS_OTHER})
+ENDIF (NOT WIN32)
+
+FIND_PATH(LIBXSLT_INCLUDE_DIR libxslt/xslt.h
+    PATHS
+    ${PC_XSLT_INCLUDEDIR}
+    ${PC_XSLT_INCLUDE_DIRS}
+  )
+
+FIND_LIBRARY(LIBXSLT_LIBRARIES NAMES xslt libxslt
+    PATHS
+    ${PC_XSLT_LIBDIR}
+    ${PC_XSLT_LIBRARY_DIRS}
+  )
+
+FIND_LIBRARY(LIBEXSLT_LIBRARIES NAMES exslt libexslt
+    PATHS
+    ${PC_XSLT_LIBDIR}
+    ${PC_XSLT_LIBRARY_DIRS}
+  )
+
+IF (LIBXSLT_INCLUDE_DIR AND LIBXSLT_LIBRARIES)
+   SET(LIBXSLT_FOUND TRUE)
+ELSE (LIBXSLT_INCLUDE_DIR AND LIBXSLT_LIBRARIES)
+   SET(LIBXSLT_FOUND FALSE)
+ENDIF (LIBXSLT_INCLUDE_DIR AND LIBXSLT_LIBRARIES)
+
+FIND_PROGRAM(LIBXSLT_XSLTPROC_EXECUTABLE xsltproc)
+# For compatibility with FindLibXslt.cmake from KDE 4.[01].x
+SET(XSLTPROC_EXECUTABLE ${LIBXSLT_XSLTPROC_EXECUTABLE})
+
+IF (LIBXSLT_FOUND)
+   IF (NOT LibXslt_FIND_QUIETLY)
+      MESSAGE(STATUS "Found LibXslt: ${LIBXSLT_LIBRARIES}")
+   ENDIF (NOT LibXslt_FIND_QUIETLY)
+ELSE (LIBXSLT_FOUND)
+   IF (LibXslt_FIND_REQUIRED)
+      MESSAGE(FATAL_ERROR "Could NOT find LibXslt")
+   ENDIF (LibXslt_FIND_REQUIRED)
+ENDIF (LIBXSLT_FOUND)
+
+MARK_AS_ADVANCED(LIBXSLT_INCLUDE_DIR  LIBXSLT_LIBRARIES  LIBEXSLT_LIBRARIES  LIBXSLT_XSLTPROC_EXECUTABLE)
+
diff --git a/cmake/FindPango.cmake b/cmake/FindPango.cmake
new file mode 100644 (file)
index 0000000..0df547f
--- /dev/null
@@ -0,0 +1,34 @@
+# - Try to find Pango
+# Once done, this will define
+#
+#  Pango_FOUND - system has Pango
+#  Pango_INCLUDE_DIRS - the Pango include directories
+#  Pango_LIBRARIES - link these to use Pango
+
+include(LibFindMacros)
+
+# Dependencies
+libfind_package(Pango Freetype)
+
+# Use pkg-config to get hints about paths
+libfind_pkg_check_modules(Pango_PKGCONF pango)
+
+# Include dir
+find_path(Pango_INCLUDE_DIR
+  NAMES pango/pango.h
+  PATHS ${Pango_PKGCONF_INCLUDE_DIRS}
+  PATH_SUFFIXES pango-1.0
+)
+
+# Finally the library itself
+find_library(Pango_LIBRARY
+  NAMES pango-1.0
+  PATHS ${Pango_PKGCONF_LIBRARY_DIRS}
+)
+
+# Set the include dir variables and the libraries and let libfind_process do the rest.
+# NOTE: Singular variables for this library, plural for libraries this this lib depends on.
+set(Pango_PROCESS_INCLUDES Pango_INCLUDE_DIR Freetype_INCLUDE_DIRS)
+set(Pango_PROCESS_LIBS Pango_LIBRARY Freetype_LIBRARIES)
+libfind_process(Pango)
+
diff --git a/cmake/FindSqlite.cmake b/cmake/FindSqlite.cmake
new file mode 100644 (file)
index 0000000..2fa7633
--- /dev/null
@@ -0,0 +1,50 @@
+# - Try to find Sqlite
+# Once done this will define
+#
+#  SQLITE_FOUND - system has Sqlite
+#  SQLITE_INCLUDE_DIR - the Sqlite include directory
+#  SQLITE_LIBRARIES - Link these to use Sqlite
+#  SQLITE_DEFINITIONS - Compiler switches required for using Sqlite
+# Redistribution and use is allowed according to the terms of the BSD license.
+# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
+#
+
+
+# Copyright (c) 2008, Gilles Caulier, <caulier.gilles@gmail.com>
+#
+# Redistribution and use is allowed according to the terms of the BSD license.
+# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
+
+if ( SQLITE_INCLUDE_DIR AND SQLITE_LIBRARIES )
+   # in cache already
+   SET(Sqlite_FIND_QUIETLY TRUE)
+endif ( SQLITE_INCLUDE_DIR AND SQLITE_LIBRARIES )
+
+# use pkg-config to get the directories and then use these values
+# in the FIND_PATH() and FIND_LIBRARY() calls
+if( NOT WIN32 )
+  find_package(PkgConfig)
+
+  pkg_check_modules(PC_SQLITE sqlite3)
+
+  set(SQLITE_DEFINITIONS ${PC_SQLITE_CFLAGS_OTHER})
+endif( NOT WIN32 )
+
+FIND_PATH(SQLITE_INCLUDE_DIR NAMES sqlite3.h
+  PATHS
+  ${PC_SQLITE_INCLUDEDIR}
+  ${PC_SQLITE_INCLUDE_DIRS}
+)
+
+FIND_LIBRARY(SQLITE_LIBRARIES NAMES sqlite3
+  PATHS
+  ${PC_SQLITE_LIBDIR}
+  ${PC_SQLITE_LIBRARY_DIRS}
+)
+
+include(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(Sqlite DEFAULT_MSG SQLITE_INCLUDE_DIR SQLITE_LIBRARIES )
+
+# show the SQLITE_INCLUDE_DIR and SQLITE_LIBRARIES variables only in the advanced view
+MARK_AS_ADVANCED(SQLITE_INCLUDE_DIR SQLITE_LIBRARIES )
+
diff --git a/cmake/LibFindMacros.cmake b/cmake/LibFindMacros.cmake
new file mode 100644 (file)
index 0000000..69975c5
--- /dev/null
@@ -0,0 +1,99 @@
+# Works the same as find_package, but forwards the "REQUIRED" and "QUIET" arguments
+# used for the current package. For this to work, the first parameter must be the
+# prefix of the current package, then the prefix of the new package etc, which are
+# passed to find_package.
+macro (libfind_package PREFIX)
+  set (LIBFIND_PACKAGE_ARGS ${ARGN})
+  if (${PREFIX}_FIND_QUIETLY)
+    set (LIBFIND_PACKAGE_ARGS ${LIBFIND_PACKAGE_ARGS} QUIET)
+  endif (${PREFIX}_FIND_QUIETLY)
+  if (${PREFIX}_FIND_REQUIRED)
+    set (LIBFIND_PACKAGE_ARGS ${LIBFIND_PACKAGE_ARGS} REQUIRED)
+  endif (${PREFIX}_FIND_REQUIRED)
+  find_package(${LIBFIND_PACKAGE_ARGS})
+endmacro (libfind_package)
+
+# CMake developers made the UsePkgConfig system deprecated in the same release (2.6)
+# where they added pkg_check_modules. Consequently I need to support both in my scripts
+# to avoid those deprecated warnings. Here's a helper that does just that.
+# Works identically to pkg_check_modules, except that no checks are needed prior to use.
+macro (libfind_pkg_check_modules PREFIX PKGNAME)
+  if (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4)
+    include(UsePkgConfig)
+    pkgconfig(${PKGNAME} ${PREFIX}_INCLUDE_DIRS ${PREFIX}_LIBRARY_DIRS ${PREFIX}_LDFLAGS ${PREFIX}_CFLAGS)
+  else (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4)
+    find_package(PkgConfig)
+    if (PKG_CONFIG_FOUND)
+      pkg_check_modules(${PREFIX} ${PKGNAME})
+    endif (PKG_CONFIG_FOUND)
+  endif (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4)
+endmacro (libfind_pkg_check_modules)
+
+# Do the final processing once the paths have been detected.
+# If include dirs are needed, ${PREFIX}_PROCESS_INCLUDES should be set to contain
+# all the variables, each of which contain one include directory.
+# Ditto for ${PREFIX}_PROCESS_LIBS and library files.
+# Will set ${PREFIX}_FOUND, ${PREFIX}_INCLUDE_DIRS and ${PREFIX}_LIBRARIES.
+# Also handles errors in case library detection was required, etc.
+macro (libfind_process PREFIX)
+  # Skip processing if already processed during this run
+  if (NOT ${PREFIX}_FOUND)
+    # Start with the assumption that the library was found
+    set (${PREFIX}_FOUND TRUE)
+
+    # Process all includes and set _FOUND to false if any are missing
+    foreach (i ${${PREFIX}_PROCESS_INCLUDES})
+      if (${i})
+        set (${PREFIX}_INCLUDE_DIRS ${${PREFIX}_INCLUDE_DIRS} ${${i}})
+        mark_as_advanced(${i})
+      else (${i})
+        set (${PREFIX}_FOUND FALSE)
+      endif (${i})
+    endforeach (i)
+
+    # Process all libraries and set _FOUND to false if any are missing
+    foreach (i ${${PREFIX}_PROCESS_LIBS})
+      if (${i})
+        set (${PREFIX}_LIBRARIES ${${PREFIX}_LIBRARIES} ${${i}})
+        mark_as_advanced(${i})
+      else (${i})
+        set (${PREFIX}_FOUND FALSE)
+      endif (${i})
+    endforeach (i)
+
+    # Print message and/or exit on fatal error
+    if (${PREFIX}_FOUND)
+      if (NOT ${PREFIX}_FIND_QUIETLY)
+        message (STATUS "Found ${PREFIX} ${${PREFIX}_VERSION}")
+      endif (NOT ${PREFIX}_FIND_QUIETLY)
+    else (${PREFIX}_FOUND)
+      if (${PREFIX}_FIND_REQUIRED)
+        foreach (i ${${PREFIX}_PROCESS_INCLUDES} ${${PREFIX}_PROCESS_LIBS})
+          message("${i}=${${i}}")
+        endforeach (i)
+        message (FATAL_ERROR "Required library ${PREFIX} NOT FOUND.\nInstall the library (dev version) and try again. If the library is already installed, use ccmake to set the missing variables manually.")
+      endif (${PREFIX}_FIND_REQUIRED)
+    endif (${PREFIX}_FOUND)
+  endif (NOT ${PREFIX}_FOUND)
+endmacro (libfind_process)
+
+macro(libfind_library PREFIX basename)
+  set(TMP "")
+  if(MSVC80)
+    set(TMP -vc80)
+  endif(MSVC80)
+  if(MSVC90)
+    set(TMP -vc90)
+  endif(MSVC90)
+  set(${PREFIX}_LIBNAMES ${basename}${TMP})
+  if(${ARGC} GREATER 2)
+    set(${PREFIX}_LIBNAMES ${basename}${TMP}-${ARGV2})
+    string(REGEX REPLACE "\\." "_" TMP ${${PREFIX}_LIBNAMES})
+    set(${PREFIX}_LIBNAMES ${${PREFIX}_LIBNAMES} ${TMP})
+  endif(${ARGC} GREATER 2)
+  find_library(${PREFIX}_LIBRARY
+    NAMES ${${PREFIX}_LIBNAMES}
+    PATHS ${${PREFIX}_PKGCONF_LIBRARY_DIRS}
+  )
+endmacro(libfind_library)
+
diff --git a/cmake/OptionsCommon.cmake b/cmake/OptionsCommon.cmake
new file mode 100644 (file)
index 0000000..cae00a5
--- /dev/null
@@ -0,0 +1,31 @@
+ADD_DEFINITIONS(-DBUILDING_WITH_CMAKE=1)
+
+SET(WTF_INCLUDE_DIRECTORIES
+    "${JAVASCRIPTCORE_DIR}"
+    "${JAVASCRIPTCORE_DIR}/wtf"
+    "${JAVASCRIPTCORE_DIR}/wtf/unicode"
+    "${DERIVED_SOURCES_DIR}"
+)
+
+SET(WEBKIT_LIBRARY_TYPE STATIC)
+
+IF (ICU_FOUND)
+    SET(WTF_USE_ICU_UNICODE 1)
+    ADD_DEFINITIONS(-DWTF_USE_ICU_UNICODE=1)
+    LIST(APPEND WTF_INCLUDE_DIRECTORIES ${ICU_INCLUDE_DIRS})
+ENDIF ()
+
+IF (CMAKE_HAVE_PTHREAD_H AND NOT WTF_PLATFORM_QT)
+    SET(WTF_USE_PTHREADS 1)
+    ADD_DEFINITIONS(-DWTF_USE_PTHREADS=1)
+ELSE ()
+    ADD_DEFINITIONS(-DENABLE_JSC_MULTIPLE_THREADS=0)
+ENDIF ()
+
+IF (WTF_OS_UNIX)
+    ADD_DEFINITIONS(-DXP_UNIX)
+ENDIF (WTF_OS_UNIX)
+
+ADD_DEFINITIONS(-DHAVE_CONFIG_H=1)
+
+FILE(MAKE_DIRECTORY ${DERIVED_SOURCES_DIR})
diff --git a/cmake/OptionsEfl.cmake b/cmake/OptionsEfl.cmake
new file mode 100644 (file)
index 0000000..47e4b13
--- /dev/null
@@ -0,0 +1,88 @@
+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})
+ADD_DEFINITIONS(-DDATA_DIR="${DATA_DIR}")
+
+ADD_DEFINITIONS(-DWTF_PLATFORM_EFL=1)
+SET(WTF_PLATFORM_EFL 1)
+
+SET(LIBSOUP24_MIN_VERSION 2.28.2)
+
+FIND_PACKAGE(Cairo 1.6 REQUIRED)
+FIND_PACKAGE(EFL REQUIRED)
+FIND_PACKAGE(Freetype 9.0 REQUIRED)
+FIND_PACKAGE(GDK 2.10 REQUIRED)
+FIND_PACKAGE(Glib REQUIRED)
+FIND_PACKAGE(LibSoup2 2.28.2 REQUIRED)
+FIND_PACKAGE(Sqlite REQUIRED)
+FIND_PACKAGE(LibXml2 2.6 REQUIRED)
+FIND_PACKAGE(LibXslt 1.1.7 REQUIRED)
+FIND_PACKAGE(ICU REQUIRED)
+FIND_PACKAGE(Threads REQUIRED)
+
+SET(WTF_USE_ICU_UNICODE 1)
+ADD_DEFINITIONS(-DWTF_USE_ICU_UNICODE=1)
+
+SET(WTF_PLATFORM_CAIRO 1)
+ADD_DEFINITIONS(-DWTF_PLATFORM_CAIRO=1)
+
+SET(WTF_USE_SOUP 1)
+ADD_DEFINITIONS(-DWTF_USE_SOUP=1)
+IF (LIBSOUP_VERSION VERSION_LESS 2.29.90)
+ELSE (LIBSOUP_VERSION VERSION_LESS 2.29.90)
+    SET(HAVE_LIBSOUP_2_29_90 1)
+ENDIF ()
+
+SET(WTF_USE_FREETYPE 1)
+ADD_DEFINITIONS(-DUSE_FREETYPE=1)
+
+ADD_DEFINITIONS(-DHAVE_ECORE_X)
+
+SET(JSC_EXECUTABLE_NAME jsc)
+SET(WTF_LIBRARY_NAME wtf)
+SET(JavaScriptCore_LIBRARY_NAME javascriptcore)
+SET(WebCore_LIBRARY_NAME webcore)
+SET(WebKit_LIBRARY_NAME ewebkit)
+
+SET(WTF_LIBRARY_TYPE STATIC)
+SET(JavaScriptCore_LIBRARY_TYPE STATIC)
+SET(WebCore_LIBRARY_TYPE STATIC)
+SET(WebKit_LIBRARY_TYPE SHARED)
+
+WEBKIT_FEATURE(ENABLE_AS_IMAGE "Enable SVG as image" DEFAULT ON SVG)
+WEBKIT_FEATURE(ENABLE_BLOB_SLICE "Enable blob slice" DEFAULT OFF)
+WEBKIT_FEATURE(ENABLE_CHANNEL_MESSAGING "Enable channel messaging" DEFAULT ON)
+WEBKIT_FEATURE(ENABLE_DATABASE "Enable database" DEFAULT ON)
+WEBKIT_FEATURE(ENABLE_DATAGRID "Enable datagrid" DEFAULT OFF)
+WEBKIT_FEATURE(ENABLE_DATALIST "Enable datalist" DEFAULT ON HTML)
+WEBKIT_FEATURE(ENABLE_DOM_STORAGE "Enable DOM storage" DEFAULT ON)
+WEBKIT_FEATURE(ENABLE_EVENTSOURCE "Enable event source" DEFAULT ON)
+WEBKIT_FEATURE(ENABLE_FAST_MOBILE_SCROLLING "Enable fast mobile scrolling" DEFAULT ON)
+WEBKIT_FEATURE(ENABLE_FILTERS "Enable SVG filters" DEFAULT ON SVG)
+WEBKIT_FEATURE(ENABLE_GEOLOCATION "Enable geolocation" DEFAULT OFF)
+WEBKIT_FEATURE(ENABLE_GLIB_SUPPORT "Enable Glib support" DEFAULT ON)
+WEBKIT_FEATURE(ENABLE_ICONDATABASE "Enable icon database" DEFAULT ON)
+WEBKIT_FEATURE(ENABLE_INSPECTOR "Enable inspector" DEFAULT ON)
+WEBKIT_FEATURE(ENABLE_JAVASCRIPT_DEBUGGER "Enable JavaScript debugger" DEFAULT ON)
+WEBKIT_FEATURE(ENABLE_MATHML "Enable MathML" DEFAULT OFF)
+WEBKIT_FEATURE(ENABLE_NOTIFICATIONS "Enable notifications" DEFAULT OFF)
+WEBKIT_FEATURE(ENABLE_OFFLINE_WEB_APPLICATIONS "Enable offline web applications" DEFAULT ON)
+WEBKIT_FEATURE(ENABLE_ORIENTATION_EVENTS "Enable orientation events" DEFAULT OFF)
+WEBKIT_FEATURE(ENABLE_PROGRESS_TAG "Enable progress tag" DEFAULT OFF)
+WEBKIT_FEATURE(ENABLE_RUBY "Enable Ruby" DEFAULT ON HTML)
+WEBKIT_FEATURE(ENABLE_SANDBOX "Enable Sandbox" DEFAULT OFF HTML)
+WEBKIT_FEATURE(ENABLE_SHARED_WORKERS "Enable shared workers" DEFAULT ON)
+WEBKIT_FEATURE(ENABLE_SVG "Enable SVG" DEFAULT ON)
+WEBKIT_FEATURE(ENABLE_SVG_ANIMATION "Enable SVG animation" DEFAULT ON SVG)
+WEBKIT_FEATURE(ENABLE_SVG_FONTS "Enable SVG fonts" DEFAULT ON SVG)
+WEBKIT_FEATURE(ENABLE_SVG_FOREIGN_OBJECT "Enable SVG foreign object" DEFAULT ON SVG)
+WEBKIT_FEATURE(ENABLE_SVG_USE "Enable SVG use" DEFAULT ON SVG)
+WEBKIT_FEATURE(ENABLE_VIDEO "Enable video" DEFAULT OFF HTML)
+WEBKIT_FEATURE(ENABLE_WEB_SOCKETS "Enable web sockets" DEFAULT OFF)
+WEBKIT_FEATURE(ENABLE_WML "Enable WML" DEFAULT OFF)
+WEBKIT_FEATURE(ENABLE_WORKERS "Enable workers" DEFAULT ON)
+WEBKIT_FEATURE(ENABLE_XHTMLMP "Enable XHTMLMP" DEFAULT OFF)
+WEBKIT_FEATURE(ENABLE_XPATH "Enable XPath" DEFAULT ON)
+WEBKIT_FEATURE(ENABLE_XSLT "Enable XSLT" DEFAULT ON)
diff --git a/cmake/WebKitEfl.cmake b/cmake/WebKitEfl.cmake
new file mode 100644 (file)
index 0000000..0cbf265
--- /dev/null
@@ -0,0 +1,17 @@
+# EFL port specific macros and definitions
+
+FIND_PROGRAM(EDJE_CC_EXECUTABLE edje_cc)
+IF (NOT EDJE_CC_EXECUTABLE)
+  MESSAGE(FATAL_ERROR "Missing edje_cc")
+ENDIF ()
+
+# - Generate Edje compiled from the given source
+# GENERATE_EDJ(source binary edje_cc_options)
+#
+# This runs edje_cc -v ${edje_cc_options} ${source} ${binary}
+MACRO(GENERATE_EDJ _edc _edj _edje_cc_opts)
+  ADD_CUSTOM_COMMAND(
+    OUTPUT  ${_edj}
+    COMMAND ${EDJE_CC_EXECUTABLE} -v ${_edje_cc_opts} ${_edc} ${_edj}
+    VERBATIM)
+ENDMACRO()
diff --git a/cmake/WebKitFS.cmake b/cmake/WebKitFS.cmake
new file mode 100644 (file)
index 0000000..9c52a60
--- /dev/null
@@ -0,0 +1,6 @@
+SET(DERIVED_SOURCES_DIR "${CMAKE_BINARY_DIR}/DerivedSources")
+
+FILE(MAKE_DIRECTORY ${DERIVED_SOURCES_DIR})
+FILE(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/JavaScriptCore/pcre)
+FILE(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/JavaScriptCore/runtime)
+FILE(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/Programs)
diff --git a/cmake/WebKitFeatures.cmake b/cmake/WebKitFeatures.cmake
new file mode 100644 (file)
index 0000000..f7516f4
--- /dev/null
@@ -0,0 +1,91 @@
+SET(DEFAULT 0)
+SET(DEPENDS 1)
+
+SET(WEBKIT_FEATURES "")
+
+SET(HTML_FEATURES "")
+SET(SVG_FEATURES "")
+
+MACRO(WEBKIT_SEPARATE_FEATURES _name _value)
+        FOREACH(f ${ARGN})
+                LIST(APPEND ${f}_FEATURES "${_name}=${_value}")
+        ENDFOREACH()
+ENDMACRO(WEBKIT_SEPARATE_FEATURES)
+
+MACRO(WEBKIT_FEATURE_CHECK_DEPS _deps _deps_ok)
+        SET(${_deps_ok} TRUE)
+
+       LIST(LENGTH ${_deps} ${_deps_ok}_LIST_SIZE)
+       IF (${${_deps_ok}_LIST_SIZE} GREATER 1)
+               FOREACH(_dep ${${_deps}})
+                       IF (NOT ${_dep})
+                               SET(${_deps_ok} FALSE)
+                               BREAK()
+                       ENDIF ()
+               ENDFOREACH ()
+       ELSE ()
+               IF (NOT ${_deps})
+                       SET(${_deps_ok} FALSE)
+               ENDIF ()
+       ENDIF ()
+ENDMACRO()
+
+MACRO(WEBKIT_FEATURE _feature _description _type _args)
+       IF (${_type} EQUAL ${DEPENDS})
+                WEBKIT_FEATURE_CHECK_DEPS(${_args} DEPS_OK_${_feature})
+               OPTION(${_feature} "${_description}" DEPS_OK_${_feature})
+       ELSEIF (${_type} EQUAL ${DEFAULT})
+               OPTION(${_feature} "${_description}" ${_args})
+       ENDIF ()
+       
+       LIST(APPEND WEBKIT_FEATURES ${_feature})
+
+       IF (${_feature})
+               SET(${_feature}_VALUE 1)
+               WEBKIT_SEPARATE_FEATURES(${_feature} 1 ${ARGN})
+               LIST(APPEND FEATURE_DEFINES ${_feature})
+       ELSE ()
+               SET(${_feature}_VALUE 0)
+               WEBKIT_SEPARATE_FEATURES(${_feature} 0 ${ARGN})
+       ENDIF ()
+ENDMACRO()
+
+MACRO(WEBKIT_PRINT_FEATURES)
+       MESSAGE(STATUS "Enabled features:")
+
+       SET(MAX_FEATURE_LENGTH 0)
+       FOREACH (_feature ${WEBKIT_FEATURES})
+               STRING(LENGTH ${_feature} FEATURE_LENGTH)
+               IF (FEATURE_LENGTH GREATER MAX_FEATURE_LENGTH)
+                       SET(MAX_FEATURE_LENGTH ${FEATURE_LENGTH})
+               ENDIF ()
+       ENDFOREACH ()
+
+       SET(ODD 0)
+       FOREACH (_feature ${WEBKIT_FEATURES})
+               STRING(LENGTH ${_feature} FEATURE_LENGTH)
+               SET(SPACES "")
+
+               IF (ODD)
+                       FOREACH (IGNORE RANGE ${FEATURE_LENGTH} ${MAX_FEATURE_LENGTH})
+                               SET(SPACES "${SPACES} ")
+                       ENDFOREACH ()
+                       SET(ODD 0)
+               ELSE ()
+                       FOREACH (IGNORE RANGE ${FEATURE_LENGTH} ${MAX_FEATURE_LENGTH})
+                               SET(SPACES "${SPACES}.")
+                       ENDFOREACH ()
+                       SET(ODD 1)
+               ENDIF ()
+
+               IF (${_feature})
+                       MESSAGE(STATUS "  ${_feature} ${SPACES} ON")
+               ELSE ()
+                       MESSAGE(STATUS "  ${_feature} ${SPACES} OFF")
+               ENDIF ()
+       ENDFOREACH ()
+
+       UNSET(FEATURE_LENGTH)
+       UNSET(MAX_FEATURE_LENGTH)
+       UNSET(ODD)
+ENDMACRO()
diff --git a/cmake/WebKitGenerators.cmake b/cmake/WebKitGenerators.cmake
new file mode 100644 (file)
index 0000000..6fe0399
--- /dev/null
@@ -0,0 +1,258 @@
+# This file provides various generators used by webkit.
+# It will check for the programs and define the given executables:
+#    PERL_EXECUTABLE
+#    BISON_EXECUTABLE
+#    GPERF_EXECUTABLE
+#    FLEX_EXECUTABLE
+
+INCLUDE (WebKitFS)
+
+FIND_PACKAGE(Perl REQUIRED)
+
+# - Create hash table *.lut.h
+# GENERATE_HASH_LUT(input_file output_file)
+MACRO(GENERATE_HASH_LUT _input _output)
+    SET(HASH_LUT_GENERATOR "${JAVASCRIPTCORE_DIR}/create_hash_table")
+
+    FOREACH (_tmp ${ARGN})
+        IF (${_tmp} STREQUAL "MAIN_DEPENDENCY")
+            SET(_main_dependency ${_input})
+        ENDIF ()
+    ENDFOREACH ()
+
+    ADD_CUSTOM_COMMAND(
+        OUTPUT ${_output}
+        MAIN_DEPENDENCY ${_main_dependency}
+        DEPENDS ${_input} ${HASH_LUT_GENERATOR}
+        COMMAND ${PERL_EXECUTABLE} ${HASH_LUT_GENERATOR} ${_input} > ${_output}
+        VERBATIM)
+ENDMACRO()
+
+# - Create hash table *.lut.h using at JavaScriptCore/runtime
+# GENERATE_HASH_LUT_RUNTIME(source)
+#
+# The generated files lives in ${CMAKE_BINARY_DIR}/JavaScriptCore/runtime/
+# and will have suffix ".lut.h"
+#
+# Input file is assumed to be in JavaScriptCore/runtime/${source}.cpp
+MACRO(GENERATE_HASH_LUT_RUNTIME _file)
+  ADD_CUSTOM_COMMAND(
+    OUTPUT  ${CMAKE_BINARY_DIR}/JavaScriptCore/runtime/${_file}.lut.h
+    DEPENDS ${JAVASCRIPTCORE_DIR}/runtime/${_file}.cpp  ${HASH_LUT_GENERATOR}
+    COMMAND ${PERL_EXECUTABLE} ${HASH_LUT_GENERATOR} ${JAVASCRIPTCORE_DIR}/runtime/${_file}.cpp -i > ${CMAKE_BINARY_DIR}/JavaScriptCore/runtime/${_file}.lut.h
+    VERBATIM)
+  LIST(APPEND GENERATED_HASH_LUT_RUNTIME_FILES "${CMAKE_BINARY_DIR}/JavaScriptCore/runtime/${_file}.lut.h")
+ENDMACRO()
+
+
+FIND_PROGRAM (BISON_EXECUTABLE bison)
+IF (NOT BISON_EXECUTABLE)
+  MESSAGE(FATAL_ERROR "Missing bison")
+ENDIF (NOT BISON_EXECUTABLE)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(Bison DEFAULT_MSG BISON_EXECUTABLE)
+
+# - Create a grammar using bison.
+# GENERATE_GRAMMAR(prefix source_file)
+#
+# Reads a source_file (*.y) Generates the .cpp and .h files in
+# ${DERIVED_SOURCES_DIR}
+MACRO(GENERATE_GRAMMAR _prefix _source)
+  GET_FILENAME_COMPONENT(_name ${_source} NAME_WE)
+  SET(_out_base ${DERIVED_SOURCES_DIR}/${_name})
+  ADD_CUSTOM_COMMAND(
+    OUTPUT  ${_out_base}.cpp ${_out_base}.h
+    DEPENDS ${_source}
+    COMMAND ${BISON_EXECUTABLE} -p ${_prefix} ${_source} -o ${_out_base}.cpp --defines=${_out_base}.h
+    VERBATIM)
+  UNSET(_out_base)
+  UNSET(_name)
+ENDMACRO ()
+
+
+FIND_PROGRAM(GPERF_EXECUTABLE gperf)
+IF (NOT GPERF_EXECUTABLE)
+  MESSAGE(FATAL_ERROR "Missing gperf")
+ENDIF ()
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(GPerf DEFAULT_MSG GPERF_EXECUTABLE)
+
+# - Create perfect hash tables using gperf
+# GENERATE_GPERF(extension source_file find_function gperf_options)
+#
+# The generated files lives in ${DERIVED_SOURCES_DIR} and ends in the
+# given extension.
+MACRO(GENERATE_GPERF _ext _source _func _opts)
+  GET_FILENAME_COMPONENT(_name ${_source} NAME_WE)
+  ADD_CUSTOM_COMMAND(
+    OUTPUT ${DERIVED_SOURCES_DIR}/${_name}.${_ext}
+    DEPENDS ${_source}
+    COMMAND ${GPERF_EXECUTABLE} -CDEGIot -L ANSI-C -k * -s 2 -N ${_func} ${_opts} --output-file=${DERIVED_SOURCES_DIR}/${_name}.${_ext} ${_source}
+    VERBATIM)
+ENDMACRO ()
+
+
+# Modules that the bindings generator scripts may use
+SET(SCRIPTS_BINDINGS
+  ${WEBCORE_DIR}/bindings/scripts/CodeGenerator.pm
+  ${WEBCORE_DIR}/bindings/scripts/IDLParser.pm
+  ${WEBCORE_DIR}/bindings/scripts/IDLStructure.pm
+  ${WEBCORE_DIR}/bindings/scripts/InFilesParser.pm)
+SET(JS_CODE_GENERATOR ${WEBCORE_DIR}/bindings/scripts/generate-bindings.pl)
+SET(JS_IDL_FILES "")
+# - Create JavaScript C++ code given an IDL input
+# GENERATE_JS_FROM_IDL(idl_source)
+#
+# The generated files (.cpp, .h) lives in ${DERIVED_SOURCES_DIR}.
+#
+# This function also appends the generated cpp file to JS_IDL_FILES list.
+MACRO(GENERATE_JS_FROM_IDL _source)
+  SET(FEATURE_DEFINES_STR "")
+  FOREACH (f ${FEATURE_DEFINES})
+    SET(FEATURE_DEFINES_STR "${FEATURE_DEFINES_STR} ${f}")
+  ENDFOREACH ()
+
+  GET_FILENAME_COMPONENT(_name ${_source} NAME_WE)
+  ADD_CUSTOM_COMMAND(
+    OUTPUT  ${DERIVED_SOURCES_DIR}/JS${_name}.cpp ${DERIVED_SOURCES_DIR}/JS${_name}.h
+    DEPENDS ${JS_CODE_GENERATOR} ${SCRIPTS_BINDINGS} ${WEBCORE_DIR}/${_source}
+    COMMAND ${PERL_EXECUTABLE} -I${WEBCORE_DIR}/bindings/scripts ${JS_CODE_GENERATOR} ${IDL_INCLUDES} --outputDir "${DERIVED_SOURCES_DIR}" --defines "LANGUAGE_JAVASCRIPT=1 ${FEATURE_DEFINES_STR}" --generator JS ${WEBCORE_DIR}/${_source}
+    VERBATIM)
+  LIST(APPEND JS_IDL_FILES ${DERIVED_SOURCES_DIR}/JS${_name}.cpp)
+  UNSET(_name)
+  UNSET(_defines)
+ENDMACRO()
+
+# - Create pure JavaScript functions (does nothing so far)
+MACRO(GENERATE_JS_FROM_IDL_PURE _source)
+   GET_FILENAME_COMPONENT(_name ${_source} NAME_WE)
+   ADD_CUSTOM_COMMAND(
+     OUTPUT  ${DERIVED_SOURCES_DIR}/JS${_name}.cpp ${DERIVED_SOURCES_DIR}/JS${_name}.h
+     DEPENDS ${JS_CODE_GENERATOR} ${SCRIPTS_BINDINGS} ${WEBCORE_DIR}/${_source}
+     COMMAND ${PERL_EXECUTABLE} -I${WEBCORE_DIR}/bindings/scripts ${JS_CODE_GENERATOR} ${IDL_INCLUDES} --outputDir "${DERIVED_SOURCES_DIR}" --defines "LANGUAGE_JAVASCRIPT=1 ${FEATURE_DEFINES_STR}" --generator JS ${WEBCORE_DIR}/${_source}
+     VERBATIM)
+   UNSET(_name)
+ENDMACRO()
+
+SET(NAMES_GENERATOR ${WEBCORE_DIR}/dom/make_names.pl)
+# - Create DOM names and factory given tags and attributes as source.
+# GENERATE_DOM_NAMES_FACTORY(namespace tags_source attributes_source [defines])
+#
+# The generated files lives in ${DERIVED_SOURCES_DIR}. The files will
+# be named using the given namespace, such as:
+#   - ${namespace}Names.cpp, ${namespace}Names.h;
+#   - ${namespace}ElementFactory.cpp, ${namespace}ElementFactory.h;
+#   - ${namespace}ElementWrapperFactory.cpp; ${namespace}ElementWrapperFactory.h
+#
+# If optional defines are given, then they will be speficied using
+# --extraDefines directive to the generator script.
+MACRO(GENERATE_DOM_NAMES_FACTORY _namespace _tags _attrs)
+  UNSET(_extradef)
+  FOREACH (f ${ARGN})
+    SET(_extradef "${_extradef} ${f}")
+  ENDFOREACH ()
+  IF (_extradef)
+    SET(_extradef --extraDefines=${_extradef})
+  ENDIF ()
+  ADD_CUSTOM_COMMAND(
+    OUTPUT ${DERIVED_SOURCES_DIR}/${_namespace}Names.cpp ${DERIVED_SOURCES_DIR}/${_namespace}Names.h ${DERIVED_SOURCES_DIR}/${_namespace}ElementFactory.cpp ${DERIVED_SOURCES_DIR}/${_namespace}ElementFactory.h ${DERIVED_SOURCES_DIR}/JS${_namespace}ElementWrapperFactory.cpp ${DERIVED_SOURCES_DIR}/JS${_namespace}ElementWrapperFactory.h
+    DEPENDS ${NAMES_GENERATOR} ${SCRIPTS_BINDINGS} ${_tags} ${_attrs}
+    COMMAND ${PERL_EXECUTABLE} -I${WEBCORE_DIR}/bindings/scripts ${NAMES_GENERATOR} --tags ${_tags} --attrs ${_attrs} ${_extradef} --factory --wrapperFactory --outputDir ${DERIVED_SOURCES_DIR}
+    VERBATIM)
+  UNSET(_extradef)
+ENDMACRO ()
+
+# - Create DOM names only (no factories)
+# GENERATE_DOM_NAMES_ONLY(namespace attributes_source)
+#
+# The generated files lives in ${DERIVED_SOURCES_DIR}. The files will
+# be named using the given namespace, such as:
+#   - ${namespace}Names.cpp, ${namespace}Names.h;
+MACRO(GENERATE_DOM_NAMES_ONLY _namespace _attrs)
+  ADD_CUSTOM_COMMAND(
+    OUTPUT ${DERIVED_SOURCES_DIR}/${_namespace}Names.cpp ${DERIVED_SOURCES_DIR}/${_namespace}Names.h
+    DEPENDS ${NAMES_GENERATOR} ${SCRIPTS_BINDINGS} ${_attrs}
+    COMMAND ${PERL_EXECUTABLE} -I${WEBCORE_DIR}/bindings/scripts ${NAMES_GENERATOR} --attrs ${_attrs} --outputDir ${DERIVED_SOURCES_DIR}
+    VERBATIM)
+ENDMACRO()
+
+# - Create ${CMAKE_BINARY_DIR}/JavaScriptCore/pcre/chartables.c
+# GENERATE_DFTABLES()
+MACRO(GENERATE_DFTABLES)
+  ADD_CUSTOM_COMMAND(
+    OUTPUT  ${CMAKE_BINARY_DIR}/JavaScriptCore/pcre/chartables.c
+    DEPENDS ${JAVASCRIPTCORE_DIR}/pcre/dftables
+    COMMAND ${PERL_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/pcre/dftables ${CMAKE_BINARY_DIR}/JavaScriptCore/pcre/chartables.c
+    VERBATIM)
+ENDMACRO()
+
+
+FIND_PROGRAM(FLEX_EXECUTABLE flex)
+IF (NOT FLEX_EXECUTABLE)
+  MESSAGE(FATAL_ERROR "Missing flex")
+ENDIF ()
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(Flex DEFAULT_MSG FLEX_EXECUTABLE)
+
+SET(MAKE_TOKENIZER ${WEBCORE_DIR}/css/maketokenizer)
+# - Create ${DERIVED_SOURCES_DIR}/tokenizer.cpp
+# GENERATE_TOKENIZER()
+MACRO(GENERATE_TOKENIZER)
+  ADD_CUSTOM_COMMAND(
+    OUTPUT ${DERIVED_SOURCES_DIR}/tokenizer.cpp
+    DEPENDS ${WEBCORE_DIR}/css/tokenizer.flex ${MAKE_TOKENIZER}
+    COMMAND ${FLEX_EXECUTABLE} -t ${WEBCORE_DIR}/css/tokenizer.flex | ${PERL_EXECUTABLE} ${MAKE_TOKENIZER} > ${DERIVED_SOURCES_DIR}/tokenizer.cpp
+    VERBATIM)
+ENDMACRO()
+
+
+SET(USER_AGENT_STYLE_SHEETS
+  ${WEBCORE_DIR}/css/html.css
+  ${WEBCORE_DIR}/css/mathml.css
+  ${WEBCORE_DIR}/css/quirks.css
+  ${WEBCORE_DIR}/css/view-source.css
+  ${WEBCORE_DIR}/css/svg.css
+  ${WEBCORE_DIR}/css/wml.css
+  ${WEBCORE_DIR}/css/mediaControls.css
+  ${WEBCORE_DIR}/css/mediaControlsGtk.css)
+SET(USER_AGENT_STYLE_SHEETS_GENERATOR ${WEBCORE_DIR}/css/make-css-file-arrays.pl)
+# - Create ${DERIVED_SOURCES_DIR}/UserAgentStyleSheetsData.cpp and
+#   ${DERIVED_SOURCES_DIR}/UserAgentStyleSheets.h
+# GENERATE_USER_AGENT_STYLES()
+MACRO(GENERATE_USER_AGENT_STYLES)
+  ADD_CUSTOM_COMMAND(
+    OUTPUT ${DERIVED_SOURCES_DIR}/UserAgentStyleSheetsData.cpp ${DERIVED_SOURCES_DIR}/UserAgentStyleSheets.h
+    DEPENDS ${USER_AGENT_STYLE_SHEETS_GENERATOR} ${USER_AGENT_STYLE_SHEETS}
+    COMMAND ${PERL_EXECUTABLE} ${USER_AGENT_STYLE_SHEETS_GENERATOR} ${DERIVED_SOURCES_DIR}/UserAgentStyleSheets.h ${DERIVED_SOURCES_DIR}/UserAgentStyleSheetsData.cpp ${USER_AGENT_STYLE_SHEETS}
+    VERBATIM)
+ENDMACRO ()
+
+
+SET(CSS_VALUE_KEYWORDS
+  ${WEBCORE_DIR}/css/CSSValueKeywords.in
+  ${WEBCORE_DIR}/css/SVGCSSValueKeywords.in)
+SET(CSS_VALUE_GENERATOR ${WEBCORE_DIR}/css/makevalues.pl)
+# - Create ${DERIVED_SOURCES_DIR}/CSSValueKeywords.*
+# GENERATE_CSS_VALUE_KEYWORDS()
+MACRO(GENERATE_CSS_VALUE_KEYWORDS)
+  ADD_CUSTOM_COMMAND(
+    OUTPUT ${DERIVED_SOURCES_DIR}/CSSValueKeywords.h ${DERIVED_SOURCES_DIR}/CSSValueKeywords.c ${DERIVED_SOURCES_DIR}/CSSValueKeywords.in ${DERIVED_SOURCES_DIR}/CSSValueKeywords.gperf
+    DEPENDS ${CSS_VALUE_KEYWORDS} ${CSS_VALUE_GENERATOR}
+    WORKING_DIRECTORY ${DERIVED_SOURCES_DIR}
+    COMMAND ${PERL_EXECUTABLE} -ne "print lc" ${CSS_VALUE_KEYWORDS} > ${DERIVED_SOURCES_DIR}/CSSValueKeywords.in
+    COMMAND ${PERL_EXECUTABLE} ${CSS_VALUE_GENERATOR}
+    VERBATIM)
+ENDMACRO ()
+
+SET(CSS_PROPERTY_NAMES
+  ${WEBCORE_DIR}/css/CSSPropertyNames.in
+  ${WEBCORE_DIR}/css/SVGCSSPropertyNames.in)
+SET(MAKE_CSS_PROP ${WEBCORE_DIR}/css/makeprop.pl)
+# - Create ${DERIVED_SOURCES_DIR}/CSSPropertyNames.*
+# GENERATE_CSS_PROPERTY_NAMES()
+MACRO(GENERATE_CSS_PROPERTY_NAMES)
+  ADD_CUSTOM_COMMAND(
+    OUTPUT ${DERIVED_SOURCES_DIR}/CSSPropertyNames.h ${DERIVED_SOURCES_DIR}/CSSPropertyNames.cpp ${DERIVED_SOURCES_DIR}/CSSPropertyNames.in ${DERIVED_SOURCES_DIR}/CSSPropertyNames.gperf
+    DEPENDS ${MAKE_CSS_PROP} ${CSS_PROPERTY_NAMES}
+    WORKING_DIRECTORY ${DERIVED_SOURCES_DIR}
+    COMMAND cat ${CSS_PROPERTY_NAMES} > ${DERIVED_SOURCES_DIR}/CSSPropertyNames.in
+    COMMAND ${PERL_EXECUTABLE} ${MAKE_CSS_PROP}
+    VERBATIM)
+ENDMACRO ()
diff --git a/cmake/WebKitHelpers.cmake b/cmake/WebKitHelpers.cmake
new file mode 100644 (file)
index 0000000..09b4266
--- /dev/null
@@ -0,0 +1,64 @@
+# Sets extra compile flags for a target, depending on the compiler being used.
+# Currently, only GCC is supported.
+MACRO(WEBKIT_SET_EXTRA_COMPILER_FLAGS _target)
+  IF (${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU")
+    GET_TARGET_PROPERTY(OLD_COMPILE_FLAGS ${_target} COMPILE_FLAGS)
+    IF (${OLD_COMPILE_FLAGS} STREQUAL "OLD_COMPILE_FLAGS-NOTFOUND")
+        SET(OLD_COMPILE_FLAGS "")
+    ENDIF ()
+    IF (${CMAKE_HOST_SYSTEM_PROCESSOR} STREQUAL "x86_64")
+        SET(OLD_COMPILE_FLAGS "${OLD_COMPILE_FLAGS} -fPIC")
+    ENDIF ()
+    SET_TARGET_PROPERTIES (${_target} PROPERTIES
+       COMPILE_FLAGS "${OLD_COMPILE_FLAGS} -fno-exceptions -fstrict-aliasing -fvisibility=hidden")
+    UNSET(OLD_COMPILE_FLAGS)
+  ENDIF ()
+ENDMACRO()
+
+
+# Append the given flag to the target property.
+# Builds on top of GET_TARGET_PROPERTY() and SET_TARGET_PROPERTIES()
+MACRO (ADD_TARGET_PROPERTIES _target _property _flags)
+  GET_TARGET_PROPERTY (_tmp ${_target} ${_property})
+  IF (NOT _tmp)
+    SET (_tmp "")
+  ENDIF (NOT _tmp)
+
+  FOREACH (f ${_flags})
+    SET (_tmp "${_tmp} ${f}")
+  ENDFOREACH (f ${_flags})
+
+  SET_TARGET_PROPERTIES (${_target} PROPERTIES ${_property} ${_tmp})
+  UNSET (_tmp)
+ENDMACRO (ADD_TARGET_PROPERTIES _target _property _flags)
+
+
+# Append the given dependencies to the source file
+MACRO(ADD_SOURCE_DEPENDENCIES _source _deps)
+  GET_SOURCE_FILE_PROPERTY(_tmp ${_source} OBJECT_DEPENDS)
+  IF (NOT _tmp)
+    SET (_tmp "")
+  ENDIF ()
+
+  FOREACH (f ${_deps})
+    LIST(APPEND _tmp "${f}")
+  ENDFOREACH ()
+
+  SET_SOURCE_FILES_PROPERTIES(${_source} PROPERTIES OBJECT_DEPENDS "${_tmp}")
+  UNSET(_tmp)
+ENDMACRO()
+
+
+# Append the given dependencies to the source file
+# This one consider the given dependencies are in ${DERIVED_SOURCES_DIR}
+# and prepends this to every member of dependencies list
+MACRO(ADD_SOURCE_DERIVED_DEPENDENCIES _source _deps)
+  SET(_tmp "")
+  FOREACH (f ${_deps})
+    LIST(APPEND _tmp "${DERIVED_SOURCES_DIR}/${f}")
+  ENDFOREACH ()
+
+  ADD_SOURCE_DEPENDENCIES(${_source} ${_tmp})
+  UNSET(_tmp)
+ENDMACRO()
+
diff --git a/cmake/WebKitMacros.cmake b/cmake/WebKitMacros.cmake
new file mode 100644 (file)
index 0000000..99acb25
--- /dev/null
@@ -0,0 +1,40 @@
+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)
+    GET_SOURCE_FILE_PROPERTY (_tmp ${_source} OBJECT_DEPENDS)
+    IF (NOT _tmp)
+        SET (_tmp "")
+    ENDIF ()
+
+    FOREACH (f ${_deps})
+        LIST(APPEND _tmp "${f}")
+    ENDFOREACH ()
+
+    SET_SOURCE_FILES_PROPERTIES (${_source} PROPERTIES OBJECT_DEPENDS "${_tmp}")
+    UNSET(_tmp)
+ENDMACRO()
+
+MACRO(WEBKIT_WRAP_SOURCELIST _input)
+    IF (WTF_PLATFORM_QT)
+        FOREACH (_file ${ARGN})
+            GET_FILENAME_COMPONENT(_basename ${_file} NAME_WE)
+            SET(_moc_filename ${DERIVED_SOURCES_DIR}/${_basename}.moc)
+
+            FILE(READ ${_file} _contents)
+
+            STRING(REGEX MATCHALL "#include[ ]+\"${_basename}\\.moc\"" _match "${_contents}")
+            IF (_match)
+                QT4_GENERATE_MOC(${_file} ${_moc_filename})
+                ADD_SOURCE_DEPENDENCIES(${_file} ${_moc_filename})
+            ENDIF()
+        ENDFOREACH ()
+    ENDIF ()
+ENDMACRO()
diff --git a/cmakeconfig.h.cmake b/cmakeconfig.h.cmake
new file mode 100644 (file)
index 0000000..69cb042
--- /dev/null
@@ -0,0 +1,39 @@
+#ifndef CMAKECONFIG_H
+#define CMAKECONFIG_H
+
+#define ENABLE_AS_IMAGE @ENABLE_AS_IMAGE_VALUE@
+#define ENABLE_BLOB_SLICE @ENABLE_BLOB_SLICE_VALUE@
+#define ENABLE_CHANNEL_MESSAGING @ENABLE_CHANNEL_MESSAGING_VALUE@
+#define ENABLE_DATABASE @ENABLE_DATABASE_VALUE@
+#define ENABLE_DATAGRID @ENABLE_DATAGRID_VALUE@
+#define ENABLE_DATALIST @ENABLE_DATALIST_VALUE@
+#define ENABLE_DOM_STORAGE @ENABLE_DOM_STORAGE_VALUE@
+#define ENABLE_EVENTSOURCE @ENABLE_EVENTSOURCE_VALUE@
+#define ENABLE_FAST_MOBILE_SCROLLING @ENABLE_FAST_MOBILE_SCROLLING_VALUE@
+#define ENABLE_FILTERS @ENABLE_FILTERS_VALUE@
+#define ENABLE_GEOLOCATION @ENABLE_GEOLOCATION_VALUE@
+#define ENABLE_GLIB_SUPPORT @ENABLE_GLIB_SUPPORT_VALUE@
+#define ENABLE_ICONDATABASE @ENABLE_ICONDATABASE_VALUE@
+#define ENABLE_JAVASCRIPT_DEBUGGER @ENABLE_JAVASCRIPT_DEBUGGER_VALUE@
+#define ENABLE_MATHML @ENABLE_MATHML_VALUE@
+#define ENABLE_NOTIFICATIONS @ENABLE_NOTIFICATIONS_VALUE@
+#define ENABLE_OFFLINE_WEB_APPLICATIONS @ENABLE_OFFLINE_WEB_APPLICATIONS_VALUE@
+#define ENABLE_ORIENTATION_EVENTS @ENABLE_ORIENTATION_EVENTS_VALUE@
+#define ENABLE_PROGRESS_TAG @ENABLE_PROGRESS_TAG_VALUE@
+#define ENABLE_RUBY @ENABLE_RUBY_VALUE@
+#define ENABLE_SANDBOX @ENABLE_SANDBOX_VALUE@
+#define ENABLE_SHARED_WORKERS @ENABLE_SHARED_WORKERS_VALUE@
+#define ENABLE_SVG @ENABLE_SVG_VALUE@
+#define ENABLE_SVG_ANIMATION @ENABLE_SVG_ANIMATION_VALUE@
+#define ENABLE_SVG_FONTS @ENABLE_SVG_FONTS_VALUE@
+#define ENABLE_SVG_FOREIGN_OBJECT @ENABLE_SVG_FOREIGN_OBJECT_VALUE@
+#define ENABLE_SVG_USE @ENABLE_SVG_USE_VALUE@
+#define ENABLE_VIDEO @ENABLE_VIDEO_VALUE@
+#define ENABLE_WEB_SOCKETS @ENABLE_WEB_SOCKETS_VALUE@
+#define ENABLE_WML @ENABLE_WML_VALUE@
+#define ENABLE_WORKERS @ENABLE_WORKERS_VALUE@
+#define ENABLE_XHTMLMP @ENABLE_XHTMLMP_VALUE@
+#define ENABLE_XPATH @ENABLE_XPATH_VALUE@
+#define ENABLE_XSLT @ENABLE_XSLT_VALUE@
+
+#endif /* CMAKECONFIG_H */