39 lines
1.8 KiB
Bash
Executable File
39 lines
1.8 KiB
Bash
Executable File
#!/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
|
|
SOURCE_FILE="${SCRIPT_INPUT_FILE}"
|
|
WORK_FILE="${SCRIPT_OUTPUT_FILE_0}.tmp"
|
|
DEST_FILE="${SCRIPT_OUTPUT_FILE_0}"
|
|
|
|
sed \
|
|
-e 's/^#include [<"]EGL\/\(.*\)[>"]/#include <ANGLE\/\1>/' \
|
|
-e 's/^#include [<"]\(\.\.\/\)*GLES[23]*\/\(.*\)[>"]/#include <ANGLE\/\2>/' \
|
|
-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>/' \
|
|
"${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
|