Fri Apr 11 2014 Andreas Schneider <asn@cryptomilk.org>
    * cmocka: version 0.4.0
    * Added support for group testing.
    * Added assert_return_code().
    * Added better messages for errors.
    * Added cmake config mode support.
    * Fixed bug with unit_test_setup and unit_test_teardown.
    * Fixed a lot of small bugs.

Wed Nov 06 2013 Andreas Schneider <asn@cryptomilk.org>
    * cmocka: version 0.3.2
    * Fixed FindNSIS detection.
    * Fixed unit_test_setup() and unit_test_teardown().
    * Fixed GTest and GCC message style conformance
    * Fixed stringification in will_return_always().

Wed Jul 10 15:24 2013 Andreas Schneider <asn@cryptomilk.org>
    * cmocka: version 0.3.1
    * Fixed pointer conversion on s390 and ppc (32bit big endian).
    * Fixed the customer_database test on big endian.

Wed Jun 05 08:14 2013 Andreas Schneider <asn@cryptomilk.org>
    * cmocka: version 0.3.0
    * Added a better mock object example.
    * Added pkgconfig file.
    * Added new macros mock_type() and mock_ptr_type().
    * Added more documentation.
    * Fixed installation problems on some platforms.

Mon Jan 14 11:16 2013 Andreas Schneider <asn@cryptomilk.org>
    * cmocka: version 0.2.0
    * Added doxygen api documentation.
    * Added new cmake build system.
    * Added support to create windows NSIS installer.
    * Fixed examples which didn't work.
    * Fixed a huge amount of bugs.

Mon Sep 15 17:21:22 2008 Google Inc. <opensource@google.com>
	* cmockery: version 0.12
	* Made it possible to specify additional compiler, lib tool and link 
	  flags on Windows.
	* Added Windows makefile to the tar ball.

Fri Aug 29 10:50:46 2008  Google Inc. <opensource@google.com>

	* cmockery: version 0.11
	* Made it possible to specify executable, library and object output 
	  directories.

Tue Aug 26 10:18:02 2008  Google Inc. <opensource@google.com>

	* cmockery: initial release:
	  A lightweight library to simplify and generalize the process of 
	  writing unit tests for C applications.
