2016-09-27  Konstantin Tokarev  <annulen@yandex.ru> and Vitaliy Slobodin  <vitaliy.slobodin@gmail.com>

        Fixed compilation of WOFF2 on Windows
        https://bugs.webkit.org/show_bug.cgi?id=162570

        Reviewed by Alex Christensen.

        * woff2/CMakeLists.txt: Avoid passing GCC-specific flags to other
        compilers.
        * woff2/src/port.h: Include assert.h.

2016-06-19  Frederic Wang  <fred.wang@free.fr>

        Update Brotli to version 0.4.0
        https://bugs.webkit.org/show_bug.cgi?id=158907

        Reviewed by Michael Catanzaro.

        * brotli/README.webkit:
        * brotli/dec/bit_reader.h:
        * brotli/dec/decode.c:
        * brotli/dec/decode.h:
        * brotli/dec/huffman.c:
        * brotli/dec/huffman.h:
        * brotli/dec/port.h:
        (BrotliDump):
        * brotli/dec/state.c:
        * brotli/dec/state.h:

2016-05-23  Michael Catanzaro  <mcatanzaro@igalia.com>

        woff2_dec.cc triggers -Wsign-compare, -Wunused-but-set-variable
        https://bugs.webkit.org/show_bug.cgi?id=157732

        Reviewed by Darin Adler.

        * woff2/CMakeLists.txt:

2016-05-22  Brady Eidson  <beidson@apple.com>

        Move to C++14.
        https://bugs.webkit.org/show_bug.cgi?id=157948

        Reviewed by Michael Catanzaro.

        * gtest/xcode/Config/General.xcconfig:

2016-03-17  Csaba Osztrogonác  <ossy@webkit.org>

        Unreviewed, line ending fixes.

        * gtest/codegear/gtest_all.cc:
        * gtest/codegear/gtest_link.cc:

2016-03-10  Frederic Wang  <fwang@igalia.com>

        [GTK] Add support for WOFF2
        https://bugs.webkit.org/show_bug.cgi?id=152616

        Reviewed by Carlos Garcia Campos.

        We import the source of the third-party brotli and woff2 libraries because release packages do not exist yet.
        The script to update source from upstream as well as the makefile to compile relevant files are based on similar code from Mozilla.

        * brotli/CMakeLists.txt: Added. We force BROTLI_BUILD_PORTABLE by default, see https://github.com/google/brotli/issues/307.
        * brotli/LICENSE: Added.
        * brotli/README.webkit: Added.
        * brotli/dec/Makefile: Added.
        * brotli/dec/bit_reader.c: Added.
        * brotli/dec/bit_reader.h: Added.
        * brotli/dec/context.h: Added.
        * brotli/dec/decode.c: Added.
        * brotli/dec/decode.h: Added.
        * brotli/dec/dictionary.c: Added.
        * brotli/dec/dictionary.h: Added.
        * brotli/dec/huffman.c: Added.
        * brotli/dec/huffman.h: Added.
        * brotli/dec/port.h: Added.
        (BrotliRBit):
        * brotli/dec/prefix.h: Added.
        * brotli/dec/state.c: Added.
        * brotli/dec/state.h: Added.
        * brotli/dec/transform.h: Added.
        * brotli/dec/types.h: Added.
        * brotli/update.sh: Added. This script helps to get the latest version of the decoder source code.
        * woff2/CMakeLists.txt: Added. We only compile the decoder files.
        * woff2/LICENSE: Added.
        * woff2/README.webkit: Added.
        * woff2/src/buffer.h: Added.
        (woff2::Failure):
        (woff2::Buffer::Buffer):
        (woff2::Buffer::Skip):
        (woff2::Buffer::Read):
        (woff2::Buffer::ReadU8):
        (woff2::Buffer::ReadU16):
        (woff2::Buffer::ReadS16):
        (woff2::Buffer::ReadU24):
        (woff2::Buffer::ReadU32):
        (woff2::Buffer::ReadS32):
        (woff2::Buffer::ReadTag):
        (woff2::Buffer::ReadR64):
        (woff2::Buffer::buffer):
        (woff2::Buffer::offset):
        (woff2::Buffer::length):
        (woff2::Buffer::set_offset):
        * woff2/src/file.h: Added.
        (woff2::GetFileContent):
        (woff2::SetFileContents):
        * woff2/src/font.cc: Added.
        * woff2/src/font.h: Added.
        * woff2/src/glyph.cc: Added.
        * woff2/src/glyph.h: Added.
        (woff2::Glyph::Glyph):
        * woff2/src/normalize.cc: Added.
        * woff2/src/normalize.h: Added.
        * woff2/src/port.h: Added.
        (woff2::Log2Floor):
        * woff2/src/round.h: Added.
        (woff2::Round4):
        * woff2/src/store_bytes.h: Added.
        (woff2::StoreU32):
        (woff2::Store16):
        (woff2::StoreBytes):
        * woff2/src/table_tags.cc: Added.
        * woff2/src/table_tags.h: Added.
        * woff2/src/transform.cc: Added.
        * woff2/src/transform.h: Added.
        * woff2/src/variable_length.cc: Added.
        * woff2/src/variable_length.h: Added.
        * woff2/src/woff2_common.cc: Added.
        * woff2/src/woff2_common.h: Added.
        (woff2::Table::operator<):
        * woff2/src/woff2_compress.cc: Added.
        * woff2/src/woff2_dec.cc: Added.
        * woff2/src/woff2_dec.h: Added.
        * woff2/src/woff2_decompress.cc: Added.
        * woff2/src/woff2_enc.cc: Added.
        * woff2/src/woff2_enc.h: Added.
        (woff2::WOFF2Params::WOFF2Params):
        * woff2/update.sh: Added. This script helps to get the latest upstream version.

2016-01-09  Dan Bernstein  <mitz@apple.com>

        [Cocoa] Allow overriding the frameworks directory independently of using a staging install path
        https://bugs.webkit.org/show_bug.cgi?id=152926

        Reviewed by Tim Horton.

        Introduce a new build setting, WK_OVERRIDE_FRAMEWORKS_DIR. When not empty, it determines
        where the frameworks are installed. Setting USE_STAGING_INSTALL_PATH to YES sets
        WK_OVERRIDE_FRAMEWORKS_DIR to $(SYSTEM_LIBRARY_DIR)/StagedFrameworks/Safari.

        Account for the possibility of WK_OVERRIDE_FRAMEWORKS_DIR containing spaces.

        * gtest/xcode/Config/General.xcconfig:
          Add quotes to account for spaces.
        * gtest/xcode/Config/ProductionProject.xcconfig:
        - Replace STAGED_FRAMEWORKS_SEARCH_PATH in FRAMEWORK_SEARCH_PATHS with
          WK_OVERRIDE_FRAMEWORKS_DIR and add quotes to account for spaces.
        - Define WEBCORE_FRAMEWORKS_DIR based on WK_OVERRIDE_FRAMEWORKS_DIR.

2016-01-04  Alexey Proskuryakov  <ap@apple.com>

        gtest should use the same SDK as other projects
        https://bugs.webkit.org/show_bug.cgi?id=152718
        rdar://problem/23566856

        Reviewed by Alex Christensen.

        gtest configuration attempted to use USE_INTERNAL_SDK without ever defining it.

        * gtest/xcode/Config/DebugProject.xcconfig:
        * gtest/xcode/Config/General.xcconfig:
        * gtest/xcode/Config/ReleaseProject.xcconfig:

2016-01-02  Ting-Wei Lan  <lantw44@gmail.com>

        Remove usage of environ in gtest
        https://bugs.webkit.org/show_bug.cgi?id=138420

        Reviewed by Michael Catanzaro.

        FreeBSD libc.so.7 does not contain an environ symbol, which causes
        undefined reference problem when using -Wl,--no-undefined. As gtest
        only uses environ as an argument to call execve, we can simply remove
        its usage by replacing execve with execv.

        * gtest/src/gtest-death-test.cc:

2015-12-01  Dana Burkart  <dburkart@apple.com>

        Remove Mountain Lion support from gtest
        https://bugs.webkit.org/show_bug.cgi?id=151705

        Reviewed by Darin Adler.

        * gtest/xcode/Config/General.xcconfig:

2015-11-02  Andy Estes  <aestes@apple.com>

        [Cocoa] Add tvOS and watchOS to SUPPORTED_PLATFORMS
        https://bugs.webkit.org/show_bug.cgi?id=150819

        Reviewed by Dan Bernstein.

        This tells Xcode to include these platforms in its Devices dropdown, making it possible to build in the IDE.

        * gtest/xcode/Config/General.xcconfig:

2015-08-20  Alex Christensen  <achristensen@webkit.org>

        Clean up CMake build after r188673
        https://bugs.webkit.org/show_bug.cgi?id=148234

        Reviewed by Tim Horton.

        * gtest/CMakeLists.txt:
        gtest needs to be a static library on Windows to not crash.

2015-08-11  Brent Fulgham  <bfulgham@apple.com>

        [Win] Switch Windows build to Visual Studio 2015
        https://bugs.webkit.org/show_bug.cgi?id=147887
        <rdar://problem/22235098>

        Reviewed by Alex Christensen.

        Update Visual Studio project file settings to use the current Visual
        Studio and compiler. Continue targeting binaries to run on our minimum
        supported configuration of Windows 7.

        * gtest/msvc/gtest-md.vcxproj:

2015-08-10  Alex Christensen  <achristensen@webkit.org>

        [Win] Unreviewed build fix after r188239.

        * gtest/CMakeLists.txt:
        VS2015 requires __STDC_LIMIT_MACROS to be defined for INTMAX_MAX to be defined.

2015-08-10  Alex Christensen  <achristensen@webkit.org>

        Build TestWebKitAPI with CMake on Windows
        https://bugs.webkit.org/show_bug.cgi?id=147851

        Reviewed by Chris Dumez.

        * gtest/CMakeLists.txt:
        Include DerivedSources to find WTF/WTFHeaderDetection.h.

2015-05-26  Dan Bernstein  <mitz@apple.com>

        <rdar://problem/21104551> Update build settings

        Reviewed by Anders Carlsson.

        * gtest/xcode/Config/General.xcconfig:

2015-05-11  Brent Fulgham  <bfulgham@apple.com>

        [Win] Move Windows build target to Windows 7 (or newer)
        https://bugs.webkit.org/show_bug.cgi?id=144890
        <rdar://problem/20707307>

        Reviewed by Anders Carlsson.

        Update linked SDK and minimal Windows level to be compatible with
        Windows 7 or newer.

        * gtest/msvc/gtest-md.vcxproj:

2015-05-07  Dan Bernstein  <mitz@apple.com>

        <rdar://problem/19317140> [Xcode] Remove usage of AspenFamily.xcconfig in Source/
        https://bugs.webkit.org/show_bug.cgi?id=144727

        Reviewed by Darin Adler.

        * gtest/xcode/Config/General.xcconfig: Don’t include AspenFamily.xcconfig.

2015-04-01  Gyuyoung Kim  <gyuyoung.kim@webkit.org>

        [CMake] Make gtest/CMakeLists.txt more readable
        https://bugs.webkit.org/show_bug.cgi?id=143295

        Reviewed by Csaba Osztrogonác.

        gtest/CMakeLists.txt has used add_library() and include_directory() directly.
        This patch adds GTEST_INCLUDE_DIRECTORIES and GTEST_SOURCES, and use it.

        * gtest/CMakeLists.txt:

2015-03-29  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        [CMake] Update old CMakeList.txt in gtest
        https://bugs.webkit.org/show_bug.cgi?id=143192

        Reviewed by Darin Adler.

        CMake ports have used cmake/gtest/CMakeLists.txt instead of ThirdParty/test/CMakeLists.txt
        in order to build gtest. However it looks ThirdParty/test/CMakeLists.txt won't be used anymore.
        So this patch moves cmake/gtest/CMakeLists.txt to ThirdPart/test/CMakeLists.txt, and use it.

        * gtest/CMakeLists.txt:

2014-12-26  Dan Bernstein  <mitz@apple.com>

        <rdar://problem/19348208> REGRESSION (r177027): iOS builds use the wrong toolchain
        https://bugs.webkit.org/show_bug.cgi?id=139950

        Reviewed by David Kilzer.

        * gtest/xcode/Config/General.xcconfig: Only define TOOLCHAINS when building for OS X, doing so
        in a manner that works with Xcode 5.1.1.

2014-12-09  David Kilzer  <ddkilzer@apple.com>

        Switch from using PLATFORM_NAME to SDK selectors in ANGLE, bmalloc, gtest, JavaScriptCore, WTF
        <http://webkit.org/b/139212>

        Reviewed by Joseph Pecoraro.

        * gtest/xcode/Config/General.xcconfig:
        - Only set SDKROOT and TOOLCHAINS on OS X.

2014-10-30  Dana Burkart  <dburkart@apple.com>

        <rdar://problem/18821260> Prepare for the mysterious future

        Reviewed by Lucas Forschler.

        * gtest/xcode/Config/General.xcconfig:

2014-09-18  Brent Fulgham  <bfulgham@apple.com>

        [Win] Unreviewed build fix.

        * gtest/msvc/gtest-md.vcxproj: Make sure we use static linking for gtest on
        normal debug build to match the rest of WebKit.

2014-09-09  Benjamin Poulain  <bpoulain@apple.com>

        Disable the "unreachable-code" warning
        https://bugs.webkit.org/show_bug.cgi?id=136677

        Reviewed by Darin Adler.

        * gtest/xcode/Config/General.xcconfig:

2014-09-06  Darin Adler  <darin@apple.com>

        Make updates suggested by new version of Xcode
        https://bugs.webkit.org/show_bug.cgi?id=136603

        Reviewed by Mark Rowe.

        * gtest/xcode/Config/General.xcconfig: Moved CLANG_WARN_BOOL_CONVERSION,
        CLANG_WARN_ENUM_CONVERSION, CLANG_WARN_INT_CONVERSION, and COMBINE_HIDPI_IMAGES
        here from project file.  Added CLANG_WARN_UNREACHABLE_CODE, ENABLE_STRICT_OBJC_MSGSEND,
        and GCC_WARN_64_TO_32_BIT_CONVERSION as suggested by Xcode upgrade check.

        * gtest/xcode/gtest.xcodeproj/project.pbxproj: Updated LastUpgradeCheck and removed
        things that are redundant with the xcconfig file above.

2014-08-22  Renato Nagy  <nagy.renato@stud.u-szeged.hu>

        Remove LevelDB.
        https://bugs.webkit.org/show_bug.cgi?id=136170

        Reviewed by Gyuyoung Kim.

        * leveldb/AUTHORS: Removed.
        * leveldb/LICENSE: Removed.
        * leveldb/Makefile: Removed.
        * leveldb/NEWS: Removed.
        * leveldb/README: Removed.
        * leveldb/TODO: Removed.
        * leveldb/build_detect_platform: Removed.
        * leveldb/db/builder.cc: Removed.
        * leveldb/db/builder.h: Removed.
        * leveldb/db/c.cc: Removed.
        * leveldb/db/c_test.c: Removed.
        * leveldb/db/corruption_test.cc: Removed.
        * leveldb/db/db_bench.cc: Removed.
        * leveldb/db/db_impl.cc: Removed.
        * leveldb/db/db_impl.h: Removed.
        * leveldb/db/db_iter.cc: Removed.
        * leveldb/db/db_iter.h: Removed.
        * leveldb/db/db_test.cc: Removed.
        * leveldb/db/dbformat.cc: Removed.
        * leveldb/db/dbformat.h: Removed.
        * leveldb/db/dbformat_test.cc: Removed.
        * leveldb/db/filename.cc: Removed.
        * leveldb/db/filename.h: Removed.
        * leveldb/db/filename_test.cc: Removed.
        * leveldb/db/leveldb_main.cc: Removed.
        * leveldb/db/log_format.h: Removed.
        * leveldb/db/log_reader.cc: Removed.
        * leveldb/db/log_reader.h: Removed.
        * leveldb/db/log_test.cc: Removed.
        * leveldb/db/log_writer.cc: Removed.
        * leveldb/db/log_writer.h: Removed.
        * leveldb/db/memtable.cc: Removed.
        * leveldb/db/memtable.h: Removed.
        * leveldb/db/repair.cc: Removed.
        * leveldb/db/skiplist.h: Removed.
        * leveldb/db/skiplist_test.cc: Removed.
        * leveldb/db/snapshot.h: Removed.
        * leveldb/db/table_cache.cc: Removed.
        * leveldb/db/table_cache.h: Removed.
        * leveldb/db/version_edit.cc: Removed.
        * leveldb/db/version_edit.h: Removed.
        * leveldb/db/version_edit_test.cc: Removed.
        * leveldb/db/version_set.cc: Removed.
        * leveldb/db/version_set.h: Removed.
        * leveldb/db/version_set_test.cc: Removed.
        * leveldb/db/write_batch.cc: Removed.
        * leveldb/db/write_batch_internal.h: Removed.
        * leveldb/db/write_batch_test.cc: Removed.
        * leveldb/doc/bench/db_bench_sqlite3.cc: Removed.
        * leveldb/doc/bench/db_bench_tree_db.cc: Removed.
        * leveldb/doc/benchmark.html: Removed.
        * leveldb/doc/doc.css: Removed.
        * leveldb/doc/impl.html: Removed.
        * leveldb/doc/index.html: Removed.
        * leveldb/doc/log_format.txt: Removed.
        * leveldb/doc/table_format.txt: Removed.
        * leveldb/helpers/memenv/memenv.cc: Removed.
        * leveldb/helpers/memenv/memenv.h: Removed.
        * leveldb/helpers/memenv/memenv_test.cc: Removed.
        * leveldb/include/leveldb/c.h: Removed.
        * leveldb/include/leveldb/cache.h: Removed.
        * leveldb/include/leveldb/comparator.h: Removed.
        * leveldb/include/leveldb/db.h: Removed.
        * leveldb/include/leveldb/env.h: Removed.
        * leveldb/include/leveldb/filter_policy.h: Removed.
        * leveldb/include/leveldb/iterator.h: Removed.
        * leveldb/include/leveldb/options.h: Removed.
        * leveldb/include/leveldb/slice.h: Removed.
        * leveldb/include/leveldb/status.h: Removed.
        * leveldb/include/leveldb/table.h: Removed.
        * leveldb/include/leveldb/table_builder.h: Removed.
        * leveldb/include/leveldb/write_batch.h: Removed.
        * leveldb/port/README: Removed.
        * leveldb/port/atomic_pointer.h: Removed.
        * leveldb/port/port.h: Removed.
        * leveldb/port/port_example.h: Removed.
        * leveldb/port/port_posix.cc: Removed.
        * leveldb/port/port_posix.h: Removed.
        * leveldb/port/thread_annotations.h: Removed.
        * leveldb/port/win/stdint.h: Removed.
        * leveldb/table/block.cc: Removed.
        * leveldb/table/block.h: Removed.
        * leveldb/table/block_builder.cc: Removed.
        * leveldb/table/block_builder.h: Removed.
        * leveldb/table/filter_block.cc: Removed.
        * leveldb/table/filter_block.h: Removed.
        * leveldb/table/filter_block_test.cc: Removed.
        * leveldb/table/format.cc: Removed.
        * leveldb/table/format.h: Removed.
        * leveldb/table/iterator.cc: Removed.
        * leveldb/table/iterator_wrapper.h: Removed.
        * leveldb/table/merger.cc: Removed.
        * leveldb/table/merger.h: Removed.
        * leveldb/table/table.cc: Removed.
        * leveldb/table/table_builder.cc: Removed.
        * leveldb/table/table_test.cc: Removed.
        * leveldb/table/two_level_iterator.cc: Removed.
        * leveldb/table/two_level_iterator.h: Removed.
        * leveldb/util/arena.cc: Removed.
        * leveldb/util/arena.h: Removed.
        * leveldb/util/arena_test.cc: Removed.
        * leveldb/util/bloom.cc: Removed.
        * leveldb/util/bloom_test.cc: Removed.
        * leveldb/util/cache.cc: Removed.
        * leveldb/util/cache_test.cc: Removed.
        * leveldb/util/coding.cc: Removed.
        * leveldb/util/coding.h: Removed.
        * leveldb/util/coding_test.cc: Removed.
        * leveldb/util/comparator.cc: Removed.
        * leveldb/util/crc32c.cc: Removed.
        * leveldb/util/crc32c.h: Removed.
        * leveldb/util/crc32c_test.cc: Removed.
        * leveldb/util/env.cc: Removed.
        * leveldb/util/env_posix.cc: Removed.
        * leveldb/util/env_test.cc: Removed.
        * leveldb/util/filter_policy.cc: Removed.
        * leveldb/util/hash.cc: Removed.
        * leveldb/util/hash.h: Removed.
        * leveldb/util/histogram.cc: Removed.
        * leveldb/util/histogram.h: Removed.
        * leveldb/util/logging.cc: Removed.
        * leveldb/util/logging.h: Removed.
        * leveldb/util/mutexlock.h: Removed.
        * leveldb/util/options.cc: Removed.
        * leveldb/util/posix_logger.h: Removed.
        * leveldb/util/random.h: Removed.
        * leveldb/util/status.cc: Removed.
        * leveldb/util/testharness.cc: Removed.
        * leveldb/util/testharness.h: Removed.
        * leveldb/util/testutil.cc: Removed.
        * leveldb/util/testutil.h: Removed.

2014-08-11  Andy Estes  <aestes@apple.com>

        [iOS] Get rid of iOS.xcconfig
        https://bugs.webkit.org/show_bug.cgi?id=135809

        Reviewed by Joseph Pecoraro.

        All iOS.xcconfig did was include AspenFamily.xcconfig, so there's no need for the indirection.

        * gtest/xcode/Config/General.xcconfig:
        * gtest/xcode/Config/iOS.xcconfig: Removed.
        * gtest/xcode/gtest.xcodeproj/project.pbxproj:

2014-03-25  Martin Robinson  <mrobinson@igalia.com>

        [GTK] Remove the autotools build
        https://bugs.webkit.org/show_bug.cgi?id=130717

        Reviewed by Anders Carlsson.

        * gtest/GNUmakefile.am: Removed.
        * leveldb/GNUmakefile.am: Removed.

2014-03-25  Gabor Rapcsanyi  <rgabor@webkit.org>

        [EFL] Add ARM64 build support
        https://bugs.webkit.org/show_bug.cgi?id=130506

        Rubber stamped by Gyuyoung Kim.

        * leveldb/port/atomic_pointer.h: Set ARCH_CPU_ARM_FAMILY when __aarch64__ is defined.

2014-03-14  Landry Breuil  <landry@openbsd.org>

        Fix leveldb build on OpenBSD/NetBSD by using the FreeBSD codepaths.
        https://bugs.webkit.org/show_bug.cgi?id=129966

        Reviewed by Andreas Kling.

        * leveldb/GNUmakefile.am:
        * leveldb/port/port_posix.h:

2014-01-12  Andy Estes  <aestes@apple.com>

        Fix the Mac build after r161777.

        * gtest/xcode/Config/General.xcconfig: AspenFamily.xcconfig excludes
        macosx from SUPPORTED_PLATFORMS, so add it back in ourselves.

2014-01-11  David Kilzer  <ddkilzer@apple.com>

        [iOS] Upstream gtest
        <http://webkit.org/b/126811>

        Reviewed by Mark Rowe.

        * gtest/xcode/Config/General.xcconfig: Include iOS.xcconfig.
        * gtest/xcode/Config/iOS.xcconfig: Added.
        * gtest/xcode/gtest.xcodeproj/project.pbxproj: Add iOS.xcconfig.
        Sort.

2013-12-13  Brent Fulgham  <bfulgham@apple.com>

        [Win] Switch WebKit solution to Visual Studio 2013
        https://bugs.webkit.org/show_bug.cgi?id=125192

        Reviewed by Anders Carlsson.

        * gtest/msvc/gtest-md.vcxproj: Update for VS2013

2013-11-15  Roger Fong  <roger_fong@apple.com>

        Unreviewed, gtest project file cleanup.

        * gtest/msvc/gtest-md.vcxproj:

2013-10-24  Mark Rowe  <mrowe@apple.com>

        Remove references to OS X 10.7 from Xcode configuration settings.

        Now that we're not building for OS X 10.7 they're no longer needed.

        Reviewed by Anders Carlsson.

        * gtest/xcode/Config/General.xcconfig:

2013-10-24  Mark Rowe  <mrowe@apple.com>

        <rdar://problem/15312643> Prepare for the mysterious future.

        Reviewed by David Kilzer.

        * gtest/xcode/Config/General.xcconfig:

2013-10-10  Mark Rowe  <mrowe@apple.com>

        <rdar://problem/13341666> WebKit should always build against an SDK.

        Have all projects default to building against the OS X Internal SDK for the Production
        configuration. For the Debug and Release configurations, look for UseInternalSDK.xcconfig
        to determine whether the OS X Internal SDK should be used. If not, use the normal OS X SDK.

        Reviewed by Dan Bernstein.

        * gtest/xcode/Config/General.xcconfig:
        * gtest/xcode/Config/ProductionProject.xcconfig:

2013-10-06  Dan Bernstein  <mitz@apple.com>

        Build against the Xcode default toolchain when targeting OS X 10.8.

        This fixes the build after r156632 in configurations that use another toolchain
        by default.

        * gtest/xcode/Config/General.xcconfig:

2013-10-06  Darin Adler  <darin@apple.com>

        Remove unneeded ScriptGCEvent class
        https://bugs.webkit.org/show_bug.cgi?id=122390

        Reviewed by Anders Carlsson.

        * gtest/xcode/gtest.xcodeproj/project.pbxproj: Let Xcode update this file.
        Not really part of this bug fix, but good to land anyway.

2013-09-29  Darin Adler  <darin@apple.com>

        Take some Xcode advice about turning on additional warnings in ANGLE and gtest
        https://bugs.webkit.org/show_bug.cgi?id=122087

        Reviewed by Mark Rowe.

        * gtest/xcode/Config/General.xcconfig: Added some warnings that Xcode 5 suggested.

2013-09-06  Alberto Garcia  <berto@igalia.com>

        GTest: add support for FreeBSD and Hurd
        https://bugs.webkit.org/show_bug.cgi?id=120870

        Patch by Emilio Pozuelo Monfort <pochu@debian.org>
        Reviewed by Gustavo Noronha Silva.

        * gtest/include/gtest/internal/gtest-port.h:

2013-09-05  Anders Carlsson  <andersca@apple.com>

        Enable C++11 wherever we build C++ files that include wtf/Platform.h
        https://bugs.webkit.org/show_bug.cgi?id=120782

        Reviewed by Andreas Kling.

        Set CLANG_CXX_LANGUAGE_STANDARD to gnu++0x.

        * gtest/xcode/Config/General.xcconfig:

2013-08-20  Alex Christensen  <achristensen@apple.com>

        Use PlatformArchitecture to distinguish between 32-bit and 64-bit builds on Windows.
        https://bugs.webkit.org/show_bug.cgi?id=119512

        Reviewed by Brent Fulgham.

        * gtest/msvc/gtest-md.vcxproj:
        Replaced obj32, bin32, and lib32 with macros for 64-bit build.

2013-07-23  David Farler  <dfarler@apple.com>

        Provide optional OTHER_CFLAGS, OTHER_CPPFLAGS, OTHER_LDFLAGS additions for building with ASAN
        https://bugs.webkit.org/show_bug.cgi?id=117762

        Reviewed by Mark Rowe.

        * gtest/xcode/Config/General.xcconfig:
        Add ASAN_OTHER_CFLAGS, CPLUSPLUSFLAGS, LDFLAGS.
        * gtest/xcode/Config/StaticLibraryTarget.xcconfig:
        Add ASAN_OTHER_CFLAGS, CPLUSPLUSFLAGS.

2013-07-27  Mark Rowe  <mrowe@apple.com>

        Fix builds against an SDK.

        * gtest/xcode/Config/FrameworkTarget.xcconfig: Ensure that gtest.framework is installed
        in a location compatible with the SDK generation process.

2013-07-19  Alex Christensen  <achristensen@apple.com>

        Added x64 configuration to Visual Studio build.
        https://bugs.webkit.org/show_bug.cgi?id=118888

        Reviewed by Brent Fulgham.

        * gtest/msvc/gtest-md.vcxproj:

2013-07-18  Roger Fong  <roger_fong@apple.com>

        Make sure to link against _debug binaries when appropriate.
        <rdar://problem/14473010>.

        * gtest/msvc/gtest-md.vcxproj:

2013-06-17  Darin Adler  <darin@apple.com>

        Sort all the Xcode project files
        https://bugs.webkit.org/show_bug.cgi?id=117696

        Reviewed by Anders Carlsson.

        * gtest/xcode/Samples/FrameworkSample/WidgetFramework.xcodeproj/project.pbxproj: Ran the sort-Xcode-project-file script.
        * gtest/xcode/gtest.xcodeproj/project.pbxproj: Ran the sort-Xcode-project-file script.

2013-06-18  Roger Fong  <roger_fong@apple.com>

        Replace tools32 folder with tools and update WebKit Windows solution accordingly.
        <rdar://problem/14118143>.

        Rubberstamped by Brent Fulgham.

        * gtest/msvc/gtest-md.vcxproj:

2013-06-03  Roger Fong  <roger_fong@apple.com>

        Nuke VS2005 files from the tree.
        <rdar://problem/14042021>.

        Rubberstamped by Brent Fulgham.

        * gtest/msvc/gtest-md.sln: Removed.
        * gtest/msvc/gtest-md.vcproj: Removed.
        * gtest/msvc/gtest.sln: Removed.
        * gtest/msvc/gtest.vcproj: Removed.
        * gtest/msvc/gtest_main-md.vcproj: Removed.
        * gtest/msvc/gtest_main.vcproj: Removed.
        * gtest/msvc/gtest_prod_test-md.vcproj: Removed.
        * gtest/msvc/gtest_prod_test.vcproj: Removed.
        * gtest/msvc/gtest_unittest-md.vcproj: Removed.
        * gtest/msvc/gtest_unittest.vcproj: Removed.

2013-04-26  Roger Fong  <roger_fong@apple.com>

        Make Apple Windows VS2010 build results into and get dependencies from __32 suffixed folders.
        Make the DebugSuffix configuration use _debug dependencies.

        * gtest/msvc/gtest-md.vcxproj:

2013-04-09  Benjamin Poulain  <bpoulain@apple.com>

        Remove the WebKit copy of GLU and the file using it
        https://bugs.webkit.org/show_bug.cgi?id=114249

        Reviewed by Darin Adler.

        * glu/.gitignore: Removed.
        * glu/LICENSE.txt: Removed.
        * glu/README.webkit: Removed.
        * glu/glu.gyp: Removed.
        * glu/gluos.h: Removed.
        * glu/internal_glu.h: Removed.
        * glu/libtess/GNUmakefile: Removed.
        * glu/libtess/Imakefile: Removed.
        * glu/libtess/README: Removed.
        * glu/libtess/alg-outline: Removed.
        * glu/libtess/dict-list.h: Removed.
        * glu/libtess/dict.c: Removed.
        * glu/libtess/dict.h: Removed.
        * glu/libtess/geom.c: Removed.
        * glu/libtess/geom.h: Removed.
        * glu/libtess/memalloc.c: Removed.
        * glu/libtess/memalloc.h: Removed.
        * glu/libtess/mesh.c: Removed.
        * glu/libtess/mesh.h: Removed.
        * glu/libtess/normal.c: Removed.
        * glu/libtess/normal.h: Removed.
        * glu/libtess/priorityq-heap.c: Removed.
        * glu/libtess/priorityq-heap.h: Removed.
        * glu/libtess/priorityq-sort.h: Removed.
        * glu/libtess/priorityq.c: Removed.
        * glu/libtess/priorityq.h: Removed.
        * glu/libtess/render.c: Removed.
        * glu/libtess/render.h: Removed.
        * glu/libtess/sweep.c: Removed.
        * glu/libtess/sweep.h: Removed.
        * glu/libtess/tess.c: Removed.
        * glu/libtess/tess.h: Removed.
        * glu/libtess/tessmono.c: Removed.
        * glu/libtess/tessmono.h: Removed.

2013-04-08  Benjamin Poulain  <benjamin@webkit.org>

        Remove gyp from ThirdParty
        https://bugs.webkit.org/show_bug.cgi?id=114244

        Rubberstamped by Ryosuke Niwa.

        * gyp: Removed.

2013-04-05  Geoffrey Garen  <ggaren@apple.com>

        Made USE(JSC) unconditional
        https://bugs.webkit.org/show_bug.cgi?id=114058

        Reviewed by Anders Carlsson.

        * gtest/include/gtest/internal/gtest-port.h:

2013-03-29  Martin Robinson  <mrobinson@igalia.com>

        Update the version of gyp in the repository
        https://bugs.webkit.org/show_bug.cgi?id=113540

        Reviewed by Nico Weber.

        * gyp: Update gyp to r1605.

2013-03-21  Zan Dobersek  <zdobersek@igalia.com>

        [GTK] Move libLevelDB.la setup into a separate GNUmakefile.am
        https://bugs.webkit.org/show_bug.cgi?id=112947

        Reviewed by Martin Robinson.

        * leveldb/GNUmakefile.am: Added, sets up the libLevelDB.la library.

2013-03-20  Brent Fulgham  <bfulgham@webkit.org>

        [WinCairo] Build WinCairo port under VS2010.
        https://bugs.webkit.org/show_bug.cgi?id=112861

        Reviewed by Tim Horton.

        * gtest/msvc/gtest-md.vcxproj: Add WinCairo targets.

2013-03-07  Andrew Bortz  <andrew@abortz.net>

        Replace Mersenne Twister RNG with a simple but fast RNG
        https://bugs.webkit.org/show_bug.cgi?id=111533

        Reviewed by Adam Barth.

        This code is no longer used.

        * mt19937ar.c: Removed.

2013-02-20  Roger Fong  <roger_fong@apple.com>

       Get VS2010 Solution B&I ready.
        <rdar://problem/1322988>

        Rubberstamped by Timothy Horton.
        
        Add Production configuration. 

        * gtest/msvc/gtest-md.vcxproj:

2013-02-14  Tony Chang  <tony@chromium.org>

        Unreviewed, set svn:eol-style native for .sln, .vcproj, and .vsprops files.
        https://bugs.webkit.org/show_bug.cgi?id=96934

        * gtest/msvc/gtest-md.sln: Modified property svn:eol-style.
        * gtest/msvc/gtest.sln: Modified property svn:eol-style.

2013-02-14  Tony Chang  <tony@chromium.org>

        Unreviewed, set svn:eol-style CRLF for .sln files.

        * gtest/msvc/gtest-md.sln: Added property svn:eol-style.
        * gtest/msvc/gtest.sln: Added property svn:eol-style.

2013-02-14  Roger Fong  <roger_fong@apple.com>

        Add gtest-md VS2010 project files.
        https://bugs.webkit.org/show_bug.cgi?id=107034.

        Reviewed by Brent Fulgham.

        * gtest/msvc/gtest-md.sln: Added property svn:eol-style.
        * gtest/msvc/gtest.sln: Added property svn:eol-style.

2013-02-05  Simon Hausmann  <simon.hausmann@digia.com>

        [Qt] Compile WTF tests of TestWebKitAPI
        https://bugs.webkit.org/show_bug.cgi?id=108935

        Reviewed by Kenneth Rohde Christiansen.

        Add qmake build system .pro file for building gtest as static library.

        * gtest/gtest.pro: Added.

2013-02-05  Paweł Forysiuk  <tuxator@o2.pl>

        Building with MinGW compiler dies with gtest errors
        https://bugs.webkit.org/show_bug.cgi?id=108470

        Reviewed by Martin Robinson.

        Variable Libraries_libgtest_la_CXXFLAGS blindly assumes that
        pthreads will always be enabled. Make using pthreads for gtest
        conditional on the build target.

        * gtest/GNUmakefile.am: Set Libraries_libgtest_la_CXXFLAGS accordingly to the build target.

2013-01-23  Tony Chang  <tony@chromium.org>

        Unreviewed, set svn:eol-style to CRLF on Windows .sln files.

        * gtest/msvc/gtest-md.sln: Added property svn:eol-style.
        * gtest/msvc/gtest.sln: Added property svn:eol-style.

2013-01-17  Martin Robinson  <mrobinson@igalia.com>

        [GTK] Build with LevelDB when IndexedDB is enabled
        https://bugs.webkit.org/show_bug.cgi?id=103220

        Reviewed by Gustavo Noronha Silva.

        Add the leveldb 1.9.0 source code to the ThirdParty dependencies.
        We cannot depend on leveldb provided by the distribution, because
        it sometimes breaks API compatibility.

        * leveldb: Imported from the 1.9.0 leveldb source tarball.

2013-01-09  David Farler  <dfarler@apple.com>

        Change ARCHS to generic setting to work with multiple platforms.
        https://bugs.webkit.org/show_bug.cgi?id=106478

        Reviewed by Anders Carlsson.

        * gtest/xcode/Config/General.xcconfig: ARCHS = $(ARCHS_STANDARD_32_64_BIT);

2012-10-28  Mark Rowe  <mrowe@apple.com>

        Simplify Xcode configuration settings that used to vary between OS versions.

        Reviewed by Dan Bernstein.

        * gtest/xcode/Config/General.xcconfig:

2012-10-28  Mark Rowe  <mrowe@apple.com>

        Remove references to unsupported OS and Xcode versions.

        Reviewed by Anders Carlsson.

        * gtest/xcode/Config/CompilerVersion.xcconfig: Removed.
        * gtest/xcode/Config/General.xcconfig:

2012-10-27  Dan Bernstein  <mitz@apple.com>

        REAL_PLATFORM_NAME build setting is no longer needed
        https://bugs.webkit.org/show_bug.cgi?id=100587

        Reviewed by Mark Rowe.

        Removed the definition of REAL_PLATFORM_NAME and replaced references to it with references
        to PLATFORM_NAME.

        * gtest/xcode/Config/CompilerVersion.xcconfig:
        * gtest/xcode/Config/General.xcconfig:

2012-08-23  Mark Rowe  <mrowe@apple.com>

        Make gtest build with the latest version of clang.

        Reviewed by Dan Bernstein.

        * gtest/src/gtest-internal-inl.h:
        (GTestFlagSaver): Remove an unused member.

2012-07-03  Tony Chang  <tony@chromium.org>

        [chromium] Unreviewed, update .gitignore to handle VS2010 files.

        * glu/.gitignore:

2012-06-27  Ryosuke Niwa  <rniwa@webkit.org>

        Fix gcc build after r121302
        https://bugs.webkit.org/show_bug.cgi?id=90055

        Reviewed by Mark Rowe.

        Assume RTTI is disabled so that gtest builds under XCode 3.2.6.

        * gtest/xcode/Config/General.xcconfig:

2012-04-30  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed. Fix make distcheck.

        * gtest/GNUmakefile.am: Add source code files included by
        gtest_all.cc to EXTRA_DIST.

2012-04-26  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Build and run TestWebKitAPI WebKit2 unit tests
        https://bugs.webkit.org/show_bug.cgi?id=84446

        Reviewed by Philippe Normand.

        * gtest/GNUmakefile.am: Do not build libgtestmain anymmore since
        all tests use now a custom main to make sure WTF threads are
        initialized.

2012-04-24  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Build and run TestWebKitAPI unit tests
        https://bugs.webkit.org/show_bug.cgi?id=84325

        Reviewed by Philippe Normand.

        * gtest/GNUmakefile.am: Added.

2012-03-30  David Barr  <davidbarr@chromium.org>

        Split up top-level .gitignore and .gitattributes
        https://bugs.webkit.org/show_bug.cgi?id=82687

        Reviewed by Tor Arne Vestbø.

        * glu/.gitignore: Added.

2012-03-09  Ashod Nakashian  <ashodnakashian@yahoo.com>

        Bash scripts should support LF endings only
        https://bugs.webkit.org/show_bug.cgi?id=79509

        Reviewed by David Kilzer.

        * gtest/xcode/Samples/FrameworkSample/runtests.sh: Added property svn:executable.
        * gtest/xcode/Scripts/runtests.sh: Added property svn:executable.

2012-03-08  Jessie Berlin  <jberlin@apple.com>

        More Windows build fixing.

        * gtest/msvc/gtest-md.vcproj:

2012-03-07  Jessie Berlin  <jberlin@apple.com>

        Clean Windows build fails after r110033
        https://bugs.webkit.org/show_bug.cgi?id=80553

        Rubber-stamped by Jon Honeycutt and Eric Seidel.

        * gtest/msvc/gtest-md.vcproj:
        Add the new JavaScriptCore include directory to the include path.

2012-02-21  Sam Weinig  <sam@webkit.org>

        Attempt to fix the Snow Leopard build.

        * gtest/xcode/Config/General.xcconfig:

2012-02-21  Sam Weinig  <sam@webkit.org>

        Use libc++ when building with Clang on Mac
        https://bugs.webkit.org/show_bug.cgi?id=78981

        Reviewed by Dan Bernstein.

        * gtest/xcode/Config/General.xcconfig:
        In addition to enabling libc++ when building with Clang,
        disable gtest's use of tr1::tuple, which doesn't exist in
        libc++.

2012-01-25  Mark Rowe  <mrowe@apple.com>

        Build in to an alternate location when USE_STAGING_INSTALL_PATH is set.

        <rdar://problem/10609417> Adopt USE_STAGING_INSTALL_PATH

        Reviewed by David Kilzer.

        * gtest/xcode/Config/ProductionProject.xcconfig: Ensure that the staged frameworks path
        is in the framework search path when USE_STAGING_INSTALL_PATH is set. Look for the WebCore
        framework in the staged frameworks directory when USE_STAGING_INSTALL_PATH is set.

2012-01-06  Anders Carlsson  <andersca@apple.com>

        Make JavaScriptCore.framework a reference and put it in a Frameworks group
        https://bugs.webkit.org/show_bug.cgi?id=75740

        Reviewed by Mark Rowe.

        * gtest/xcode/gtest.xcodeproj/project.pbxproj:

2012-01-05  Dan Bernstein  <mitz@apple.com>

        Made Debug/Release builds of gtest build only for the active architecture.

        Reviewed by Dave Kilzer.

        * gtest/xcode/Config/DebugProject.xcconfig:
        * gtest/xcode/Config/ProductionProject.xcconfig:
        * gtest/xcode/Config/ReleaseProject.xcconfig:

2012-01-04  David Kilzer  <ddkilzer@apple.com>

        Remove HEADER_SEARCH_PATHS from Production configurations for gtest

        Reviewed by Mark Rowe.

        * gtest/xcode/gtest.xcodeproj/project.pbxproj: Remove
        HEADER_SEARCH_PATHS from Production configurations to match
        changes made for Debug and Release configurations in r104091.

2012-01-04  David Kilzer  <ddkilzer@apple.com>

        TestWebKitAPI has issues due to FastMalloc incompatibility
        <http://webkit.org/b/66521>
        <rdar://problem/10607911>

        Reviewed by David Levin.

        Original patch by Dmitry Lomov <dslomov@google.com>.

        This patch ensures that gtest uses the FastMalloc new and delete
        operators that are defined in JavaScriptCore.

        * gtest/README.WebKit: Update with project changes.
        * gtest/include/gtest/internal/gtest-port.h: Import necessary
        headers to use FastMalloc in gtest.
        * gtest/msvc/gtest-md.vcproj: Add include directories to find
        WTF headers.
        * gtest/xcode/Config/DebugProject.xcconfig: Define
        WEBCORE_PRIVATE_HEADERS_DIR for Debug builds.
        * gtest/xcode/Config/General.xcconfig: Define
        HEADER_SEARCH_PATHS in terms of WEBCORE_PRIVATE_HEADERS_DIR.
        * gtest/xcode/Config/ProductionProject.xcconfig: Define
        WEBCORE_PRIVATE_HEADERS_DIR for Production builds.  This
        overrides the value in ReleaseProject.xcconfig.
        * gtest/xcode/Config/ReleaseProject.xcconfig: Define
        WEBCORE_PRIVATE_HEADERS_DIR for Release builds.
        * gtest/xcode/gtest.xcodeproj/project.pbxproj:
        - Remove local HEADER_SEARCH_PATHS definitions.
        - Link to JavaScriptCore.framework when building
          gtest.framework.

2012-01-03  David Kilzer  <ddkilzer@apple.com>

        Add Production configuration to gtest Xcode project
        <http://webkit.org/b/75153>

        Reviewed by Adam Roben.

        * gtest/README.WebKit: Updated.
        * gtest/xcode/Config/ProductionProject.xcconfig: Added.
        * gtest/xcode/gtest.xcodeproj/project.pbxproj:
        - Added Production configuration based on Release configuration.
        - Made Production the default configuration.

2011-12-25  Darin Adler  <darin@apple.com>

        * gtest/xcode/gtest.xcodeproj: Added property svn:ignore.

2011-11-11  Csaba Osztrogonác  <ossy@webkit.org>

        100,000 !!!

        Reviewed by Zoltan Herczeg.

        * ChangeLog: Point out revision 100,000.

2011-08-25  Alexey Proskuryakov  <ap@apple.com>

        Fix build when GCC 4.2 is not installed.

        * gtest/xcode/Config/CompilerVersion.xcconfig: Copied from Source/WebCore/Configurations/CompilerVersion.xcconfig.
        * gtest/xcode/Config/General.xcconfig:
        Use the same compiler version as other projects do.

2011-08-19  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r93426.
        http://trac.webkit.org/changeset/93426
        https://bugs.webkit.org/show_bug.cgi?id=66607

        Broke the Mac build by not building gtest.framework anymore
        (Requested by andersca on #webkit).

        * gtest/README.WebKit:
        * gtest/include/gtest/internal/gtest-port.h:
        * gtest/msvc/gtest-md.vcproj:
        * gtest/xcode/Config/General.xcconfig:
        * gtest/xcode/gtest.xcodeproj/project.pbxproj:

2011-08-18  Dmitry Lomov  <dslomov@google.com>

        TestWebKitAPI breaks on Windows due to fast malloc incompatibility.
        https://bugs.webkit.org/show_bug.cgi?id=66521

        This patch ensures that gtest uses new and delete operators that are defined in JavaScriptCore.

        Reviewed by David Levin.

        * gtest/include/gtest/internal/gtest-port.h:
        * gtest/msvc/gtest-md.vcproj:
        * gtest/README.WebKit:
        * gtest/xcode/Config/General.xcconfig:
        * gtest/xcode/gtest.xcodeproj/project.pbxproj:

2011-08-09  Mark Rowe  <mrowe@apple.com>

        Fix gtest to compile in the release configuration with clang.

        This change was made upstream in r443.

        * gtest/src/gtest.cc:

2011-08-04  Mark Rowe  <mrowe@apple.com>

        Future-proof Xcode configuration settings.

        * gtest/xcode/Config/General.xcconfig:

2011-08-03  Dmitry Lomov  <dslomov@google.com>

        https://bugs.webkit.org/show_bug.cgi?id=61812
        TestWebKitApi breaks in release mode due to gtest incompatibility with fast malloc

        Disable fast malloc for offending class (::std::strstream) in gtest.
        This looks like the most non-intrusive solution.

        Reviewed by David Levin.

        * gtest/include/gtest/internal/gtest-port.h:
        (testing::internal::StrStream::operator new):
        (testing::internal::StrStream::operator new[]):
        (testing::internal::StrStream::operator delete):
        (testing::internal::StrStream::operator delete[]):

2011-07-05  Adam Barth  <abarth@webkit.org>

        Import qunit JavaScript unit testing framework
        https://bugs.webkit.org/show_bug.cgi?id=63967

        Reviewed by Eric Seidel.

        We're going to use this unit testing framework to test garden-o-matic.

        * qunit: Added.

2011-06-04  Adam Barth  <abarth@webkit.org>

        * glu: Added property svn:ignore.
            - For glu.xcodeproj, which is generated from glu.gyp.

2011-05-24  Stephen White  <senorblanco@chromium.org>

        Reviewed by Kenneth Russell.

        Unfork glu sources as much as possible.
        https://bugs.webkit.org/show_bug.cgi?id=61365

        Restore the glu sources closer to the original version on oss.sgi.com
        by removing the WebKit-specific include paths, restoring the include
        order, and renaming the glu* functions via #defines rather than in
        the source.

        * glu/README.webkit:
        Update the README to reflect the changes from trunk.
        * glu/glu.gyp:
        Add Source/Thirdparty/glu as an include path, so we can remove the
        hardcoded paths from the source files.
        * glu/gluos.h:
        Add #defines to rename the glu entry points to internal_*.
        * glu/internal_glu.h:
        * glu/libtess/dict.c:
        * glu/libtess/geom.c:
        * glu/libtess/geom.h:
        * glu/libtess/memalloc.c:
        * glu/libtess/mesh.c:
        * glu/libtess/mesh.h:
        * glu/libtess/normal.c:
        * glu/libtess/normal.h:
        * glu/libtess/priorityq-heap.c:
        * glu/libtess/priorityq-sort.h:
        * glu/libtess/priorityq.c:
        * glu/libtess/priorityq.h:
        * glu/libtess/render.c:
        * glu/libtess/render.h:
        * glu/libtess/sweep.c:
        * glu/libtess/sweep.h:
        * glu/libtess/tess.c:
        * glu/libtess/tess.h:
        * glu/libtess/tessmono.c:
        Remove WebKit-specific include paths, and internal_ prefixes from glu
        entry points.  Restore include order to original source order.

2011-05-19  Evan Martin  <evan@chromium.org>

        Reviewed by Tony Chang.

        [chromium] remove <(library) variable
        https://bugs.webkit.org/show_bug.cgi?id=61158

        This was for a build experiment; we can just use the correct value now.

        * glu/glu.gyp:
        * gyp/test/library/src/library.gyp:

2011-05-12  Jeff Miller  <jeffm@apple.com>

        Ignore Visual Studio *.user files.

        * gtest/msvc: Added property svn:ignore.

2011-05-12  Adam Roben  <aroben@apple.com>

        Windows production build fix

        * gtest/msvc/gtest-md.vcproj: Fix the OutputDirectory and IntermediateDirectory attributes
        for all configurations.

2011-05-12  Adam Roben  <aroben@apple.com>

        A little gtest cleanup after r86287

        * gtest/msvc/gtest-md.vcproj: Added Debug_All and Production configurations to match our
        other projects. (At some point all the settings should be moved into .vsprops files to match
        our other projects, too.)

