* Sun Nov 11 2018 - Andreas Schuh <andreas.schuh.84@gmail.com>

- gflags: version 2.2.2
Fixed 267: Support build with GCC option "-fvisibility=hidden".
Fixed 262: Declare FALGS_no##name variables as static to avoid "previous extern" warning.
Fixed 261: Declare FlagRegisterer c’tor explicit template instanations as extern in header
Fixed 257: Build with _UNICODE support on Windows.
Fixed 233/234/235: Move CMake defines that are unused by Bazel to separate header; makes config.h private again
Fixed 228: Build with recent MinGW versions that define setenv.
Fixed 226: Remove obsolete and unused CleanFileName code
Merged 266: Various PVS Studio and GCC warnings.
Merged 258: Fix build with some Clang variants that define "restrict" macro.
Merged 252: Update documentation on how to use Bazel.
Merged 249: Use "_debug" postfix for debug libraries. 
Merged 247: CMake "project" VERSION; no enable_testing(); "gflags::" import target prefix.
Merged 246: Add Bazel-on-Windows support.
Merged 239: Use GFLAGS_NAMESPACE instead of "gflags" in test executable.
Merged 237: Removed unused functions; fixes compilation with -Werror compiler option.
Merged 232: Fix typo in Bazel's BUILD definition
Merged 230: Remove using ::fLS::clstring.
Merged 221: Add convenience 'uninstall' target

* Tue Jul 11 2017 - Andreas Schuh <andreas.schuh.84@gmail.com>

- gflags: version 2.2.1
- Link to online documentation in README
- Merged 194: Include utils by file instead of CMAKE_MODULE_PATH search
- Merged 195: Remove unused program_name variable
- Merged 196: Enable language C for older CMake versions when needed
- Merged 202: Changed include directory in bazel build
- Merged 207: Mark single argument constructors in mutex.h as explicit
- Merged 209: Use inttypes.h on VC++ 2013 and later
- Merged 212: Fix statically linked gflags library with MSVC
- Meregd 213: Modify installation paths on Windows for vcpkg
- Merged 215: Fix static initialization order fiasco caused by global registry lock
- Merged 216: Fix use of ARGC in CMake macros
- Merged 222: Static code analyzer error regarding strncmp with empty kRootDir
- Merged 224: Check HAVE_STDINT_H or HAVE_INTTYPES_H for older MSVC versions

* Fri Nov 25 2016 - Andreas Schuh <andreas.schuh.84@gmail.com>

- gflags: version 2.2.0
- Merged 178: Implicitly convert dashes in option names to underscores
- Merged 159: CI builds and automatic tests with Travis CI and AppVeyor
- Merged 158: Use enum for flag value types
- Merged 126: File name postfix for static libraries on Windows
- Closed issue 120: Configure and install gflags.pc file for pkg-config users
- Fixed issue 127: snprintf already defined when building with MSVC 2015
- Fixed issue 51/138: Memory leaks reported by valgrind
- Fixed issue 173: Validate flags only once
- Fixed issue 168: Unsigned and signed comparison in gflags_reporting.cc
- Fixed issues 176/153: Add -lpthread link argument to Bazel build, refactor BUILD rules
- Fixed issue 89: Add GFLAGS_IS_A_DLL to imported CMake target INTERFACE_COMPILE_DEFINITIONS
- Fixed issue 104: Set INTERFACE_INCLUDE_DIRECTORIES of exported CMake targets
- Fixed issue 174: Missing gflags-targets.cmake file after installation
- Fixed issue 186: Error linking to gflags IMPLIB with MSVC using CMake
- Closed issue 106: Add example project to test use of gflags library

* Tue Mar 24 2014 - Andreas Schuh <andreas.schuh.84@gmail.com>

- gflags: version 2.1.2
- Moved project to GitHub
- Added GFLAGS_NAMESPACE definition to gflags_declare.h
- Fixed issue 94: Keep "google" as primary namespace and import symbols into "gflags" namespace
- Fixed issue 96: Fix binary ABI compatibility with gflags 2.0 using "google" as primary namespace
- Fixed issue 97/101: Removed (patched) CMake modules and enabled C language instead
- Fixed issue 103: Set CMake policy CMP0042 to silence warning regarding MACOS_RPATH setting

* Sun Mar 20 2014 - Andreas Schuh <google-gflags@googlegroups.com>

- gflags: version 2.1.1
- Fixed issue 77: GFLAGS_IS_A_DLL expands to empty string in gflags_declare.h
- Fixed issue 79: GFLAGS_NAMESPACE not expanded to actual namespace in gflags_declare.h
- Fixed issue 80: Allow include path to differ from GFLAGS_NAMESPACE

* Thu Mar 20 2014 - Andreas Schuh <google-gflags@googlegroups.com>

- gflags: version 2.1.0
- Build system configuration using CMake instead of autotools
- CPack packaging support for Debian/Ubuntu, Red Hat, and Mac OS X
- Fixed issue 54: Fix "invalid suffix on literal" (C++11)
- Fixed issue 57: Use _strdup instead of strdup on Windows
- Fixed issue 62: Change all preprocessor include guards to start with GFLAGS_
- Fixed issue 64: Add DEFINE_validator macro
- Fixed issue 73: Warnings in Visual Studio 2010 and unable to compile unit test

* Wed Jan 25 2012 - Google Inc. <google-gflags@googlegroups.com>

- gflags: version 2.0
- Changed the 'official' gflags email in setup.py/etc
- Renamed google-gflags.sln to gflags.sln
- Changed copyright text to reflect Google's relinquished ownership

* Tue Dec 20 2011 - Google Inc. <opensource@google.com>

- google-gflags: version 1.7
- Add CommandLineFlagInfo::flag_ptr pointing to current storage (musji)
- PORTING: flush after writing to stderr, needed on cygwin
- PORTING: Clean up the GFLAGS_DLL_DECL stuff better
- Fix a bug in StringPrintf() that affected large strings (csilvers)
- Die at configure-time when g++ isn't installed

* Fri Jul 29 2011 - Google Inc. <opensource@google.com>

- google-gflags: version 1.6
- BUGFIX: Fix a bug where we were leaving out a required $(top_srcdir)
- Fix definition of clstring (jyrki)
- Split up flag declares into its own file (jyrki)
- Add --version support (csilvers)
- Update the README for gflags with static libs
- Update acx_pthread.m4 for nostdlib
- Change ReparseCommandLineFlags to return void (csilvers)
- Some doc typofixes and example augmentation (various)

* Mon Jan 24 2011 - Google Inc. <opensource@google.com>

- google-gflags: version 1.5
- Better reporting of current vs default value (handler)
- Add API for cleaning up of memory at program-exit (jmarantz)
- Fix macros to work inside namespaces (csilvers)
- Use our own string typedef in case string is redefined (csilvers)
- Updated to autoconf 2.65

* Wed Oct 13 2010 - Google Inc. <opensource@google.com>

- google-gflags: version 1.4
- Add a check to prevent passing 0 to DEFINE_string (jorg)
- Reduce compile (.o) size (jyrki)
- Some small changes to quiet debug compiles (alexk)
- PORTING: better support static linking on windows (csilvers)
- DOCUMENTATION: change default values, use validators, etc.
- Update the NEWS file to be non-empty
- Add pkg-config (.pc) files for libgflags and libgflags_nothreads

* Mon Jan  4 2010 - Google Inc. <opensource@google.com>

- google-gflags: version 1.3
- PORTABILITY: can now build and run tests under MSVC (csilvers)
- Remove the python gflags code, which is now its own package (tansell)
- Clarify that "last flag wins" in the docs (csilvers)
- Comment danger of using GetAllFlags in validators (wojtekm)
- PORTABILITY: Some fixes necessary for c++0x (mboerger)
- Makefile fix: $(srcdir) -> $(top_srcdir) in one place (csilvres)
- INSTALL: autotools to autoconf v2.64 + automake v1.11 (csilvers)

* Thu Sep 10 2009 - Google Inc. <opensource@google.com>

- google-gflags: version 1.2
- PORTABILITY: can now build and run tests under mingw (csilvers)
- Using a string arg for a bool flag is a compile-time error (rbayardo)
- Add --helpxml to gflags.py (salcianu)
- Protect against a hypothetical global d'tor mutex problem (csilvers)
- BUGFIX: can now define a flag after 'using namespace google' (hamaji)

* Tue Apr 14 2009 - Google Inc. <opensource@google.com>

- google-gflags: version 1.1
- Add both foo and nofoo for boolean flags, with --undefok (andychu)
- Better document how validators work (wojtekm)
- Improve binary-detection for bash-completion (mtamsky)
- Python: Add a concept of "key flags", used with --help (salcianu)
- Python: Robustify flag_values (salcianu)
- Python: Add a new DEFINE_bool alias (keir, andrewliu)
- Python: Do module introspection based on module name (dsturtevant)
- Fix autoconf a bit better, especially on windows and solaris (ajenjo)
- BUG FIX: gflags_nothreads was linking against the wrong lib (ajenjo)
- BUG FIX: threads-detection failed on FreeBSD; replace it (ajenjo)
- PORTABILITY: Quiet an internal compiler error with SUSE 10 (csilvers)
- PORTABILITY: Update deb.sh for more recenty debuilds (csilvers)
- PORTABILITY: #include more headers to satify new gcc's (csilvers)
- INSTALL: Updated to autoconf 2.61 and libtool 1.5.26 (csilvers)

* Fri Oct  3 2008 - Google Inc. <opensource@google.com>

- google-gflags: version 1.0
- Add a missing newline to an error string (bcmills)
- (otherwise exactly the same as gflags 1.0rc2)

* Thu Sep 18 2008 - Google Inc. <opensource@google.com>

- google-gflags: version 1.0rc2
- Report current flag values in --helpxml (hdn)
- Fix compilation troubles with gcc 4.3.3 (simonb)
- BUG FIX: I was missing a std:: in DECLARE_string (csilvers)
- BUG FIX: Clarify in docs how to specify --bool flags (csilvers)
- BUG FIX: Fix --helpshort for source files not in a subdir (csilvers)
- BUG FIX: Fix python unittest for 64-bit builds (bcmills)

* Tue Aug 19 2008 - Google Inc. <opensource@google.com>

- google-gflags: version 1.0rc1
- Move #include files from google/ to gflags/ (csilvers)
- Small optimizations to reduce binary (library) size (jyrki)
- BUGFIX: forgot a std:: in one of the .h files (csilvers)
- Speed up locking by making sure calls are inlined (ajenjo)
- 64-BIT COMPATIBILITY: Use %PRId64 instead of %lld (csilvers)
- PORTABILITY: fix Makefile to work with Cygwin (ajenjo)
- PORTABILITY: fix code to compile under Visual Studio (ajenjo)
- PORTABILITY: fix code to compile under Solaris 10 with CC (csilvers)

* Mon Jul 21 2008 - Google Inc. <opensource@google.com>

- google-gflags: version 0.9
- Add the ability to validate a command-line flag (csilvers)
- Add completion support for commandline flags in bash (daven)
- Add -W compile flags to Makefile, when using gcc (csilvers)
- Allow helpstring to be NULL (cristianoc)
- Improved documentation of classes in the .cc file (csilvers)
- Fix python bug with AppendFlagValues + shortnames (jjtswan)
- Use bool instead of int for boolean flags in gflags.py (bcmills)
- Simplify the way we declare flags, now more foolproof (csilvers)
- Better error messages when bool flags collide (colohan)
- Only evaluate DEFINE_foo macro args once (csilvers)

* Wed Mar 26 2008 - Google Inc. <opensource@google.com>

- google-gflags: version 0.8
- Export DescribeOneFlag() in the API
- Add support for automatic line wrapping at 80 cols for gflags.py
- Bugfix: do not treat an isolated "-" the same as an isolated "--"
- Update rpm spec to point to Google Code rather than sourceforge (!)
- Improve documentation (including documenting thread-safety)
- Improve #include hygiene
- Improve testing

* Thu Oct 18 2007 - Google Inc. <opensource@google.com>

- google-gflags: version 0.7
- Deal even more correctly with libpthread not linked in (csilvers)
- Add STRIP_LOG, an improved DO_NOT_SHOW_COMMANDLINE_HELP (sioffe)
- Be more accurate printing default flag values in --help (dsturtevant)
- Reduce .o file size a bit by using shorter namespace names (jeff)
- Use relative install path, so 'setup.py --home' works (csilvers)
- Notice when a boolean flag has a non-boolean default (bnmouli)
- Broaden --helpshort to match foo-main.cc and foo_main.cc (hendrie)
- Fix "no modules match" message for --helpshort, etc (hendrie)

* Wed Aug 15 2007 - Google Inc. <opensource@google.com>

- google-gflags: version 0.6
- Deal correctly with case that libpthread is not linked in (csilvers)
- Update Makefile/tests so we pass "make distcheck" (csilvers)
- Document and test that last assignment to a flag wins (wan)

* Tue Jun 12 2007 - Google Inc. <opensource@google.com>

- google-gflags: version 0.5
- Include all m4 macros in the distribution (csilvers)
- Python: Fix broken data_files field in setup.py (sidlon)
- Python: better string serliaizing and unparsing (abo, csimmons)
- Fix checks for NaN and inf to work with Mac OS X (csilvers)

* Thu Apr 19 2007 - Google Inc. <opensource@google.com>

- google-gflags: version 0.4
- Remove is_default from GetCommandLineFlagInfo (csilvers)
- Portability fixes: includes, strtoll, gcc4.3 errors (csilvers)
- A few doc typo cleanups (csilvers)

* Wed Mar 28 2007 - Google Inc. <opensource@google.com>

- google-gflags: version 0.3
- python portability fix: use popen instead of subprocess (csilvers)
- Add is_default to CommandLineFlagInfo (pchien)
- Make docs a bit prettier (csilvers)
- Actually include the python files in the distribution! :-/ (csilvers)

* Mon Jan 22 2007 - Google Inc. <opensource@google.com>

- google-gflags: version 0.2
- added support for python commandlineflags, as well as c++
- gflags2man, a script to turn flags into a man page (dchristian)

* Wed Dec 13 2006 - Google Inc. <opensource@google.com>

- google-gflags: version 0.1
