blob: 6e5267c1e41f80527fe7dfe1bafddb130819b296 [file] [log] [blame] [view]
Andreas Schuh78cab6c2016-08-01 17:05:26 +01001[![Build Status](https://travis-ci.org/gflags/gflags.svg?branch=master)](https://travis-ci.org/gflags/gflags)
Andreas Schuhec4b5da2016-08-01 20:04:43 +01002[![Build status](https://ci.appveyor.com/api/projects/status/4ctod566ysraus74/branch/master?svg=true)](https://ci.appveyor.com/project/schuhschuh/gflags/branch/master)
Andreas Schuh78cab6c2016-08-01 17:05:26 +01003
Andreas Schuh8935ef42016-11-29 10:33:53 +00004The documentation of the gflags library is available online at https://gflags.github.io/gflags/.
5
Andreas Schuh3d2a1012018-11-11 21:17:01 +00006
711 November 2018
8----------------
9
10I've just released gflags 2.2.2.
11
12This maintenance release improves lives of Bazel users (no more "config.h" leaking into global include paths),
13fixes build with recent MinGW versions, and silences a number of static code analyzer and compiler warnings.
14The build targets exported by the CMake configuration of this library are now also prefixed by the package
15name "gflags::" following a more recent (unwritten) CMake convention. The unprefixed target names are still
16supported to avoid that dependent projects have to be modified due to this change in imported target names.
17
18Please report any further issues with this release using the GitHub issue tracker.
19
20
Andreas Schuh46f73f82017-07-11 18:30:34 +01002111 July 2017
22------------
23
24I've just released gflags 2.2.1.
25
26This maintenance release primarily fixes build issues on Windows and
27false alarms reported by static code analyzers.
28
29Please report any further issues with this release using the GitHub issue tracker.
30
31
Andreas Schuhf8a0efe2016-11-25 18:32:19 +00003225 November 2016
33----------------
34
35I've finally released gflags 2.2.0.
36
37This release adds support for use of the gflags library as external dependency
38not only in projects using CMake, but also [Bazel](https://bazel.build/),
39or [pkg-config](https://www.freedesktop.org/wiki/Software/pkg-config/).
40One new minor feature is added in this release: when a command flag argument
41contains dashes, these are implicitly converted to underscores.
42This is to allow those used to separate words of the flag name by dashes
43to do so, while the flag variable names are required to use underscores.
44
45Memory leaks reported by valgrind should be resolved by this release.
46This release fixes build errors with MS Visual Studio 2015.
47
48Please report any further issues with this release using the GitHub issue tracker.
49
50
Andreas Schuheb891012015-03-24 12:34:22 +00005124 March 2015
52-------------
53
Andreas Schuh06ccc162015-03-24 16:35:19 +000054I've just released gflags 2.1.2.
55
56This release completes the namespace change fixes. In particular,
57it restores binary ABI compatibility with release version 2.0.
58The deprecated "google" namespace is by default still kept as
59primary namespace while symbols are imported into the new "gflags" namespace.
60This can be overridden using the CMake variable GFLAGS_NAMESPACE.
61
62Other fixes of the build configuration are related to the (patched)
63CMake modules FindThreads.cmake and CheckTypeSize.cmake. These have
64been removed and instead the C language is enabled again even though
65gflags is written in C++ only.
66
67This release also marks the complete move of the gflags project
68from Google Code to GitHub. Email addresses of original issue
69reporters got lost in the process. Given the age of most issue reports,
Andreas Schuha4bae962015-03-24 17:07:00 +000070this should be negligable.
Andreas Schuheb891012015-03-24 12:34:22 +000071
72Please report any further issues using the GitHub issue tracker.
73
74
7530 March 2014
76-------------
Andreas Schuh0890b692014-03-30 15:18:26 +010077
78I've just released gflags 2.1.1.
79
Andreas Schuheb891012015-03-24 12:34:22 +000080This release fixes a few bugs in the configuration of gflags\_declare.h
81and adds a separate GFLAGS\_INCLUDE\_DIR CMake variable to the build configuration.
82Setting GFLAGS\_NAMESPACE to "google" no longer changes also the include
Andreas Schuh0890b692014-03-30 15:18:26 +010083path of the public header files. This allows the use of the library with
84other Google projects such as glog which still use the deprecated "google"
85namespace for the gflags library, but include it as "gflags/gflags.h".
86
Andreas Schuheb891012015-03-24 12:34:22 +00008720 March 2014
88-------------
Andreas Schuh33e2cbe2014-03-20 16:32:54 +000089
Andreas Schuh94c23572014-03-27 01:45:47 +000090I've just released gflags 2.1.
Andreas Schuh33e2cbe2014-03-20 16:32:54 +000091
92The major changes are the use of CMake for the build configuration instead
Andreas Schuh94c23572014-03-27 01:45:47 +000093of the autotools and packaging support through CPack. The default namespace
94of all C++ symbols is now "gflags" instead of "google". This can be
Andreas Schuheb891012015-03-24 12:34:22 +000095configured via the GFLAGS\_NAMESPACE variable.
Andreas Schuh94c23572014-03-27 01:45:47 +000096
97This release compiles with all major compilers without warnings and passed
98the unit tests on Ubuntu 12.04, Windows 7 (Visual Studio 2008 and 2010,
99Cygwin, MinGW), and Mac OS X (Xcode 5.1).
Andreas Schuh33e2cbe2014-03-20 16:32:54 +0000100
101The SVN repository on Google Code is now frozen and replaced by a Git
102repository such that it can be used as Git submodule by projects. The main
103hosting of this project remains at Google Code. Thanks to the distributed
104character of Git, I can push (and pull) changes from both GitHub and Google Code
105in order to keep the two public repositories in sync.
106When fixing an issue for a pull request through either of these hosting
Andreas Schuheb891012015-03-24 12:34:22 +0000107platforms, please reference the issue number as
108[described here](https://code.google.com/p/support/wiki/IssueTracker#Integration_with_version_control).
Andreas Schuh882db5d2014-03-20 16:35:30 +0000109For the further development, I am following the
Andreas Schuheb891012015-03-24 12:34:22 +0000110[Git branching model](http://nvie.com/posts/a-successful-git-branching-model/)
Andreas Schuh882db5d2014-03-20 16:35:30 +0000111with feature branch names prefixed by "feature/" and bugfix branch names
112prefixed by "bugfix/", respectively.
Andreas Schuh33e2cbe2014-03-20 16:32:54 +0000113
Andreas Schuheb891012015-03-24 12:34:22 +0000114Binary and source [packages](https://github.com/schuhschuh/gflags/releases) are available on GitHub.
Andreas Schuh33e2cbe2014-03-20 16:32:54 +0000115
116
Andreas Schuhf9e1ffa2015-03-24 17:48:29 +000011714 January 2014
Andreas Schuheb891012015-03-24 12:34:22 +0000118---------------
Andreas Schuh33e2cbe2014-03-20 16:32:54 +0000119
120The migration of the build system to CMake is almost complete.
121What remains to be done is rewriting the tests in Python such they can be
122executed on non-Unix platforms and splitting them up into separate CTest tests.
123Though merging these changes into the master branch yet remains to be done,
124it is recommended to already start using the
Andreas Schuheb891012015-03-24 12:34:22 +0000125[cmake-migration](https://github.com/schuhschuh/gflags/tree/cmake-migration) branch.
Andreas Schuh33e2cbe2014-03-20 16:32:54 +0000126
127
Andreas Schuheb891012015-03-24 12:34:22 +000012820 April 2013
129-------------
Andreas Schuh4328de82013-04-20 22:49:37 +0000130
131More than a year has past since I (Andreas) took over the maintenance for
132`gflags`. Only few minor changes have been made since then, much to my regret.
133To get more involved and stimulate participation in the further
134development of the library, I moved the project source code today to
Andreas Schuheb891012015-03-24 12:34:22 +0000135[GitHub](https://github.com/schuhschuh/gflags).
136I believe that the strengths of [Git](http://git-scm.com/) will allow for better community collaboration
Andreas Schuh4328de82013-04-20 22:49:37 +0000137as well as ease the integration of changes made by others. I encourage everyone
138who would like to contribute to send me pull requests.
139Git's lightweight feature branches will also provide the right tool for more
140radical changes which should only be merged back into the master branch
141after these are complete and implement the desired behavior.
142
143The SVN repository remains accessible at Google Code and I will keep the
144master branch of the Git repository hosted at GitHub and the trunk of the
145Subversion repository synchronized. Initially, I was going to simply switch the
146Google Code project to Git, but in this case the SVN repository would be
147frozen and force everyone who would like the latest development changes to
148use Git as well. Therefore I decided to host the public Git repository at GitHub
149instead.
150
151Please continue to report any issues with gflags on Google Code. The GitHub project will
152only be used to host the Git repository.
153
154One major change of the project structure I have in mind for the next weeks
Andreas Schuheb891012015-03-24 12:34:22 +0000155is the migration from autotools to [CMake](http://www.cmake.org/).
Andreas Schuh4328de82013-04-20 22:49:37 +0000156Check out the (unstable!)
Andreas Schuheb891012015-03-24 12:34:22 +0000157[cmake-migration](https://github.com/schuhschuh/gflags/tree/cmake-migration)
Andreas Schuh4328de82013-04-20 22:49:37 +0000158branch on GitHub for details.
Andreas Schuhdba41e62013-04-20 22:14:36 +0000159
160
Andreas Schuheb891012015-03-24 12:34:22 +000016125 January 2012
162---------------
Craig Silversteinf1877292012-01-25 23:59:40 +0000163
164I've just released gflags 2.0.
165
166The `google-gflags` project has been renamed to `gflags`. I
167(csilvers) am stepping down as maintainer, to be replaced by Andreas
168Schuh. Welcome to the team, Andreas! I've seen the energy you have
169around gflags and the ideas you have for the project going forward,
170and look forward to having you on the team.
171
172I bumped the major version number up to 2 to reflect the new community
Andreas Schuheb891012015-03-24 12:34:22 +0000173ownership of the project. All the [changes](ChangeLog.txt)
Craig Silversteinf1877292012-01-25 23:59:40 +0000174are related to the renaming. There are no functional changes from
175gflags 1.7. In particular, I've kept the code in the namespace
176`google`, though in a future version it should be renamed to `gflags`.
177I've also kept the `/usr/local/include/google/` subdirectory as
178synonym of `/usr/local/include/gflags/`, though the former name has
179been obsolete for some time now.
180
181
Andreas Schuheb891012015-03-24 12:34:22 +000018218 January 2011
183---------------
Craig Silversteinf1877292012-01-25 23:59:40 +0000184
185The `google-gflags` Google Code page has been renamed to
186`gflags`, in preparation for the project being renamed to
187`gflags`. In the coming weeks, I'll be stepping down as
188maintainer for the gflags project, and as part of that Google is
189relinquishing ownership of the project; it will now be entirely
190community run. The name change reflects that shift.
191
192
Andreas Schuheb891012015-03-24 12:34:22 +000019320 December 2011
194----------------
Craig Silversteinec7c7a22011-12-21 04:28:52 +0000195
196I've just released gflags 1.7. This is a minor release; the major
Craig Silversteinf1877292012-01-25 23:59:40 +0000197change is that `CommandLineFlagInfo` now exports the address in memory
Craig Silversteinec7c7a22011-12-21 04:28:52 +0000198where the flag is located. There has also been a bugfix involving
Andreas Schuheb891012015-03-24 12:34:22 +0000199very long --help strings, and some other minor [changes](ChangeLog.txt).
Craig Silversteinec7c7a22011-12-21 04:28:52 +0000200
Andreas Schuheb891012015-03-24 12:34:22 +000020129 July 2011
202------------
Craig Silverstein404970d2011-07-30 02:57:58 +0000203
204I've just released gflags 1.6. The major new feature in this release
205is support for setting version info, so that --version does something
206useful.
207
208One minor change has required bumping the library number:
209`ReparseCommandlineFlags` now returns `void` instead of `int` (the int
210return value was always meaningless). Though I doubt anyone ever used
211this (meaningless) return value, technically it's a change to the ABI
212that requires a version bump. A bit sad.
213
214There's also a procedural change with this release: I've changed the
215internal tools used to integrate Google-supplied patches for gflags
216into the opensource release. These new tools should result in more
217frequent updates with better change descriptions. They will also
218result in future `ChangeLog` entries being much more verbose (for better
219or for worse).
220
Andreas Schuheb891012015-03-24 12:34:22 +0000221See the [ChangeLog](ChangeLog.txt) for a full list of changes for this release.
Craig Silverstein404970d2011-07-30 02:57:58 +0000222
Andreas Schuheb891012015-03-24 12:34:22 +000022324 January 2011
224---------------
Craig Silverstein24b4c592011-01-25 00:36:41 +0000225
226I've just released gflags 1.5. This release has only minor changes
227from 1.4, including some slightly better reporting in --help, and
228an new memory-cleanup function that can help when running gflags-using
229libraries under valgrind. The major change is to fix up the macros
230(`DEFINE_bool` and the like) to work more reliably inside namespaces.
231
232If you have not had a problem with these macros, and don't need any of
233the other changes described, there is no need to upgrade. See the
Andreas Schuheb891012015-03-24 12:34:22 +0000234[ChangeLog](ChangeLog.txt) for a full list of changes for this release.
Craig Silverstein24b4c592011-01-25 00:36:41 +0000235
Andreas Schuheb891012015-03-24 12:34:22 +000023611 October 2010
237---------------
Craig Silverstein3c624b72010-10-14 01:17:43 +0000238
239I've just released gflags 1.4. This release has only minor changes
240from 1.3, including some documentation tweaks and some work to make
241the library smaller. If 1.3 is working well for you, there's no
242particular reason to upgrade.
243
Andreas Schuheb891012015-03-24 12:34:22 +00002444 January 2010
245--------------
Craig Silverstein20500a92010-05-07 21:33:49 +0000246
247I've just released gflags 1.3. gflags now compiles under MSVC, and
Andreas Schuheb891012015-03-24 12:34:22 +0000248all tests pass. I **really** never thought non-unix-y Windows folks
Craig Silverstein20500a92010-05-07 21:33:49 +0000249would want gflags, but at least some of them do.
250
251The major news, though, is that I've separated out the python package
Andreas Schuheb891012015-03-24 12:34:22 +0000252into its own library, [python-gflags](http://code.google.com/p/python-gflags).
Craig Silverstein3c624b72010-10-14 01:17:43 +0000253If you're interested in the Python version of gflags, that's the place to
254get it now.
Craig Silverstein20500a92010-05-07 21:33:49 +0000255
Andreas Schuheb891012015-03-24 12:34:22 +000025610 September 2009
257-----------------
Craig Silverstein20500a92010-05-07 21:33:49 +0000258
259I've just released gflags 1.2. The major change from gflags 1.1 is it
260now compiles under MinGW (as well as cygwin), and all tests pass. I
261never thought Windows folks would want unix-style command-line flags,
262since they're so different from the Windows style, but I guess I was
263wrong!
264
265The other changes are minor, such as support for --htmlxml in the
266python version of gflags.
267
Andreas Schuheb891012015-03-24 12:34:22 +000026815 April 2009
269-------------
Craig Silverstein20500a92010-05-07 21:33:49 +0000270
271I've just released gflags 1.1. It has only minor changes fdrom gflags
Andreas Schuheb891012015-03-24 12:34:22 +00002721.0 (see the [ChangeLog](ChangeLog.txt) for details).
273The major change is that I moved to a new system for creating .deb and .rpm files.
274This allows me to create x86\_64 deb and rpm files.
Craig Silverstein20500a92010-05-07 21:33:49 +0000275
276In the process of moving to this new system, I noticed an
277inconsistency: the tar.gz and .rpm files created libraries named
278libgflags.so, but the deb file created libgoogle-gflags.so. I have
279fixed the deb file to create libraries like the others. I'm no expert
280in debian packaging, but I believe this has caused the package name to
281change as well. Please let me know (at
Andreas Schuheb891012015-03-24 12:34:22 +0000282[[mailto:google-gflags@googlegroups.com](mailto:google-gflags@googlegroups.com)
Craig Silverstein20500a92010-05-07 21:33:49 +0000283google-gflags@googlegroups.com]) if this causes problems for you --
284especially if you know of a fix! I would be happy to change the deb
285packages to add symlinks from the old library name to the new
286(libgoogle-gflags.so -> libgflags.so), but that is beyond my knowledge
287of how to make .debs.
288
289If you've tried to install a .rpm or .deb and it doesn't work for you,
290let me know. I'm excited to finally have 64-bit package files, but
291there may still be some wrinkles in the new system to iron out.
292
Andreas Schuheb891012015-03-24 12:34:22 +00002931 October 2008
294--------------
Craig Silverstein20500a92010-05-07 21:33:49 +0000295
296gflags 1.0rc2 was out for a few weeks without any issues, so gflags
2971.0 is now released. This is much like gflags 0.9. The major change
298is that the .h files have been moved from `/usr/include/google` to
299`/usr/include/gflags`. While I have backwards-compatibility
300forwarding headeds in place, please rewrite existing code to say
Andreas Schuheb891012015-03-24 12:34:22 +0000301```
Craig Silverstein20500a92010-05-07 21:33:49 +0000302 #include <gflags/gflags.h>
Andreas Schuheb891012015-03-24 12:34:22 +0000303```
Craig Silverstein20500a92010-05-07 21:33:49 +0000304instead of
Andreas Schuheb891012015-03-24 12:34:22 +0000305```
Craig Silverstein20500a92010-05-07 21:33:49 +0000306 #include <google/gflags.h>
Andreas Schuheb891012015-03-24 12:34:22 +0000307```
Craig Silverstein20500a92010-05-07 21:33:49 +0000308
309I've kept the default namespace to google. You can still change with
310with the appropriate flag to the configure script (`./configure
311--help` to see the flags). If you have feedback as to whether the
312default namespace should change to gflags, which would be a
313non-backwards-compatible change, send mail to
314`google-gflags@googlegroups.com`!
315
316Version 1.0 also has some neat new features, like support for bash
Andreas Schuheb891012015-03-24 12:34:22 +0000317commandline-completion of help flags. See the [ChangeLog](ChangeLog.txt)
318for more details.
Craig Silverstein20500a92010-05-07 21:33:49 +0000319
320If I don't hear any bad news for a few weeks, I'll release 1.0-final.