1 # Copyright (C) 2006, 2007, 2008, 2014 Apple Inc. All rights reserved.
2 # Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
4 # Redistribution and use in source and binary forms, with or without
5 # modification, are permitted provided that the following conditions
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.
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.
28 # Migration of WebKit Legacy headers to WebKit.
30 PRIVATE_HEADERS_DIR = $(BUILT_PRODUCTS_DIR)/$(PRIVATE_HEADERS_FOLDER_PATH)
31 PUBLIC_HEADERS_DIR = $(BUILT_PRODUCTS_DIR)/$(PUBLIC_HEADERS_FOLDER_PATH)
34 RECENTLY_REMOVED_WEBKIT_LEGACY_PRIVATE_HEADERS = \
37 DELETE_STALE_WEBKIT_PRIVATE_HEADERS = $(addprefix $(PRIVATE_HEADERS_DIR)/, $(RECENTLY_REMOVED_WEBKIT_LEGACY_PRIVATE_HEADERS))
38 $(shell /bin/rm -f $(DELETE_STALE_WEBKIT_PRIVATE_HEADERS))
41 ifeq ($(WK_PLATFORM_NAME), macosx)
43 WEBKIT_PUBLIC_HEADERS = \
51 DOMCSSFontFaceRule.h \
55 DOMCSSPrimitiveValue.h \
58 DOMCSSStyleDeclaration.h \
69 DOMDocumentFragment.h \
73 DOMEntityReference.h \
84 DOMHTMLAnchorElement.h \
85 DOMHTMLAppletElement.h \
86 DOMHTMLAreaElement.h \
88 DOMHTMLBaseElement.h \
89 DOMHTMLBaseFontElement.h \
90 DOMHTMLBodyElement.h \
91 DOMHTMLButtonElement.h \
93 DOMHTMLDListElement.h \
94 DOMHTMLDirectoryElement.h \
98 DOMHTMLEmbedElement.h \
99 DOMHTMLFieldSetElement.h \
100 DOMHTMLFontElement.h \
101 DOMHTMLFormElement.h \
102 DOMHTMLFrameElement.h \
103 DOMHTMLFrameSetElement.h \
105 DOMHTMLHeadElement.h \
106 DOMHTMLHeadingElement.h \
107 DOMHTMLHtmlElement.h \
108 DOMHTMLIFrameElement.h \
109 DOMHTMLImageElement.h \
110 DOMHTMLInputElement.h \
112 DOMHTMLLabelElement.h \
113 DOMHTMLLegendElement.h \
114 DOMHTMLLinkElement.h \
115 DOMHTMLMapElement.h \
116 DOMHTMLMarqueeElement.h \
117 DOMHTMLMenuElement.h \
118 DOMHTMLMetaElement.h \
119 DOMHTMLModElement.h \
120 DOMHTMLOListElement.h \
121 DOMHTMLObjectElement.h \
122 DOMHTMLOptGroupElement.h \
123 DOMHTMLOptionElement.h \
124 DOMHTMLOptionsCollection.h \
125 DOMHTMLParagraphElement.h \
126 DOMHTMLParamElement.h \
127 DOMHTMLPreElement.h \
128 DOMHTMLQuoteElement.h \
129 DOMHTMLScriptElement.h \
130 DOMHTMLSelectElement.h \
131 DOMHTMLStyleElement.h \
132 DOMHTMLTableCaptionElement.h \
133 DOMHTMLTableCellElement.h \
134 DOMHTMLTableColElement.h \
135 DOMHTMLTableElement.h \
136 DOMHTMLTableRowElement.h \
137 DOMHTMLTableSectionElement.h \
138 DOMHTMLTextAreaElement.h \
139 DOMHTMLTitleElement.h \
140 DOMHTMLUListElement.h \
141 DOMImplementation.h \
153 DOMProcessingInstruction.h \
157 DOMRangeException.h \
161 DOMStyleSheetList.h \
170 DOMXPathException.h \
171 DOMXPathExpression.h \
172 DOMXPathNSResolver.h \
175 WebBackForwardList.h \
180 WebEditingDelegate.h \
182 WebFrameLoadDelegate.h \
186 WebKitAvailability.h \
189 WebPluginContainer.h \
190 WebPluginViewFactory.h \
191 WebPolicyDelegate.h \
194 WebResourceLoadDelegate.h \
200 WEBKIT_LEGACY_PUBLIC_HEADERS = $(addprefix $(PUBLIC_HEADERS_DIR)/, $(filter $(WEBKIT_PUBLIC_HEADERS), $(notdir $(wildcard $(WEBKIT_LEGACY_PRIVATE_HEADERS_DIR)/*.h))) WebKitLegacy.h)
202 WEBKIT_LEGACY_PRIVATE_HEADERS = $(addprefix $(PRIVATE_HEADERS_DIR)/, $(filter-out $(WEBKIT_PUBLIC_HEADERS) $(RECENTLY_REMOVED_WEBKIT_LEGACY_PRIVATE_HEADERS) WebKit.h, $(notdir $(wildcard $(WEBKIT_LEGACY_PRIVATE_HEADERS_DIR)/*.h))))
204 WEBKIT_LEGACY_HEADER_REPLACE_RULES = -e s/\<WebKitLegacy/\<WebKit/
205 WEBKIT_LEGACY_HEADER_MIGRATE_CMD = sed $(WEBKIT_LEGACY_HEADER_REPLACE_RULES) $< > $@
207 PUBLIC_HEADER_CHECK_CMD = @if grep -q "AVAILABLE.*9876_5" "$<"; then line=$$(awk "/AVAILABLE.*9876_5/ { print FNR; exit }" "$<" ); echo "$<:$$line: error: A class within a public header has unspecified availability."; false; fi
209 $(PUBLIC_HEADERS_DIR)/% : $(WEBKIT_LEGACY_PRIVATE_HEADERS_DIR)/% MigrateHeadersFromWebKitLegacy.make
210 $(PUBLIC_HEADER_CHECK_CMD)
211 $(WEBKIT_LEGACY_HEADER_MIGRATE_CMD)
213 $(PRIVATE_HEADERS_DIR)/% : $(WEBKIT_LEGACY_PRIVATE_HEADERS_DIR)/% MigrateHeadersFromWebKitLegacy.make
214 $(WEBKIT_LEGACY_HEADER_MIGRATE_CMD)
216 all : $(WEBKIT_LEGACY_PUBLIC_HEADERS) $(WEBKIT_LEGACY_PRIVATE_HEADERS)
218 $(PUBLIC_HEADERS_DIR)/WebKitLegacy.h : $(WEBKIT_LEGACY_PRIVATE_HEADERS_DIR)/WebKit.h MigrateHeadersFromWebKitLegacy.make
219 $(PUBLIC_HEADER_CHECK_CMD)
220 $(WEBKIT_LEGACY_HEADER_MIGRATE_CMD)
224 WEBKIT_LEGACY_PRIVATE_HEADERS = $(addprefix $(PRIVATE_HEADERS_DIR)/, $(filter-out $(RECENTLY_REMOVED_WEBKIT_LEGACY_PRIVATE_HEADERS) WebKit.h, $(notdir $(wildcard $(WEBKIT_LEGACY_PRIVATE_HEADERS_DIR)/*.h))))
226 all : $(WEBKIT_LEGACY_PRIVATE_HEADERS) $(PUBLIC_HEADERS_DIR)/WebKitLegacy.h
228 WEBKIT_HEADER_MIGRATE_CMD = echo "\#import <WebKitLegacy/"`basename $<`">" > $@
230 $(PRIVATE_HEADERS_DIR)/% : $(WEBKIT_LEGACY_PRIVATE_HEADERS_DIR)/% MigrateHeadersFromWebKitLegacy.make
231 $(WEBKIT_HEADER_MIGRATE_CMD)
233 $(PUBLIC_HEADERS_DIR)/WebKitLegacy.h : $(WEBKIT_LEGACY_PRIVATE_HEADERS_DIR)/WebKit.h MigrateHeadersFromWebKitLegacy.make
234 echo "#if defined(__has_include) && __has_include(<WebKitLegacy/WebKit.h>)" > $@
235 echo "#import <WebKitLegacy/"`basename $<`">" >> $@