Update availability macros
[WebKit-https.git] / Source / WebKit2 / mac / MigrateHeadersFromWebKitLegacy.make
1 # Copyright (C) 2006, 2007, 2008, 2014 Apple Inc. All rights reserved.
2 # Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
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 #
8 # 1.  Redistributions of source code must retain the above copyright
9 #     notice, this list of conditions and the following disclaimer. 
10 # 2.  Redistributions in binary form must reproduce the above copyright
11 #     notice, this list of conditions and the following disclaimer in the
12 #     documentation and/or other materials provided with the distribution. 
13 # 3.  Neither the name of Apple Inc. ("Apple") nor the names of
14 #     its contributors may be used to endorse or promote products derived
15 #     from this software without specific prior written permission. 
16 #
17 # THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
18 # EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
19 # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20 # DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
21 # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
22 # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
24 # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26 # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
28 # Migration of WebKit Legacy headers to WebKit.
29
30 PRIVATE_HEADERS_DIR = $(TARGET_BUILD_DIR)/$(PRIVATE_HEADERS_FOLDER_PATH)
31 PUBLIC_HEADERS_DIR = $(TARGET_BUILD_DIR)/$(PUBLIC_HEADERS_FOLDER_PATH)
32
33 ifeq ($(PLATFORM_NAME), macosx)
34
35 WEBKIT_PUBLIC_HEADERS = \
36     CarbonUtils.h \
37     DOM.h \
38     DOMAbstractView.h \
39     DOMAttr.h \
40     DOMBlob.h \
41     DOMCDATASection.h \
42     DOMCSS.h \
43     DOMCSSCharsetRule.h \
44     DOMCSSFontFaceRule.h \
45     DOMCSSImportRule.h \
46     DOMCSSMediaRule.h \
47     DOMCSSPageRule.h \
48     DOMCSSPrimitiveValue.h \
49     DOMCSSRule.h \
50     DOMCSSRuleList.h \
51     DOMCSSStyleDeclaration.h \
52     DOMCSSStyleRule.h \
53     DOMCSSStyleSheet.h \
54     DOMCSSUnknownRule.h \
55     DOMCSSValue.h \
56     DOMCSSValueList.h \
57     DOMCharacterData.h \
58     DOMComment.h \
59     DOMCore.h \
60     DOMCounter.h \
61     DOMDocument.h \
62     DOMDocumentFragment.h \
63     DOMDocumentType.h \
64     DOMElement.h \
65     DOMEntity.h \
66     DOMEntityReference.h \
67     DOMEvent.h \
68     DOMEventException.h \
69     DOMEventListener.h \
70     DOMEventTarget.h \
71     DOMEvents.h \
72     DOMException.h \
73     DOMExtensions.h \
74     DOMFile.h \
75     DOMFileList.h \
76     DOMHTML.h \
77     DOMHTMLAnchorElement.h \
78     DOMHTMLAppletElement.h \
79     DOMHTMLAreaElement.h \
80     DOMHTMLBRElement.h \
81     DOMHTMLBaseElement.h \
82     DOMHTMLBaseFontElement.h \
83     DOMHTMLBodyElement.h \
84     DOMHTMLButtonElement.h \
85     DOMHTMLCollection.h \
86     DOMHTMLDListElement.h \
87     DOMHTMLDirectoryElement.h \
88     DOMHTMLDivElement.h \
89     DOMHTMLDocument.h \
90     DOMHTMLElement.h \
91     DOMHTMLEmbedElement.h \
92     DOMHTMLFieldSetElement.h \
93     DOMHTMLFontElement.h \
94     DOMHTMLFormElement.h \
95     DOMHTMLFrameElement.h \
96     DOMHTMLFrameSetElement.h \
97     DOMHTMLHRElement.h \
98     DOMHTMLHeadElement.h \
99     DOMHTMLHeadingElement.h \
100     DOMHTMLHtmlElement.h \
101     DOMHTMLIFrameElement.h \
102     DOMHTMLImageElement.h \
103     DOMHTMLInputElement.h \
104     DOMHTMLLIElement.h \
105     DOMHTMLLabelElement.h \
106     DOMHTMLLegendElement.h \
107     DOMHTMLLinkElement.h \
108     DOMHTMLMapElement.h \
109     DOMHTMLMarqueeElement.h \
110     DOMHTMLMenuElement.h \
111     DOMHTMLMetaElement.h \
112     DOMHTMLModElement.h \
113     DOMHTMLOListElement.h \
114     DOMHTMLObjectElement.h \
115     DOMHTMLOptGroupElement.h \
116     DOMHTMLOptionElement.h \
117     DOMHTMLOptionsCollection.h \
118     DOMHTMLParagraphElement.h \
119     DOMHTMLParamElement.h \
120     DOMHTMLPreElement.h \
121     DOMHTMLQuoteElement.h \
122     DOMHTMLScriptElement.h \
123     DOMHTMLSelectElement.h \
124     DOMHTMLStyleElement.h \
125     DOMHTMLTableCaptionElement.h \
126     DOMHTMLTableCellElement.h \
127     DOMHTMLTableColElement.h \
128     DOMHTMLTableElement.h \
129     DOMHTMLTableRowElement.h \
130     DOMHTMLTableSectionElement.h \
131     DOMHTMLTextAreaElement.h \
132     DOMHTMLTitleElement.h \
133     DOMHTMLUListElement.h \
134     DOMImplementation.h \
135     DOMKeyboardEvent.h \
136     DOMMediaList.h \
137     DOMMouseEvent.h \
138     DOMMutationEvent.h \
139     DOMNamedNodeMap.h \
140     DOMNode.h \
141     DOMNodeFilter.h \
142     DOMNodeIterator.h \
143     DOMNodeList.h \
144     DOMNotation.h \
145     DOMObject.h \
146     DOMOverflowEvent.h \
147     DOMProcessingInstruction.h \
148     DOMProgressEvent.h \
149     DOMRGBColor.h \
150     DOMRange.h \
151     DOMRangeException.h \
152     DOMRanges.h \
153     DOMRect.h \
154     DOMStyleSheet.h \
155     DOMStyleSheetList.h \
156     DOMStylesheets.h \
157     DOMText.h \
158     DOMTraversal.h \
159     DOMTreeWalker.h \
160     DOMUIEvent.h \
161     DOMViews.h \
162     DOMWheelEvent.h \
163     DOMXPath.h \
164     DOMXPathException.h \
165     DOMXPathExpression.h \
166     DOMXPathNSResolver.h \
167     DOMXPathResult.h \
168     HIWebView.h \
169     WebArchive.h \
170     WebBackForwardList.h \
171     WebDOMOperations.h \
172     WebDataSource.h \
173     WebDocument.h \
174     WebDownload.h \
175     WebEditingDelegate.h \
176     WebFrame.h \
177     WebFrameLoadDelegate.h \
178     WebFrameView.h \
179     WebHistory.h \
180     WebHistoryItem.h \
181     WebKitAvailability.h \
182     WebKitErrors.h \
183     WebPlugin.h \
184     WebPluginContainer.h \
185     WebPluginViewFactory.h \
186     WebPolicyDelegate.h \
187     WebPreferences.h \
188     WebResource.h \
189     WebResourceLoadDelegate.h \
190     WebScriptObject.h \
191     WebUIDelegate.h \
192     WebView.h \
193     npapi.h \
194     npfunctions.h \
195     npruntime.h \
196     nptypes.h \
197 #
198
199 WEBKIT_LEGACY_PUBLIC_HEADERS = $(addprefix $(PUBLIC_HEADERS_DIR)/, $(filter $(WEBKIT_PUBLIC_HEADERS), $(notdir $(wildcard $(WEBKIT_LEGACY_PRIVATE_HEADERS_DIR)/*.h))) WebKitLegacy.h)
200
201 WEBKIT_LEGACY_PRIVATE_HEADERS = $(addprefix $(PRIVATE_HEADERS_DIR)/, $(filter-out $(WEBKIT_PUBLIC_HEADERS) WebKit.h, $(notdir $(wildcard $(WEBKIT_LEGACY_PRIVATE_HEADERS_DIR)/*.h))))
202
203 WEBKIT_LEGACY_HEADER_REPLACE_RULES = -e s/\<WebKitLegacy/\<WebKit/
204 WEBKIT_LEGACY_HEADER_MIGRATE_CMD = sed $(WEBKIT_LEGACY_HEADER_REPLACE_RULES) $< > $@
205
206 PUBLIC_HEADER_CHECK_CMD = @if grep -q "AVAILABLE.*TBD" "$<"; then line=$$(awk "/AVAILABLE.*TBD/ { print FNR; exit }" "$<" ); echo "$<:$$line: error: A class within a public header has unspecified availability."; false; fi
207
208 $(PUBLIC_HEADERS_DIR)/% : $(WEBKIT_LEGACY_PRIVATE_HEADERS_DIR)/% MigrateHeadersFromWebKitLegacy.make
209         $(PUBLIC_HEADER_CHECK_CMD)
210         $(WEBKIT_LEGACY_HEADER_MIGRATE_CMD)
211
212 $(PRIVATE_HEADERS_DIR)/% : $(WEBKIT_LEGACY_PRIVATE_HEADERS_DIR)/% MigrateHeadersFromWebKitLegacy.make
213         $(WEBKIT_LEGACY_HEADER_MIGRATE_CMD)
214
215 all : $(WEBKIT_LEGACY_PUBLIC_HEADERS) $(WEBKIT_LEGACY_PRIVATE_HEADERS)
216
217 $(PUBLIC_HEADERS_DIR)/WebKitLegacy.h : $(WEBKIT_LEGACY_PRIVATE_HEADERS_DIR)/WebKit.h MigrateHeadersFromWebKitLegacy.make
218         $(PUBLIC_HEADER_CHECK_CMD)
219         $(WEBKIT_LEGACY_HEADER_MIGRATE_CMD)
220
221 else
222
223 WEBKIT_LEGACY_PRIVATE_HEADERS = $(addprefix $(PRIVATE_HEADERS_DIR)/, $(filter-out WebKit.h, $(notdir $(wildcard $(WEBKIT_LEGACY_PRIVATE_HEADERS_DIR)/*.h))))
224
225 all : $(WEBKIT_LEGACY_PRIVATE_HEADERS) $(PUBLIC_HEADERS_DIR)/WebKitLegacy.h
226
227 WEBKIT_HEADER_MIGRATE_CMD = echo "\#import <WebKitLegacy/"`basename $<`">" > $@
228
229 $(PRIVATE_HEADERS_DIR)/% : $(WEBKIT_LEGACY_PRIVATE_HEADERS_DIR)/% MigrateHeadersFromWebKitLegacy.make
230         $(WEBKIT_HEADER_MIGRATE_CMD)
231
232 $(PUBLIC_HEADERS_DIR)/WebKitLegacy.h : $(WEBKIT_LEGACY_PRIVATE_HEADERS_DIR)/WebKit.h MigrateHeadersFromWebKitLegacy.make
233         echo "#if defined(__has_include) && __has_include(<WebKitLegacy/WebKit.h>)" > $@
234         echo "#import <WebKitLegacy/"`basename $<`">" >> $@
235         echo "#endif" >> $@
236
237 endif