WebCore: [chromium] REGRESSION(72141): Chromium fails acid3 on windows and linux
[WebKit-https.git] / WebKit2 / WebKit2Prefix.h
1 /*
2  * Copyright (C) 2010 Apple Inc. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  * 1. Redistributions of source code must retain the above copyright
8  *    notice, this list of conditions and the following disclaimer.
9  * 2. Redistributions in binary form must reproduce the above copyright
10  *    notice, this list of conditions and the following disclaimer in the
11  *    documentation and/or other materials provided with the distribution.
12  *
13  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
14  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
15  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
17  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
19  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
21  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
22  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
23  * THE POSSIBILITY OF SUCH DAMAGE.
24  */ 
25
26 #include <wtf/Platform.h>
27 #include <wtf/DisallowCType.h>
28 #ifdef __cplusplus
29 #include <wtf/FastMalloc.h>
30 #endif
31
32 #ifdef __cplusplus
33 #define EXTERN_C_BEGIN extern "C" {
34 #define EXTERN_C_END }
35 #else
36 #define EXTERN_C_BEGIN
37 #define EXTERN_C_END
38 #endif
39
40 // For defining getters to a static value, where the getters have internal linkage
41 #define DEFINE_STATIC_GETTER(type, name, arguments) \
42 static const type& name() \
43 { \
44     DEFINE_STATIC_LOCAL(type, name##Value, arguments); \
45     return name##Value; \
46 }
47
48 #if defined(BUILDING_QT__)
49
50 #define WTF_USE_JSC 1
51 #define WTF_USE_V8 0
52
53 #define JS_EXPORTDATA
54 #define JS_EXPORTCLASS
55
56 #elif defined(__APPLE__)
57
58 #if !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD)
59 #define ENABLE_WEB_PROCESS_SANDBOX 1
60 #endif
61
62 #define ENABLE_PLUGIN_PROCESS 1
63
64 #import <CoreGraphics/CoreGraphics.h>
65
66 #ifdef __OBJC__
67 #import <Cocoa/Cocoa.h>
68 #endif
69
70 /* WebKit has no way to pull settings from WebCore/config.h for now */
71 /* so we assume WebKit is always being compiled on top of JavaScriptCore */
72 #define WTF_USE_JSC 1
73 #define WTF_USE_V8 0
74
75 #define JS_EXPORTDATA
76 #define JS_EXPORTCLASS
77 #define WEBKIT_EXPORTDATA
78
79 #include <WebCore/EmptyProtocolDefinitions.h>
80
81 #elif defined(WIN32) || defined(_WIN32)
82
83 #ifndef _WIN32_WINNT
84 #define _WIN32_WINNT 0x0500
85 #endif
86
87 #ifndef WINVER
88 #define WINVER 0x0500
89 #endif
90
91 /* If we don't define these, they get defined in windef.h. */
92 /* We want to use std::min and std::max. */
93 #ifndef max
94 #define max max
95 #endif
96 #ifndef min
97 #define min min
98 #endif
99
100 #ifndef _WINSOCKAPI_
101 #define _WINSOCKAPI_ /* Prevent inclusion of winsock.h in windows.h */
102 #endif
103
104 #include <WebCore/config.h>
105 #include <windows.h>
106
107 #if PLATFORM(CG)
108 #include <CoreGraphics/CoreGraphics.h>
109 #endif
110
111 #endif /* defined(WIN32) || defined(_WIN32) */
112