<https://webkit.org/b/126499> Move WebKit off the legacy WebKit availability macros
[WebKit-https.git] / Source / WebKit / mac / postprocess-headers.sh
1 #!/bin/sh
2
3 postProcessInDirectory()
4 {
5     cd "$1"
6
7     local unifdefOptions sedExpression
8
9     if [[ ${PLATFORM_NAME} == iphoneos ]]; then
10         unifdefOptions="-DTARGET_OS_EMBEDDED=1 -DTARGET_OS_IPHONE=1 -DTARGET_IPHONE_SIMULATOR=0";
11     elif [[ ${PLATFORM_NAME} == iphonesimulator ]]; then
12         unifdefOptions="-DTARGET_OS_EMBEDDED=0 -DTARGET_OS_IPHONE=1 -DTARGET_IPHONE_SIMULATOR=1";
13     else
14         unifdefOptions="-DTARGET_OS_EMBEDDED=0 -DTARGET_OS_IPHONE=0 -DTARGET_IPHONE_SIMULATOR=0";
15     fi
16
17     if [[ ${PLATFORM_NAME} == iphone* ]]; then
18         sedExpression='s/ *WEBKIT_((CLASS_|ENUM_)?AVAILABLE|DEPRECATED)_MAC\([^)]+\)//g';
19     else
20         sedExpression='s/WEBKIT_((CLASS_|ENUM_)?AVAILABLE|DEPRECATED)/NS_\1/g';
21     fi
22
23     for header in $(find . -name '*.h' -type f); do
24         unifdef -B ${unifdefOptions} -o ${header}.unifdef ${header}
25         case $? in
26         0)
27             rm ${header}.unifdef
28             ;;
29         1)
30             mv ${header}{.unifdef,}
31             ;;
32         *)
33             exit 1
34             ;;
35         esac
36
37         if [[ ${header} == "./WebKitAvailability.h" ]]; then
38             continue
39         fi
40
41         sed -E -e "${sedExpression}" < ${header} > ${header}.sed
42         if cmp ${header} ${header}.sed; then
43             rm ${header}.sed
44         else
45             mv ${header}.sed ${header}
46         fi
47     done
48 }
49
50 postProcessInDirectory "${TARGET_BUILD_DIR}/${PUBLIC_HEADERS_FOLDER_PATH}"
51 postProcessInDirectory "${TARGET_BUILD_DIR}/${PRIVATE_HEADERS_FOLDER_PATH}"