#!/bin/sh # WebKit builds ANGLE as a static library, and exports some of the # internal header files as "public headers" in the Xcode project for # consumption by other build targets - e.g. WebCore. # # The build phase which copies these headers also flattens the # directory structure (so that "ANGLE" is the top-level directory # containing all of them - e.g., "#include "). # # It isn't practical to override the include paths so drastically for # the other build targets (like WebCore) that we could make the # original include paths, like work. Changing them so # their namespace is "ANGLE", which implicitly occurs during the "copy # headers" phase, is a reasonable solution. # # This script processes the header files after they're copied during # the Copy Header Files build phase, and adjusts their #includes so # that they refer to each other. This avoids modifying the ANGLE # sources, and allows WebCore to more easily call ANGLE APIs directly. if [[ -n "${SCRIPT_HEADER_VISIBILITY}" ]] then SOURCE_FILE="${SCRIPT_INPUT_FILE}" WORK_FILE="${SCRIPT_OUTPUT_FILE_0}.tmp" DEST_FILE="${SCRIPT_OUTPUT_FILE_0}" sed \ -e 's/^#include [<"]EGL\/\(.*\)[>"]/#include /' \ -e 's/^#include [<"]\(\.\.\/\)*GLES[23]*\/\(.*\)[>"]/#include /' \ -e 's/^#include [<"]KHR\/\(.*\)[>"]/#include /' \ -e 's/^#include [<"]export.h[>"]/#include /' \ -e 's/^#include "\(eglext_angle\|gl2ext_angle\|ShaderVars\).h"/#include /' \ "${SOURCE_FILE}" > "${WORK_FILE}" cmp -s "${WORK_FILE}" "${DEST_FILE}" && rm -f "${WORK_FILE}" || mv "${WORK_FILE}" "${DEST_FILE}" [[ "${SOURCE_FILE}" -nt "${DEST_FILE}" ]] && touch "${DEST_FILE}" || true fi exit 0