#!/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 <ANGLE/gl2.h>").
#
# 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 <GLES2/gl2.h> 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
    sed \
        -e 's/^#include <EGL\/\(.*\)>/#include <ANGLE\/\1>/' \
        -e 's/^#include <GLES\/\(.*\)>/#include <ANGLE\/\1>/' \
        -e 's/^#include <GLES2\/\(.*\)>/#include <ANGLE\/\1>/' \
        -e 's/^#include <GLES3\/\(.*\)>/#include <ANGLE\/\1>/' \
        -e 's/^#include <KHR\/\(.*\)>/#include <ANGLE\/\1>/' \
        -e 's/^#include <export.h>/#include <ANGLE\/export.h>/' \
        -e 's/^#include "\(eglext_angle\|gl2ext_angle\|ShaderVars\).h"/#include <ANGLE\/\1.h>/' \
        "${SCRIPT_INPUT_FILE}" > "${SCRIPT_OUTPUT_FILE_0}"
    echo "Postprocessed ANGLE header: ${SCRIPT_OUTPUT_FILE_0}"
fi
exit 0
