2010-08-17  Chris Marrin  <cmarrin@apple.com>

        Unreviewed.

        Moved previous link error fix to Base.xcconfig.

        * ANGLE.xcodeproj/project.pbxproj:
        * Configurations/Base.xcconfig:

2010-08-17  Chris Marrin  <cmarrin@apple.com>

        Unreviewed.

        Got rid of link errors in WebCore.

        Changed GCC_INLINES_ARE_PRIVATE_EXTERN to YES and
        GCC_SYMBOLS_PRIVATE_EXTERN to NO to match WebCore
        flags.

        * ANGLE.xcodeproj/project.pbxproj:

2010-08-04  Kenneth Russell  <kbr@google.com>

        Reviewed by Dimitri Glazkov.

        Update ANGLE to r352
        https://bugs.webkit.org/show_bug.cgi?id=43500

        Updated ANGLE to r352 (July 26, 2010). Built WebKit to test.

        * include/GLSLANG/ShaderLang.h:
        * src/compiler/Initialize.cpp:
        (BuiltInFunctionsCommon):
        (BuiltInFunctionsVertex):
        (BuiltInFunctionsFragment):
        (StandardUniforms):
        (DefaultPrecisionVertex):
        (DefaultPrecisionFragment):
        (BuiltInConstants):
        (TBuiltIns::initialize):
        (IdentifyBuiltIns):
        * src/compiler/Initialize.h:
        (TBuiltIns::getBuiltInStrings):
        * src/compiler/OutputGLSL.cpp:
        (TOutputGLSL::visitSelection):
        * src/compiler/ShHandle.h:
        (TCompiler::getLanguage):
        (TCompiler::getSpec):
        (TCompiler::getSymbolTable):
        (TCompiler::getInfoSink):
        * src/compiler/ShaderLang.cpp:
        (InitializeSymbolTable):
        (GenerateBuiltInSymbolTable):
        (ShInitialize):
        (ShConstructCompiler):
        (ShFinalize):
        (ShCompile):
        * src/compiler/SymbolTable.h:
        (TSymbolTable::atBuiltInLevel):
        (TSymbolTable::atGlobalLevel):
        (TSymbolTable::push):
        (TSymbolTable::getGlobalLevel):
        (TSymbolTable::currentLevel):
        * src/libGLESv2/Shader.cpp:
        (gl::Shader::Shader):
        (gl::Shader::compileToHLSL):

2010-08-03  Mark Rowe  <mrowe@apple.com>

        Rubber-stamped by Adele Peterson.

        Remove some unnecessary files from the ANGLE tree.

        * src/compiler/tools/COPYING.bison: Removed.
        * src/compiler/tools/COPYING.flex: Removed.
        * src/compiler/tools/README: Removed.
        * src/compiler/tools/bison.hairy: Removed.
        * src/compiler/tools/bison.simple: Removed.

2010-08-03  Mark Rowe  <mrowe@apple.com>

        Rubber-stamped by Adele Peterson.

        Clean up the ANGLE Xcode project.

        Main changes include:
        • Adding a Production configuration.
        • Modifying the library name from libangle.a to libANGLE.a.
        • Installing the headers in a subdirectory of /usr/local/include to avoid polluting the top-level directory.
        • Generating derived sources in to the built products directory so they're saved along with the symroot.
        • Switching to using .xcconfig files for maximum cleanliness.

        * ANGLE.xcodeproj/project.pbxproj:
        * Configurations/ANGLE.xcconfig: Added.
        * Configurations/Base.xcconfig: Added.
        * Configurations/DebugRelease.xcconfig: Added.

2010-08-02  Paul Sawaya  <psawaya@apple.com>

        Reviewed by Adele Peterson.

        Add ANGLE library to WebKit. From the repository (http://angleproject.googlecode.com) as of July 22.
        https://bugs.webkit.org/show_bug.cgi?id=42789

