2016-12-10  Konstantin Tokarev  <annulen@yandex.ru>

        [cmake] Include WTF, JSC, and WebCore headers automatically to targers using them
        https://bugs.webkit.org/show_bug.cgi?id=165686

        Reviewed by Michael Catanzaro.

        This change reduces duplication of include path lists between modules,
        and reduces future need for fixes like r209605 (broken build because of
        WebCore header suddenly becoming used in WebKit2).

        * gtest/CMakeLists.txt:

2016-12-06  Alexey Proskuryakov  <ap@apple.com>

        Correct SDKROOT values in xcconfig files
        https://bugs.webkit.org/show_bug.cgi?id=165487
        rdar://problem/29539209

        Reviewed by Dan Bernstein.

        Fix suggested by Dan Bernstein.

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

2016-09-28  Konstantin Tokarev  <annulen@yandex.ru>

        Unreviewed, woff2 upgrade introduces compiler warnings
        https://bugs.webkit.org/show_bug.cgi?id=162678

        * woff2/CMakeLists.txt:

2016-09-28  Michael Catanzaro  <mcatanzaro@igalia.com>

        woff2 upgrade introduces compiler warnings
        https://bugs.webkit.org/show_bug.cgi?id=162678

        Reviewed by Alex Christensen.

        * woff2/CMakeLists.txt:

2016-09-28  Khaled Hosny  <khaledhosny@eglug.org>

        Update woff2 to latest revision
        https://bugs.webkit.org/show_bug.cgi?id=162608

        Reviewed by Michael Catanzaro.

        * woff2/CMakeLists.txt:
        * woff2/README.webkit:
        * woff2/src/file.h:
        (woff2::GetFileContent):
        (woff2::SetFileContents):
        * woff2/src/font.cc:
        * woff2/src/font.h:
        * woff2/src/glyph.cc:
        * woff2/src/store_bytes.h:
        (woff2::Store16):
        * woff2/src/transform.cc:
        * woff2/src/woff2_common.cc:
        * woff2/src/woff2_compress.cc:
        * woff2/src/woff2_dec.cc:
        * woff2/src/woff2_dec.h:
        * woff2/src/woff2_decompress.cc:
        * woff2/src/woff2_enc.cc:
        * woff2/src/woff2_out.cc: Added.
        * woff2/src/woff2_out.h: Added.
        (woff2::WOFF2Out::~WOFF2Out):
        (woff2::WOFF2StringOut::MaxSize):

2016-09-28  Konstantin Tokarev  <annulen@yandex.ru>

        [cmake] Suppress Clang warnings in brotli and woff2
        https://bugs.webkit.org/show_bug.cgi?id=162663

        Reviewed by Michael Catanzaro.

        * brotli/CMakeLists.txt:
        * woff2/CMakeLists.txt:

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.)

