top level:
[WebKit-https.git] / CMakeLists.txt
1 project (WebKit)
2
3 # Qt support is always enabled!
4 add_definitions (-DBUILDING_QT__=1)
5
6 # Global switch for KDE support
7 OPTION (WEBKIT_USE_KDE_SUPPORT "Compile WebKit with KDE support." ON)
8
9 IF (WEBKIT_USE_KDE_SUPPORT)
10     add_definitions (-DBUILDING_KDE__=1)
11 ENDIF (WEBKIT_USE_KDE_SUPPORT)
12
13 # Global switch for SVG support
14 OPTION (WEBKIT_USE_SVG_SUPPORT "Compile WebKit with SVG support." ON)
15
16 IF (WEBKIT_USE_SVG_SUPPORT)
17     add_definitions (-DSVG_SUPPORT=1)
18 ENDIF (WEBKIT_USE_SVG_SUPPORT)
19
20 # Global switch for XPath support
21 OPTION (WEBKIT_USE_XPATH_SUPPORT "Compile WebKit with XPath support." ON)
22
23 IF (WEBKIT_USE_XPATH_SUPPORT)
24     add_definitions (-DXPATH_SUPPORT=1)
25 ENDIF (WEBKIT_USE_XPATH_SUPPORT)
26
27 # Global switch for XSLT support
28 OPTION (WEBKIT_USE_XSLT_SUPPORT "Compile WebKit with XSLT support." ON)
29
30 IF (WEBKIT_USE_XSLT_SUPPORT)
31     add_definitions (-DXSLT_SUPPORT=1)
32 ENDIF (WEBKIT_USE_XSLT_SUPPORT)
33
34 # Global switch for XBL support
35 OPTION (WEBKIT_USE_XBL_SUPPORT "Compile WebKit with XBL support." OFF)
36
37 IF (WEBKIT_USE_XBL_SUPPORT)
38     add_definitions (-DXBL_SUPPORT=1)
39 ENDIF (WEBKIT_USE_XBL_SUPPORT)
40
41 # search packages used by KDE
42 IF (WEBKIT_USE_KDE_SUPPORT)
43     find_package (KDE4 REQUIRED)
44     include (KDE4Defaults)
45     include (MacroLibrary)
46
47     # use the KDE modules for finding these
48     find_package (LibXml2 REQUIRED)
49     find_package (LibXslt REQUIRED)
50
51 ELSE (WEBKIT_USE_KDE_SUPPORT)
52     INCLUDE(UsePkgConfig)
53
54     PKGCONFIG(libxml-2.0 _LibXml2IncDir _LibXml2LinkDir _LibXml2LinkFlags _LibXml2CFlags)
55     SET(LIBXML2_LIBRARIES ${_LibXml2LinkFlags})
56     # I'd like to use the output of --cflags directly but cmake craps out on it ;(
57     SET(LIBXML2_INCLUDE_DIR ${_LibXml2IncDir}/libxml2)
58
59     PKGCONFIG(libxslt _LibXslt2IncDir _LibXslt2LinkDir _LibXslt2LinkFlags _LibXslt2CFlags)
60     SET(LIBXSLT_LIBRARIES ${_LibXslt2LinkFlags})
61     SET(LIBXSLT_INCLUDE_DIR ${_LibXslt2IncDir})
62
63     include(CheckLibraryExists)
64     include(FindQt4)
65 ENDIF (WEBKIT_USE_KDE_SUPPORT)
66
67 # Special option for BuildBot, to disable output colorization (must be done after KDE4Defaults is loaded)
68 OPTION (WEBKIT_DO_NOT_USE_COLORFUL_OUTPUT "Do not colorize compilation output." OFF)
69
70 IF (WEBKIT_DO_NOT_USE_COLORFUL_OUTPUT)
71     set(CMAKE_COLOR_MAKEFILE OFF)
72 ENDIF (WEBKIT_DO_NOT_USE_COLORFUL_OUTPUT)
73
74 find_package (JPEG REQUIRED)
75 find_package (PNG REQUIRED)
76
77 find_program (BISON_EXECUTABLE bison)
78 find_program (GPERF_EXECUTABLE gperf)
79
80 # quick check the libicu is available
81 find_path(LIBICU_INCLUDE_DIR unicode/umachine.h )
82
83 if (NOT BISON_EXECUTABLE)
84    message(FATAL_ERROR "Could not find bison")
85 endif (NOT BISON_EXECUTABLE)
86
87 if (NOT GPERF_EXECUTABLE)
88    message(FATAL_ERROR "Could not find gperf")
89 endif (NOT GPERF_EXECUTABLE)
90
91 if (NOT LIBICU_INCLUDE_DIR)
92    message(FATAL_ERROR "libicu not found, cannot create unity without it")
93 endif (NOT LIBICU_INCLUDE_DIR)
94
95 add_definitions (${QT_DEFINITIONS} ${KDE4_DEFINITIONS} -DQT3_SUPPORT -DHAVE_CONFIG_H=1)
96 link_directories (${KDE4_LIB_DIR})
97 include_directories (${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} ${KDE4_INCLUDES} ${LIBICU_INCLUDE_DIR})
98
99 add_definitions (-fpermissive)
100 add_definitions (-DUSE_SYSTEM_MALLOC=1)
101
102 add_subdirectory (JavaScriptCore)
103 add_subdirectory (WebCore)
104 IF (WEBKIT_USE_KDE_SUPPORT)
105     add_subdirectory (WebKitTools/DumpRenderTree/DumpRenderTree.qtproj)
106 ENDIF (WEBKIT_USE_KDE_SUPPORT)
107
108 add_subdirectory (WebKitQt/QtLauncher)
109
110 IF (WEBKIT_USE_KDE_SUPPORT)
111     add_subdirectory (WebKitQt/WebKitPart)
112 ENDIF (WEBKIT_USE_KDE_SUPPORT)
113
114 include_directories (BEFORE ${CMAKE_CURRENT_BINARY_DIR})