enh: Configure and install pkg-config .pc file
[platform/upstream/gflags.git] / README.md
1 [![Build Status](https://travis-ci.org/gflags/gflags.svg?branch=master)](https://travis-ci.org/gflags/gflags)
2 [![Build status](https://ci.appveyor.com/api/projects/status/4ctod566ysraus74/branch/master?svg=true)](https://ci.appveyor.com/project/schuhschuh/gflags/branch/master)
3
4 24 March 2015
5 -------------
6
7 I've just released gflags 2.1.2.
8
9 This release completes the namespace change fixes. In particular,
10 it restores binary ABI compatibility with release version 2.0.
11 The deprecated "google" namespace is by default still kept as
12 primary namespace while symbols are imported into the new "gflags" namespace.
13 This can be overridden using the CMake variable GFLAGS_NAMESPACE.
14
15 Other fixes of the build configuration are related to the (patched)
16 CMake modules FindThreads.cmake and CheckTypeSize.cmake. These have
17 been removed and instead the C language is enabled again even though
18 gflags is written in C++ only.
19
20 This release also marks the complete move of the gflags project
21 from Google Code to GitHub. Email addresses of original issue
22 reporters got lost in the process. Given the age of most issue reports,
23 this should be negligable.
24
25 Please report any further issues using the GitHub issue tracker.
26
27
28 30 March 2014
29 -------------
30
31 I've just released gflags 2.1.1.
32
33 This release fixes a few bugs in the configuration of gflags\_declare.h
34 and adds a separate GFLAGS\_INCLUDE\_DIR CMake variable to the build configuration.
35 Setting GFLAGS\_NAMESPACE to "google" no longer changes also the include
36 path of the public header files. This allows the use of the library with
37 other Google projects such as glog which still use the deprecated "google"
38 namespace for the gflags library, but include it as "gflags/gflags.h".
39
40 20 March 2014
41 -------------
42
43 I've just released gflags 2.1.
44
45 The major changes are the use of CMake for the build configuration instead
46 of the autotools and packaging support through CPack. The default namespace
47 of all C++ symbols is now "gflags" instead of "google". This can be
48 configured via the GFLAGS\_NAMESPACE variable.
49
50 This release compiles with all major compilers without warnings and passed
51 the unit tests on  Ubuntu 12.04, Windows 7 (Visual Studio 2008 and 2010,
52 Cygwin, MinGW), and Mac OS X (Xcode 5.1).
53
54 The SVN repository on Google Code is now frozen and replaced by a Git
55 repository such that it can be used as Git submodule by projects. The main
56 hosting of this project remains at Google Code. Thanks to the distributed
57 character of Git, I can push (and pull) changes from both GitHub and Google Code
58 in order to keep the two public repositories in sync.
59 When fixing an issue for a pull request through either of these hosting
60 platforms, please reference the issue number as
61 [described here](https://code.google.com/p/support/wiki/IssueTracker#Integration_with_version_control).
62 For the further development, I am following the
63 [Git branching model](http://nvie.com/posts/a-successful-git-branching-model/)
64 with feature branch names prefixed by "feature/" and bugfix branch names
65 prefixed by "bugfix/", respectively.
66
67 Binary and source [packages](https://github.com/schuhschuh/gflags/releases) are available on GitHub.
68
69
70 14 January 2014
71 ---------------
72
73 The migration of the build system to CMake is almost complete.
74 What remains to be done is rewriting the tests in Python such they can be
75 executed on non-Unix platforms and splitting them up into separate CTest tests.
76 Though merging these changes into the master branch yet remains to be done,
77 it is recommended to already start using the
78 [cmake-migration](https://github.com/schuhschuh/gflags/tree/cmake-migration) branch.
79
80
81 20 April 2013
82 -------------
83
84 More than a year has past since I (Andreas) took over the maintenance for
85 `gflags`. Only few minor changes have been made since then, much to my regret.
86 To get more involved and stimulate participation in the further
87 development of the library, I moved the project source code today to
88 [GitHub](https://github.com/schuhschuh/gflags).
89 I believe that the strengths of [Git](http://git-scm.com/) will allow for better community collaboration
90 as well as ease the integration of changes made by others. I encourage everyone
91 who would like to contribute to send me pull requests.
92 Git's lightweight feature branches will also provide the right tool for more
93 radical changes which should only be merged back into the master branch
94 after these are complete and implement the desired behavior.
95
96 The SVN repository remains accessible at Google Code and I will keep the
97 master branch of the Git repository hosted at GitHub and the trunk of the
98 Subversion repository synchronized. Initially, I was going to simply switch the
99 Google Code project to Git, but in this case the SVN repository would be
100 frozen and force everyone who would like the latest development changes to
101 use Git as well. Therefore I decided to host the public Git repository at GitHub
102 instead.
103
104 Please continue to report any issues with gflags on Google Code. The GitHub project will
105 only be used to host the Git repository.
106
107 One major change of the project structure I have in mind for the next weeks
108 is the migration from autotools to [CMake](http://www.cmake.org/).
109 Check out the (unstable!)
110 [cmake-migration](https://github.com/schuhschuh/gflags/tree/cmake-migration)
111 branch on GitHub for details.
112
113
114 25 January 2012
115 ---------------
116
117 I've just released gflags 2.0.
118
119 The `google-gflags` project has been renamed to `gflags`.  I
120 (csilvers) am stepping down as maintainer, to be replaced by Andreas
121 Schuh.  Welcome to the team, Andreas!  I've seen the energy you have
122 around gflags and the ideas you have for the project going forward,
123 and look forward to having you on the team.
124
125 I bumped the major version number up to 2 to reflect the new community
126 ownership of the project.  All the [changes](ChangeLog.txt)
127 are related to the renaming.  There are no functional changes from
128 gflags 1.7.  In particular, I've kept the code in the namespace
129 `google`, though in a future version it should be renamed to `gflags`.
130 I've also kept the `/usr/local/include/google/` subdirectory as
131 synonym of `/usr/local/include/gflags/`, though the former name has
132 been obsolete for some time now.
133
134
135 18 January 2011
136 ---------------
137
138 The `google-gflags` Google Code page has been renamed to
139 `gflags`, in preparation for the project being renamed to
140 `gflags`.  In the coming weeks, I'll be stepping down as
141 maintainer for the gflags project, and as part of that Google is
142 relinquishing ownership of the project; it will now be entirely
143 community run.  The name change reflects that shift.
144
145
146 20 December 2011
147 ----------------
148
149 I've just released gflags 1.7.  This is a minor release; the major
150 change is that `CommandLineFlagInfo` now exports the address in memory
151 where the flag is located.  There has also been a bugfix involving
152 very long --help strings, and some other minor [changes](ChangeLog.txt).
153
154 29 July 2011
155 ------------
156
157 I've just released gflags 1.6.  The major new feature in this release
158 is support for setting version info, so that --version does something
159 useful.
160
161 One minor change has required bumping the library number:
162 `ReparseCommandlineFlags` now returns `void` instead of `int` (the int
163 return value was always meaningless).  Though I doubt anyone ever used
164 this (meaningless) return value, technically it's a change to the ABI
165 that requires a version bump.  A bit sad.
166
167 There's also a procedural change with this release: I've changed the
168 internal tools used to integrate Google-supplied patches for gflags
169 into the opensource release.  These new tools should result in more
170 frequent updates with better change descriptions.  They will also
171 result in future `ChangeLog` entries being much more verbose (for better
172 or for worse).
173
174 See the [ChangeLog](ChangeLog.txt) for a full list of changes for this release.
175
176 24 January 2011
177 ---------------
178
179 I've just released gflags 1.5.  This release has only minor changes
180 from 1.4, including some slightly better reporting in --help, and
181 an new memory-cleanup function that can help when running gflags-using
182 libraries under valgrind.  The major change is to fix up the macros
183 (`DEFINE_bool` and the like) to work more reliably inside namespaces.
184
185 If you have not had a problem with these macros, and don't need any of
186 the other changes described, there is no need to upgrade.  See the
187 [ChangeLog](ChangeLog.txt) for a full list of changes for this release.
188
189 11 October 2010
190 ---------------
191
192 I've just released gflags 1.4.  This release has only minor changes
193 from 1.3, including some documentation tweaks and some work to make
194 the library smaller.  If 1.3 is working well for you, there's no
195 particular reason to upgrade.
196
197 4 January 2010
198 --------------
199
200 I've just released gflags 1.3.  gflags now compiles under MSVC, and
201 all tests pass.  I **really** never thought non-unix-y Windows folks
202 would want gflags, but at least some of them do.
203
204 The major news, though, is that I've separated out the python package
205 into its own library, [python-gflags](http://code.google.com/p/python-gflags).
206 If you're interested in the Python version of gflags, that's the place to
207 get it now.
208
209 10 September 2009
210 -----------------
211
212 I've just released gflags 1.2.  The major change from gflags 1.1 is it
213 now compiles under MinGW (as well as cygwin), and all tests pass.  I
214 never thought Windows folks would want unix-style command-line flags,
215 since they're so different from the Windows style, but I guess I was
216 wrong!
217
218 The other changes are minor, such as support for --htmlxml in the
219 python version of gflags.
220
221 15 April 2009
222 -------------
223
224 I've just released gflags 1.1.  It has only minor changes fdrom gflags
225 1.0 (see the [ChangeLog](ChangeLog.txt) for details).
226 The major change is that I moved to a new system for creating .deb and .rpm files.
227 This allows me to create x86\_64 deb and rpm files.
228
229 In the process of moving to this new system, I noticed an
230 inconsistency: the tar.gz and .rpm files created libraries named
231 libgflags.so, but the deb file created libgoogle-gflags.so.  I have
232 fixed the deb file to create libraries like the others.  I'm no expert
233 in debian packaging, but I believe this has caused the package name to
234 change as well.  Please let me know (at
235 [[mailto:google-gflags@googlegroups.com](mailto:google-gflags@googlegroups.com)
236 google-gflags@googlegroups.com]) if this causes problems for you --
237 especially if you know of a fix!  I would be happy to change the deb
238 packages to add symlinks from the old library name to the new
239 (libgoogle-gflags.so -> libgflags.so), but that is beyond my knowledge
240 of how to make .debs.
241
242 If you've tried to install a .rpm or .deb and it doesn't work for you,
243 let me know.  I'm excited to finally have 64-bit package files, but
244 there may still be some wrinkles in the new system to iron out.
245
246 1 October 2008
247 --------------
248
249 gflags 1.0rc2 was out for a few weeks without any issues, so gflags
250 1.0 is now released.  This is much like gflags 0.9.  The major change
251 is that the .h files have been moved from `/usr/include/google` to
252 `/usr/include/gflags`.  While I have backwards-compatibility
253 forwarding headeds in place, please rewrite existing code to say
254 ```
255    #include <gflags/gflags.h>
256 ```
257 instead of
258 ```
259    #include <google/gflags.h>
260 ```
261
262 I've kept the default namespace to google.  You can still change with
263 with the appropriate flag to the configure script (`./configure
264 --help` to see the flags).  If you have feedback as to whether the
265 default namespace should change to gflags, which would be a
266 non-backwards-compatible change, send mail to
267 `google-gflags@googlegroups.com`!
268
269 Version 1.0 also has some neat new features, like support for bash
270 commandline-completion of help flags.  See the [ChangeLog](ChangeLog.txt)
271 for more details.
272
273 If I don't hear any bad news for a few weeks, I'll release 1.0-final.