Title: [183080] trunk/Source/WebKit2
Revision
183080
Author
m...@apple.com
Date
2015-04-21 16:07:59 -0700 (Tue, 21 Apr 2015)

Log Message

[Cocoa] Framework header postprocessing should respect additional definitions
https://bugs.webkit.org/show_bug.cgi?id=144018

Reviewed by Anders Carlsson.

* mac/postprocess-framework-headers.sh: Read definitons from
/usr/local/include/WebKitAdditions/Scripts/postprocess-framework-headers-definitions, and
have them take precedence over OSX_VERSION and IOS_VERSION and supply additional options to
sed.

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (183079 => 183080)


--- trunk/Source/WebKit2/ChangeLog	2015-04-21 22:48:03 UTC (rev 183079)
+++ trunk/Source/WebKit2/ChangeLog	2015-04-21 23:07:59 UTC (rev 183080)
@@ -1,3 +1,15 @@
+2015-04-21  Dan Bernstein  <m...@apple.com>
+
+        [Cocoa] Framework header postprocessing should respect additional definitions
+        https://bugs.webkit.org/show_bug.cgi?id=144018
+
+        Reviewed by Anders Carlsson.
+
+        * mac/postprocess-framework-headers.sh: Read definitons from
+        /usr/local/include/WebKitAdditions/Scripts/postprocess-framework-headers-definitions, and
+        have them take precedence over OSX_VERSION and IOS_VERSION and supply additional options to
+        sed.
+
 2015-04-21  Anders Carlsson  <ander...@apple.com>
 
         Fix block signatures

Modified: trunk/Source/WebKit2/mac/postprocess-framework-headers.sh (183079 => 183080)


--- trunk/Source/WebKit2/mac/postprocess-framework-headers.sh	2015-04-21 22:48:03 UTC (rev 183079)
+++ trunk/Source/WebKit2/mac/postprocess-framework-headers.sh	2015-04-21 23:07:59 UTC (rev 183080)
@@ -34,31 +34,47 @@
     rm "${TIMESTAMP_PATH}";
 fi
 
+function process_definitions () {
+    local DEFINITIONS_FILE=$1
+
+    if [[ ! -f "${DEFINITIONS_FILE}" ]]; then
+        return 1
+    fi
+
+    if [[ -e $TIMESTAMP_PATH && "${DEFINITIONS_FILE}" -nt $TIMESTAMP_PATH ]]; then
+        rm "${TIMESTAMP_PATH}";
+    fi
+
+    source "${DEFINITIONS_FILE}"
+}
+
 function rewrite_headers () {
     if [[ "${PLATFORM_NAME}" == "macosx" ]]; then
-        OSX_VERSION=${MACOSX_DEPLOYMENT_TARGET/\./_}
-        IOS_VERSION="NA"
+        [[ -n ${OSX_VERSION} ]] || OSX_VERSION=${MACOSX_DEPLOYMENT_TARGET/\./_}
+        [[ -n ${IOS_VERSION} ]] || IOS_VERSION="NA"
     elif [[ "${PLATFORM_NAME}" =~ "iphone" ]]; then
-        IOS_VERSION=${IPHONEOS_DEPLOYMENT_TARGET/\./_}
-        OSX_VERSION="NA"
+        [[ -n ${IOS_VERSION} ]] || IOS_VERSION=${IPHONEOS_DEPLOYMENT_TARGET/\./_}
+        [[ -n ${OSX_VERSION} ]] || OSX_VERSION="NA"
     fi
 
     for HEADER_PATH in $1/*.h; do
         if [[ $HEADER_PATH -nt $TIMESTAMP_PATH ]]; then
             ditto ${HEADER_PATH} ${TARGET_TEMP_DIR}/${HEADER_PATH##*/}
-
             if [[ -n "$OSX_VERSION" ]] && [[ -n "$IOS_VERSION" ]]; then
                 sed -i .tmp -e s/WK_MAC_TBA/${OSX_VERSION}/g -e s/WK_IOS_TBA/${IOS_VERSION}/g ${TARGET_TEMP_DIR}/${HEADER_PATH##*/} || exit $_
             else
                 sed -i .tmp -E -e 's/WK_(CLASS_|ENUM_)?AVAILABLE(_IOS|_MAC)?\(.+\)//g' -e 's/WK_(CLASS_?)DEPRECATED\(.+\)//g' ${TARGET_TEMP_DIR}/${HEADER_PATH##*/} || exit $_
             fi
 
-            sed -i .tmp -e s/^WK_CLASS_AVAILABLE/NS_CLASS_AVAILABLE/ -e s/WK_AVAILABLE/NS_AVAILABLE/ -e s/^WK_CLASS_DEPRECATED/NS_CLASS_DEPRECATED/ -e s/WK_DEPRECATED/NS_DEPRECATED/ -e s/WK_DESIGNATED_INITIALIZER/NS_DESIGNATED_INITIALIZER/ -e s/WK_ENUM_AVAILABLE/NS_ENUM_AVAILABLE/ -e s/WK_UNAVAILABLE/NS_UNAVAILABLE/ -e s/WK_ASSUME_NONNULL_BEGIN/NS_ASSUME_NONNULL_BEGIN/ -e s/WK_ASSUME_NONNULL_END/NS_ASSUME_NONNULL_END/ -e s/WK_NULLABLE_PROPERTY/nullable,/ -e s/WK_NULLABLE_SPECIFIER/__nullable/g -e s/WK_NULLABLE/nullable/g -e s/WK_NULL_UNSPECIFIED/null_unspecified/ ${TARGET_TEMP_DIR}/${HEADER_PATH##*/} || exit $_
+            sed -i .tmp -e s/^WK_CLASS_AVAILABLE/NS_CLASS_AVAILABLE/ -e s/WK_AVAILABLE/NS_AVAILABLE/ -e s/^WK_CLASS_DEPRECATED/NS_CLASS_DEPRECATED/ -e s/WK_DEPRECATED/NS_DEPRECATED/ -e s/WK_DESIGNATED_INITIALIZER/NS_DESIGNATED_INITIALIZER/ -e s/WK_ENUM_AVAILABLE/NS_ENUM_AVAILABLE/ -e s/WK_UNAVAILABLE/NS_UNAVAILABLE/ -e s/WK_ASSUME_NONNULL_BEGIN/NS_ASSUME_NONNULL_BEGIN/ -e s/WK_ASSUME_NONNULL_END/NS_ASSUME_NONNULL_END/ -e s/WK_NULLABLE_PROPERTY/nullable,/ -e s/WK_NULLABLE_SPECIFIER/__nullable/g -e s/WK_NULLABLE/nullable/g -e s/WK_NULL_UNSPECIFIED/null_unspecified/ ${OTHER_SED_OPTIONS[*]} ${TARGET_TEMP_DIR}/${HEADER_PATH##*/} || exit $_
             mv ${TARGET_TEMP_DIR}/${HEADER_PATH##*/} $HEADER_PATH
         fi
     done
 }
 
+DEFINITIONS_PATH=usr/local/include/WebKitAdditions/Scripts/postprocess-framework-headers-definitions
+process_definitions "${BUILT_PRODUCTS_DIR}/${DEFINITIONS_PATH}" || process_definitions "${SDKROOT}/${DEFINITIONS_PATH}"
+
 rewrite_headers ${TARGET_BUILD_DIR}/${PUBLIC_HEADERS_FOLDER_PATH}
 rewrite_headers ${TARGET_BUILD_DIR}/${PRIVATE_HEADERS_FOLDER_PATH}
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to